Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Diffuusiomallit ja Probabilistiset Generatiiviset Lähestymistavat | Teoreettiset Perusteet
Syvät Generatiiviset Mallit Pythonilla

Diffuusiomallit ja Probabilistiset Generatiiviset Lähestymistavat

Pyyhkäise näyttääksesi valikon

Diffuusiopohjaisen generoinnin ymmärtäminen

Diffuusiomallit ovat tehokkaita tekoälymalleja, jotka tuottavat dataa – erityisesti kuvia – oppimalla, miten satunnaisen kohinan lisäämisen prosessi voidaan kääntää päinvastaiseksi. Kuvittele, että katsot puhdasta kuvaa, joka vähitellen muuttuu epäselväksi kuin television lumisade. Diffuusiomalli oppii tekemään päinvastoin: se ottaa kohinaisia kuvia ja rekonstruoi alkuperäisen kuvan poistamalla kohinaa vaihe vaiheelta.

diffusion_architecture

Prosessi sisältää kaksi päävaihetta:

  • Etenevä prosessi (diffuusio): lisää vähitellen satunnaista kohinaa kuvaan useiden vaiheiden aikana, kunnes kuva muuttuu täysin kohinaiseksi;
  • Käänteinen prosessi (kohinanpoisto): neuroverkko oppii poistamaan kohinan vaihe vaiheelta, rekonstruoiden alkuperäisen kuvan kohinaisesta versiosta.

Diffuusiomallit tunnetaan kyvystään tuottaa korkealaatuisia, realistisia kuvia. Niiden koulutus on tyypillisesti vakaampaa verrattuna esimerkiksi GAN-malleihin, mikä tekee niistä erittäin houkuttelevia nykyaikaisessa generatiivisessa tekoälyssä.

Denoising Diffusion Probabilistic Models (DDPM:t)

Denoising diffusion probabilistic models (DDPM:t) ovat suosittu diffuusiomallien tyyppi, jotka hyödyntävät todennäköisyyslaskentaa ja syväoppimista poistaakseen kohinaa kuvista vaiheittain.

Etenemisprosessi

Etenemisprosessissa aloitetaan aidosta kuvasta x0x_0 ja lisätään Gaussin kohinaa asteittain TT aikavälin aikana:

q(xtxt1)=N(xt;1βtxt1,βtI)q(x_t|x_{t-1})= \mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_tI)

Missä:

  • xtx_t: syötteen kohinainen versio aikavälillä;
  • βt\beta_t: pieni varianssiaikataulu, joka määrittää lisättävän kohinan määrän;
  • N\mathcal{N}: Gaussin jakauma.

Kokonaiskohinan määrän tiettyyn askeleeseen asti voidaan ilmaista myös seuraavasti:

q(xtx0)=N(xt;αˉtx0,(1αˉt)I)q(x_t|x_0)= \mathcal{N}(x_t;\sqrt{\={\alpha}_t}x_0,(1-\={\alpha}_t)I)

Missä:

  • αˉt=s=1t(1βs)\=\alpha_t=\prod_{s=1}^t(1-\beta_s)

Käänteinen prosessi

Mallin tavoitteena on oppia tämän prosessin käänteinen suunta. Neuroverkko, jonka parametreina on θ\theta, ennustaa denoisoidun jakauman keskiarvon ja varianssin:

pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))p_\theta(x_{t-1}|x_t) = \mathcal{N}(x_{t-1};\mu_\theta(x_t,t), \Sigma_\theta(x_t,t))

missä:

  • xtx_t: kohinainen kuva ajanhetkellä tt;
  • xt1x_{t-1}: ennustettu vähemmän kohinainen kuva askeleella t1t-1;
  • μθ\mu_\theta: neuroverkon ennustama keskiarvo;
  • Σθ\Sigma_\theta: neuroverkon ennustama varianssi.

Tappiofunktio

Koulutus perustuu todellisen kohinan ja mallin ennustaman kohinan välisen eron minimointiin seuraavan tavoitteen avulla:

Lsimple=Ex0,ϵ,t[ϵϵ0(αˉtx0+1αˉtϵ,t)2]L_{simple} = \mathbb{E}_{x_0, \epsilon, t} \left[ ||\epsilon - \epsilon_0 \left( \sqrt{\=\alpha_t}x_0 + \sqrt{1-\=\alpha_t}\epsilon, t \right)||^2 \right]

missä:

  • xtx_t: alkuperäinen syötekuva;
  • ϵ\epsilon: satunnainen Gaussin kohina;
  • tt: diffuusion aikaleima;
  • ϵθ\epsilon_\theta: neuroverkon kohinaennuste;
  • αˉt\={\alpha}_t: kohina-aikataulun parametrien tulo askeleeseen tt asti.

Tämä auttaa mallia parantamaan denoisauskykyään ja tuottamaan realistisempaa dataa.

Score-pohjainen generatiivinen mallinnus

Score-pohjaiset mallit ovat toinen diffuusiomallien luokka. Sen sijaan, että ne oppisivat suoraan käänteisen kohinaprosessin, ne oppivat score-funktion:

xlogp(x)\nabla_x\log{p(x)}

missä:

  • xlogp(x)\nabla_x\log{p(x)}: log-todennäköisyystiheyden gradientti syötteen xx suhteen. Tämä osoittaa siihen suuntaan, jossa datan jakauman todennäköisyys kasvaa;
  • p(x)p(x): datan todennäköisyysjakauma.

Tämä funktio kertoo mallille, mihin suuntaan kuvaa tulisi siirtää, jotta siitä tulisi enemmän todellista dataa muistuttava. Näissä malleissa käytetään sitten näytteenottomenetelmää, kuten Langevin-dynamiikkaa, jolla kohinaista dataa siirretään asteittain kohti korkean todennäköisyyden alueita.

Score-pohjaiset mallit toimivat usein jatkuvassa ajassa käyttäen stokastisia differentiaaliyhtälöitä (SDE). Tämä jatkuva lähestymistapa tarjoaa joustavuutta ja mahdollistaa korkealaatuisen generoinnin erilaisille datatyypeille.

Sovellukset korkean resoluution kuvageneroinnissa

Diffuusiomallit ovat mullistaneet generatiiviset tehtävät, erityisesti korkean resoluution visuaalisessa generoinnissa. Merkittäviä sovelluksia ovat:

  • Stable Diffusion: latenttidiffuusiomalli, joka tuottaa kuvia tekstisyötteistä. Se yhdistää U-Net-pohjaisen denoising-mallin ja variational autoencoderin (VAE) toimiakseen latentissa tilassa;
  • DALL·E 2: yhdistää CLIP-upotukset ja diffuusiopohjaisen dekoodauksen tuottaakseen erittäin realistisia ja semanttisia kuvia tekstistä;
  • MidJourney: Diffuusiopohjainen kuvagenerointialusta, joka tunnetaan korkealaatuisten, taiteellisesti tyyliteltyjen visuaalien tuottamisesta abstrakteista tai luovista syötteistä.

Näitä malleja käytetään taiteen generoinnissa, fotorealistisessa synteesissä, inpaintingissa, super-resoluutiossa ja muissa sovelluksissa.

Yhteenveto

Diffuusiomallit määrittelevät uuden aikakauden generatiivisessa mallinnuksessa käsittelemällä datan generointia käänteisenä stokastisena prosessina. DDPM- ja score-pohjaisten mallien avulla saavutetaan vankka oppiminen, korkea näyteiden laatu ja vaikuttavia tuloksia eri modaliteeteissa. Niiden pohjautuminen todennäköisyys- ja termodynamiikan periaatteisiin tekee niistä sekä matemaattisesti elegantteja että käytännössä tehokkaita.

1. Mikä on diffuusiopohjaisten generatiivisten mallien perusidea?

2. Mitä DDPM:n etenevä prosessi käyttää lisätäkseen kohinaa jokaisessa vaiheessa?

3. Mikä seuraavista kuvaa parhaiten score-funktion xlogp(x)\nabla_x\log{p(x)} roolia score-pohjaisessa generatiivisessa mallinnuksessa?

question mark

Mikä on diffuusiopohjaisten generatiivisten mallien perusidea?

Valitse oikea vastaus

question mark

Mitä DDPM:n etenevä prosessi käyttää lisätäkseen kohinaa jokaisessa vaiheessa?

Valitse oikea vastaus

question mark

Mikä seuraavista kuvaa parhaiten score-funktion xlogp(x)\nabla_x\log{p(x)} roolia score-pohjaisessa generatiivisessa mallinnuksessa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 9

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 9
some-alt