Xlera8

Johdatus koneoppimisen diffuusiomalleihin

Tämä artikkeli julkaistiin alunperin AssemblyAI ja julkaistu uudelleen TOPBOTSille kirjoittajan luvalla.

Diffuusiomallit ovat generatiivisia malleja, jotka ovat saavuttaneet huomattavaa suosiota viime vuosina, ja hyvästä syystä. Kourallinen 2020-luvulla julkaistuja merkittäviä papereita yksin ovat näyttäneet maailmalle, mihin diffuusiomallit pystyvät, kuten GAN-verkkojen lyömiseen[6] kuvasynteesissä. Viime aikoina harjoittajat ovat nähneet diffuusiomallien käytön DALL-E2, OpenAI:n kuvanluontimalli julkaistiin viime kuussa.

Erilaisia ​​DALL-E 2:n luomia kuvia (lähde).

Diffusion Modelsin viimeaikaisen menestysaallon vuoksi monet koneoppimisen harjoittajat ovat varmasti kiinnostuneita heidän sisäisestä toiminnastaan. Tässä artikkelissa tarkastelemme diffuusiomallien teoreettiset perusteetja näytä sitten, kuinka luodaan kuvia a Diffuusiomalli PyTorchissa. Sukelletaan sisään!

Jos tästä perusteellisesta opetussisällöstä on hyötyä sinulle, tilaa AI-postituslistamme hälytys, kun julkaisemme uutta materiaalia. 

Diffuusiomallit – Johdanto

Diffuusiomallit ovat generatiivinen malleja, mikä tarkoittaa, että niitä käytetään tuottamaan tietoja, jotka ovat samanlaisia ​​​​kuin ne ovat koulutettuja. Pohjimmiltaan diffuusiomallit toimivat harjoitustietojen tuhoaminen Gaussin kohinan peräkkäisen lisäämisen kautta ja sitten oppia toipumaan tiedot tekijältä peruutettaessa tämä meluisa prosessi. Harjoittelun jälkeen voimme käyttää diffuusiomallia tietojen luomiseen yksinkertaisesti satunnaisesti näytetyn kohinan kuljettaminen opitun kohinanpoistoprosessin läpi.

Diffuusiomalleja voidaan käyttää kuvien luomiseen kohinasta (sovitettu lähde)

Tarkemmin sanottuna diffuusiomalli on piilevä muuttujamalli, joka kartoitetaan piilevään tilaan käyttämällä kiinteää Markov-ketjua. Tämä ketju lisää asteittain kohinaa dataan saadakseen likimääräisen posteriorin q(x1: T|x0), missä x1,…, XT ovat piileviä muuttujia, joilla on sama ulottuvuus kuin x0. Alla olevassa kuvassa näemme sellaisen Markovin ketjun, joka ilmenee kuvadatalle.

Lopulta kuva muuttuu asymptoottisesti puhtaaksi Gaussin kohinaksi. The tavoite diffuusiomallin koulutuksen on oppia käänteinen prosessi – eli koulutus sθ(xt-1|xt). Kuljettamalla taaksepäin tätä ketjua pitkin voimme luoda uutta dataa.

Diffuusiomallien edut

Kuten edellä mainittiin, diffuusiomallien tutkimus on kasvanut räjähdysmäisesti viime vuosina. Epätasapainoisen termodynamiikan inspiroima[1], Diffuusiomallit tuottavat tällä hetkellä Huippuluokan kuvanlaatu, joista on esimerkkejä alla:

Huippuluokan kuvanlaadun lisäksi diffuusiomalleissa on monia muita etuja, kuten ei vaadi vastustajakoulutusta. Vastuullisen koulutuksen vaikeudet on dokumentoitu hyvin; ja tapauksissa, joissa on olemassa ei-kilpailevia vaihtoehtoja, joilla on vertailukelpoinen suorituskyky ja koulutustehokkuus, on yleensä parasta käyttää niitä. Harjoittelutehokkuuden osalta diffuusiomalleilla on myös lisäetuja skaalautuvuus ja rinnastettavuus.

Vaikka diffuusiomallit melkein näyttävät tuottavan tuloksia tyhjästä, on olemassa monia huolellisia ja mielenkiintoisia matemaattisia valintoja ja yksityiskohtia, jotka muodostavat perustan näille tuloksille, ja parhaita käytäntöjä kehitetään edelleen kirjallisuudessa. Katsotaanpa nyt tarkemmin diffuusiomallien taustalla olevaa matemaattista teoriaa.

Diffuusiomallit – syvä sukellus

Kuten edellä mainittiin, diffuusiomalli koostuu a eteenpäin prosessi (Tai diffuusioprosessi), jossa data (yleensä kuva) kohinataan progressiivisesti, ja a käänteinen prosessi (Tai käänteinen diffuusioprosessi), jossa kohina muunnetaan takaisin näytteeksi kohdejakaumasta.

Eteenpäin menevän prosessin näytteenottoketjun siirtymät voidaan asettaa ehdollisiin Gausseihin, kun kohinataso on riittävän alhainen. Tämän tosiasian yhdistäminen Markovin oletukseen johtaa eteenpäin prosessin yksinkertaiseen parametrointiin:

Matemaattinen huomautus

Olemme puhuneet tietojen turmelemisesta lisää Gaussin kohinaa, mutta voi aluksi olla epäselvää, missä tätä lisäystä tehdään. Yllä olevan yhtälön mukaan ketjun jokaisessa vaiheessa otamme yksinkertaisesti otoksia Gaussin jakaumasta, jonka keskiarvo on ketjun edellinen arvo (eli kuva).

Nämä kaksi väitettä ovat samanarvoisia. Tuo on

Ymmärtääksemme miksi, käytämme merkintöjen lievää väärinkäyttöä väittämisessä

Kun lopullinen implikaatio johtuu satunnaismuuttujien summan ja niiden jakaumien konvoluution välisestä matemaattisesta ekvivalenssista – ks. tällä Wikipedian sivulla lisätietoja.

Toisin sanoen olemme osoittaneet, että edellisen aikaaskeleen jakauman väittäminen Gaussin jakauman keskiarvon kautta vastaa väittämistä, että tietyn aikaaskeleen jakauma on edellisen jakauman, johon on lisätty Gaussin kohina. Jätimme pois varianssiaikataulun tuomat skalaarit ja osoitimme tämän yhdelle ulottuvuudelle yksinkertaisuuden vuoksi, mutta samanlainen todistus pätee monimuuttuja Gausseihin.

Missä β1,…,βT on varianssiaikataulu (joko opittu tai kiinteä), joka, jos se toimii hyvin, varmistaa, että xT on lähes isotrooppinen Gaussinen riittävän suurelle T:lle.

Markovin oletus huomioon ottaen piilevien muuttujien yhteinen jakauma on Gaussin ehdollisen ketjusiirtymän tulos (muokattu lähde).

Kuten aiemmin mainittiin, diffuusiomallien "taika" tulee sisään käänteinen prosessi. Harjoittelun aikana malli oppii kääntämään tämän diffuusioprosessin päinvastaiseksi uuden datan tuottamiseksi. Alkaen puhtaasta Gaussin kohinasta p(xT):=N(xT,0,I) malli oppii yhteisjakauman pθ(x0: T) kuten

jossa opitaan Gaussin siirtymien ajasta riippuvat parametrit. Huomaa erityisesti, että Markovin formulaatio väittää, että tietty käänteisen diffuusion siirtymäjakauma riippuu vain edellisestä aikavaiheesta (tai seuraavasta aikavaiheesta riippuen siitä, miten sitä tarkastellaan):

koulutus

Diffuusiomallin kouluttaa löytää käänteiset Markov-siirtymät, jotka maksimoivat harjoitustietojen todennäköisyyden. Käytännössä koulutus koostuu vastaavasti negatiivisen logarin todennäköisyyden vaihtelun ylärajan minimoimisesta.

Merkintätiedot

Huomaa, että Ljne on teknisesti an ylempi sidottu (ELBO:n negatiivi), jonka yritämme minimoida, mutta viittaamme siihen Ljne johdonmukaisuuden vuoksi kirjallisuuden kanssa.

Pyrimme kirjoittamaan L:n uudelleenjne suhteen Kullback-Leibler (KL) Erot. KL-divergentti on epäsymmetrinen tilastollinen etäisyyden mitta, jolla mitataan kuinka paljon yksi todennäköisyysjakauma P eroaa vertailujakaumasta Q. Olemme kiinnostuneita muotoilemaan Ljne KL-poikkeamien suhteen, koska Markov-ketjumme siirtymäjakaumat ovat Gaussia ja Gaussin välisellä KL-erolla on suljettu muoto.

Mikä on KL:n ero?

Jatkuvien jakaumien KL-divergenssin matemaattinen muoto on

Kaksoispalkit osoittavat, että funktio ei ole symmetrinen argumenttiensa suhteen.

Alla näet vaihtelevan jakauman KL-divergenssin P (sininen) viitejakaumasta Q (punainen). Vihreä käyrä osoittaa integraalin sisällä olevan funktion yllä olevassa KL-divergenssin määritelmässä, ja käyrän alla oleva kokonaispinta-ala edustaa KL-divergenssin arvoa. P alkaen Q kullakin hetkellä, arvo, joka näytetään myös numeerisesti.

Valu Lvlb KL:n erojen suhteen

Kuten aiemmin mainittiin, on mahdollista [1] kirjoittaaksesi Ljne lähes täysin KL-erojen suhteen:

jossa

Johdannaistiedot

Variaatioraja on yhtä suuri kuin

Korvaamalla jakaumat niiden määritelmillä Markovin oletuksemme perusteella saamme

Käytämme lokisääntöjä muuntaaksemme lausekkeen lokien summaksi ja vedämme sitten ensimmäisen termin

Käyttämällä Bayesin lausetta ja Markov-olettamamme tämä lauseke tulee

Jaamme sitten keskitermin lokisääntöjen avulla

Eristämällä toinen termi, näemme

Kytkemme tämän takaisin L:n yhtälöönjne, meillä on

Järjestämme uudelleen lokisääntöjen avulla

d8

Seuraavaksi huomaamme seuraavan ekvivalenssin KL:n erolle kahdelle jakaumille:

Lopuksi, soveltamalla tätä ekvivalenssia edelliseen lausekkeeseen, saavutamme

Edellisen prosessin ehdollistaminen posteriorilla x:llä0 kirjassa Lt-1 tuloksena on jäljitettävä muoto, joka johtaa kaikki KL-erot ovat Gaussin välisiä vertailuja. Tämä tarkoittaa, että erot voidaan laskea tarkasti suljetun muodon lausekkeilla eikä Monte Carlo -estimaateilla[3].

Mallivalinnat

Kun tavoitefunktiomme matemaattinen perusta on luotu, meidän on nyt tehtävä useita valintoja diffuusiomallimme toteutuksen suhteen. Forward-prosessissa ainoa vaihtoehto on määrittää varianssiaikataulu, jonka arvot yleensä kasvavat eteenpäinprosessin aikana.

Käänteistä prosessia varten valitsemme paljon Gaussin jakauman parametroinnin/mallin arkkitehtuuri(t). Huomaa korkea joustavuus johon diffuusiomalleilla on varaa – vain Arkkitehtuurimme vaatimus on, että sen tulolla ja lähdöllä on sama ulottuvuus.

Tutustumme näiden valintojen yksityiskohtiin tarkemmin alla.

Forward Process ja LT

Kuten edellä todettiin, eteenpäinprosessin osalta meidän on määriteltävä varianssiaikataulu. Erityisesti asetimme ne sellaisiksi ajasta riippuvat vakiotjättäen huomioimatta sen tosiasian, että ne voidaan oppia. Esimerkiksi[3], lineaarinen aikataulu β:sta1= 10-4 kohtaan βT=0.2 voidaan käyttää tai ehkä geometrinen sarja.

Riippumatta valituista arvoista, se, että varianssiaikataulu on kiinteä, johtaa LT muuttumassa vakioksi opittavien parametridemme suhteen, jolloin voimme jättää sen huomioimatta koulutuksen osalta.

Käänteinen prosessi ja L1:T-1

Nyt keskustelemme valinnoista, joita tarvitaan käänteisen prosessin määrittelyssä. Muistakaa ylhäältä, että määritimme käänteiset Markovin siirtymät Gaussiksi:

Meidän on nyt määriteltävä μ:n funktionaaliset muodotθ tai Σθ. Vaikka on olemassa monimutkaisempia tapoja parametroida Σθ[5], asetamme yksinkertaisesti

Toisin sanoen oletetaan, että monimuuttuja Gaussian on tulo itsenäisistä Gausseista, joilla on identtinen varianssi, varianssiarvo, joka voi muuttua ajan myötä. Me aseta nämä varianssit vastaamaan eteenpäin tulevan prosessin varianssiaikatauluamme.

Kun otetaan huomioon tämä uusi Σ:n muotoiluθ, meillä on

joka antaa meille mahdollisuuden muuttua

että

jossa eron ensimmäinen termi on x:n lineaarinen yhdistelmät ja x0 joka riippuu varianssiaikataulusta βt. Tämän toiminnon tarkka muoto ei ole tarkoituksenmukainen, mutta se löytyy [3].

Yllä olevan osuuden merkitys on se yksinkertaisin μ:n parametrointiθ yksinkertaisesti ennustaa diffuusion posteriorisen keskiarvon. Tärkeää on, että kirjoittajat [3] itse asiassa totesi, että koulutus μθ ennustaa melu komponentti milloin tahansa tuottaa parempia tuloksia. Erityisesti anna

jossa

Tämä johtaa seuraavaan vaihtoehtoiseen häviöfunktioon, jonka kirjoittajat [3] on todettu johtavan vakaampaan harjoitteluun ja parempiin tuloksiin:

Tekijät [3] panevat myös merkille tämän diffuusiomallien yhteydet Langevinin dynamiikkaan perustuviin pisteitä vastaaviin generatiivisiin malleihin. Itse asiassa näyttää siltä, ​​​​että diffuusiomallit ja pistemäärään perustuvat mallit voivat olla saman kolikon kaksi puolta, mikä muistuttaa aaltopohjaisen kvanttimekaniikan ja matriisipohjaisen kvanttimekaniikan itsenäistä ja samanaikaista kehitystä, jotka paljastavat kaksi vastaavaa samojen ilmiöiden muotoilua.[2].

Verkkoarkkitehtuuri

Yksinkertaistettu häviöfunktiomme pyrkii kouluttamaan mallia ϵθ, emme ole vielä määrittäneet tämän mallin arkkitehtuuria. Huomaa, että vain Mallin vaatimus on, että sen tulo- ja lähtöulottuvuus ovat identtiset.

Tämän rajoituksen vuoksi ei ehkä ole yllättävää, että kuvan diffuusiomalleja toteutetaan yleisesti U-Netin kaltaisissa arkkitehtuureissa.

Käänteisen prosessin dekooderi ja L0

Polku käänteisprosessia pitkin koostuu monista muunnoksista jatkuvissa ehdollisissa Gaussin jakaumissa. Käänteisen prosessin lopussa muista, että yritämme tuottaa kuva, joka koostuu kokonaislukupikseliarvoista. Siksi meidän on keksittävä tapa saada diskreetit (log) todennäköisyydet jokaiselle mahdolliselle pikseliarvolle kaikissa pikseleissä.

Tapa, jolla tämä tehdään, on asettamalla käänteisen diffuusioketjun viimeinen siirtymä arvoon an itsenäinen diskreetti dekooderi. Määrittää tietyn kuvan x todennäköisyys0 annettu x1, määritämme ensin riippumattomuuden tietoulottuvuuksien välille:

missä D on datan ja yläindeksin ulottuvuus i ilmaisee yhden koordinaatin poimimisen. Tavoitteena on nyt määrittää, kuinka todennäköinen kukin kokonaisluku on tietylle pikselille tietty jakauma mahdollisten arvojen välillä hieman kohinaisessa kuvassa olevan vastaavan pikselin välillä hetkellä t=1:

jossa pikselijakaumat arvolle t=1 johdetaan alla olevasta monimuuttujaisesta Gaussista, jonka diagonaalinen kovarianssimatriisi mahdollistaa jakauman jakamisen yksimuuttujien Gaussin tuloksi, yksi jokaiselle datan ulottuvuudelle:

Oletetaan, että kuvat koostuvat kokonaisluvuista 0,1,…,255 (kuten tavalliset RGB-kuvat), jotka on skaalattu lineaarisesti arvoon [−1,1]. Jaotamme sitten todellisen rivin pieniin "ämpäriin", joissa tietylle skaalatulla pikseliarvolla x, tämän alueen segmentti on [x−1/255, x+1/255]. Pikseliarvon todennäköisyys x, annetaan vastaavan pikselin yksimuuttuja Gaussin jakauma x:ssä1, on alue tämän yksimuuttujan Gaussin jakauman alla keskuksen sisällä x.

Alla näet kunkin segmentin alueen todennäköisyyksineen Gaussin keskiarvolle, joka tässä yhteydessä vastaa jakaumaa, jonka keskimääräinen pikseliarvo on 0/255 (puolikirkkaus). Punainen käyrä edustaa tietyn pikselin jakautumista t = 1 kuva, ja alueet antavat vastaavan pikseliarvon todennäköisyyden t = 0 kuva.

Tekn. Huom

Ensimmäinen ja viimeinen ryhmä ulottuvat -inf- ja +inf-ryhmiin kokonaistodennäköisyyden säilyttämiseksi.

Annetaan a t = 0 pikselin arvo kullekin pikselille, p:n arvoθ(x0|x1) on yksinkertaisesti heidän tuotteensa. Tämä prosessi on tiivistetty seuraavaan yhtälöön:

jossa

ja

Kun tämä yhtälö p:lle annetaanθ(x0|x1), voimme laskea L:n lopullisen terminjne jota ei ole muotoiltu KL-hajaantumiseksi:

Lopullinen tavoite

Kuten viimeisessä osassa mainittiin, kirjoittajat [3] havaitsi, että kuvan kohinakomponentin ennustaminen tietyllä aikavälillä tuotti parhaat tulokset. Lopulta he käyttävät seuraavaa tavoitetta:

Diffuusiomallimme koulutus- ja näytteenottoalgoritmit voidaan siksi kuvata ytimekkäästi alla olevaan kuvaan:

Diffuusiomalliteorian yhteenveto

Tässä osiossa sukelsimme yksityiskohtaisesti diffuusiomallien teoriaan. Voi olla helppo tarttua matemaattisiin yksityiskohtiin, joten kirjoitamme alla tärkeimmät kohdat tässä osiossa, jotta pysymme suuntautuneina lintuperspektiivistä:

  1. Diffuusiomallimme on parametroitu a Markovin ketju, mikä tarkoittaa, että piilevät muuttujamme x1,…, XT riippuu vain edellisestä (tai seuraavasta) aikavaiheesta.
  2. siirtymäjakaumat Markovin ketjussa ovat Gaussin, jossa eteenpäin suuntautuva prosessi vaatii varianssiaikataulun ja käänteisen prosessin parametrit opitaan.
  3. Diffuusioprosessi varmistaa, että xT is asymptoottisesti jakautuneena isotrooppisena Gaussina riittävän suurelle T:lle.
  4. Meidän tapauksessamme varianssiaikataulu korjattiin, mutta sen voi myös oppia. Kiinteillä aikatauluilla geometrisen etenemisen seuraaminen voi tarjota parempia tuloksia kuin lineaarinen eteneminen. Kummassakin tapauksessa varianssit kasvavat yleensä sarjan ajan myötä (eli βij minulle
  5. Diffuusiomallit ovat erittäin joustava ja sallia Kaikki arkkitehtuuri, jonka tulo- ja lähtöulottuvuus ovat samat käytettäväksi. Monet toteutukset käyttävät U-Netin kaltainen arkkitehtuurit.
  6. koulutuksen tavoite on maksimoida harjoitustietojen todennäköisyys. Tämä ilmenee mallin parametrien virittämisenä minimoida datan negatiivisen logaritmistodennäköisyyden vaihtelun yläraja.
  7. Lähes kaikki tavoitefunktion termit voidaan heittää muotoon KL erot Markovin olettamuksemme seurauksena. Nämä arvot laskettava ottaen huomioon, että käytämme Gaussia, joten jätämme pois tarpeen suorittaa Monte Carlo -approksimaatio.
  8. Viime kädessä käyttämällä a yksinkertaistettu koulutustavoite funktion opettaminen, joka ennustaa tietyn piilevän muuttujan kohinakomponentin, tuottaa parhaat ja vakaat tulokset.
  9. erillinen dekooderi käytetään pikseliarvojen logaritmistodennäköisyyksien saamiseksi viimeisenä vaiheena käänteisessä diffuusioprosessissa.

Tämän korkean tason yleiskatsauksen diffuusiomalleista mielessämme siirrytään katsomaan, kuinka diffuusiomalleja käytetään PyTorchissa.

Diffuusiomallit PyTorchissa

Vaikka diffuusiomalleja ei ole vielä demokratisoitu samassa määrin kuin muita vanhempia koneoppimisen arkkitehtuureja/lähestymistapoja, käytössä on edelleen toteutuksia. Helpoin tapa käyttää diffuusiomallia PyTorchissa on käyttää denoising-diffusion-pytorch paketti, joka toteuttaa tässä artikkelissa käsitellyn kuvan diffuusiomallin. Asenna paketti kirjoittamalla terminaaliin seuraava komento:

pip install denoising_diffusion_pytorch

Minimi esimerkki

Mallin kouluttamiseksi ja kuvien luomiseksi tuomme ensin tarvittavat paketit:

import torch
from denoising_diffusion_pytorch import Unet, GaussianDiffusion

Seuraavaksi määrittelemme verkkoarkkitehtuurimme, tässä tapauksessa U-Netin. The dim parametri määrittää ominaisuuskarttojen lukumäärän ennen ensimmäistä alasnäytteenottoa ja dim_mults parametri tarjoaa kertoimet tälle arvolle ja peräkkäiset alasnäytteet:

model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
)

Nyt kun verkkoarkkitehtuurimme on määritelty, meidän on määritettävä itse diffuusiomalli. Välitämme juuri määrittämämme U-Net-mallin useiden parametrien kanssa – luotavien kuvien koon, diffuusioprosessin aikavaiheiden lukumäärän ja valinnan L1- ja L2-normien välillä.

diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
)

Nyt kun diffuusiomalli on määritelty, on aika harjoitella. Luomme satunnaista dataa harjoittelua varten ja harjoittelemme sitten diffuusiomallia tavalliseen tapaan:

training_images = torch.randn(8, 3, 128, 128)
loss = diffusion(training_images)
loss.backward()

Kun malli on koulutettu, voimme lopulta luoda kuvia käyttämällä sample() menetelmä diffusion esine. Tässä luomme 4 kuvaa, jotka ovat vain kohinaa, koska harjoitustietomme olivat satunnaisia:

sampled_images = diffusion.sample(batch_size = 4)

Mukautettujen tietojen koulutus

denoising-diffusion-pytorch paketin avulla voit myös kouluttaa diffuusiomallin tietylle tietojoukolle. Vaihda yksinkertaisesti 'path/to/your/images' merkkijono, jonka tietojoukon hakemistopolku on Trainer() kohteen alla ja muuta image_size sopivaan arvoon. Sen jälkeen yksinkertaisesti suorita koodi mallin kouluttamiseksi ja näytä sitten kuten ennen. Huomaa, että PyTorch on käännettävä CUDA:n ollessa käytössä, jotta voit käyttää Trainer luokka:

from denoising_diffusion_pytorch import Unet, GaussianDiffusion, Trainer
model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
).cuda()
diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
).cuda()
trainer = Trainer(
 diffusion,
 'path/to/your/images',
 train_batch_size = 32,
 train_lr = 2e-5,
 train_num_steps = 700000, # total training steps
 gradient_accumulate_every = 2, # gradient accumulation steps
 ema_decay = 0.995, # exponential moving average decay
 amp = True # turn on mixed precision
)
trainer.train()

Alla näet progressiivisen vaimenemisen monimuuttujaisesta Gaussin kohinasta MNIST-numeroihin, jotka muistuttavat käänteistä diffuusiota:

Loppusanat

Diffuusiomallit ovat käsitteellisesti yksinkertainen ja tyylikäs lähestymistapa tiedon tuottamiseen. Heidän huipputason tulokset yhdistettynä ei-taistelevaan koulutukseen ovat nostaneet heidät suuriin korkeuksiin, ja tulevina vuosina voidaan odottaa lisäparannuksia heidän syntymässä olevan asemansa vuoksi. Erityisesti diffuusiomallien on havaittu olevan välttämättömiä huippuluokan mallien, kuten esim DALL-E2.

Viitteet

[1] Syvä valvomaton oppiminen epätasapainoisen termodynamiikan avulla

[2] Generatiivinen mallinnus arvioimalla datan jakautumisen gradientteja

[3] Diffuusiota vaimentavat todennäköisyysmallit

[4] Parannetut tekniikat pisteisiin perustuvien generatiivisten mallien kouluttamiseen

[5] Parannetut vaimentamisen diffuusiotodennäköisyysmallit

[6] Diffuusiomallit päihittävät GANit kuvasynteesissä

[7] GLIDE: Kohti fotorealistista kuvien luomista ja muokkaamista tekstiohjatuilla diffuusiomalleilla

[8] Hierarkkinen teksti-ehdollinen kuvan luominen CLIP-latenteilla

Nautitko tästä artikkelista? Tilaa lisää AI-tutkimuspäivityksiä.

Ilmoitamme sinulle, kun julkaisemme lisää tämänkaltaisia ​​yhteenvetoartikkeleita.

Keskustele kanssamme

Hei siellä! Kuinka voin olla avuksi?