selitetty.com

Kuva-, ääni- ja videogeneraattorit

Miten tekoäly tekee kuvan? Diffuusiomalli selitettynä

Kuvageneraattori ei hae mistään valmista kuvaa. Se aloittaa satunnaisesta kohinasta ja siivoaa sitä askel askeleelta kohti sitä, mitä kehotteessa luki.

Lyhyt vastaus

Tavallisin kuvageneraattori on diffuusiomalli. Se on opetettu poistamaan kuvista kohinaa, ja kuvan tuottaminen on tämän taidon käyttämistä väärinpäin: malli aloittaa pelkästä satunnaiskohinasta ja poistaa siitä kohinaa toistuvasti, kunnes jäljellä on kuva. Kehote ohjaa jokaista askelta, koska teksti ja kuva on opetettu samaan numeeriseen esitysavaruuteen. Koska lähtökohina on joka kerta eri, sama kehote ei tuota samaa kuvaa.

Sisällys
  1. Kuvageneraattori ei etsi kuvaa, se veistää sen kohinasta
  2. Näin malli opetettiin: kohinaa lisätään, jotta se opitaan poistamaan
  3. Miksi työ tehdään pakatussa esitysavaruudessa
  4. Miten teksti ohjaa lopputulosta
  5. Askelten määrä ja se, mitä säätimet oikeasti tekevät
  6. Miksi sama kehote ei tuota samaa kuvaa
  7. Miksi kädet, teksti ja symmetria menevät pieleen
  8. Mitä tästä kannattaa ottaa käytäntöön
  9. Usein kysytyt kysymykset
  10. Lähteet ja lisälukemista

Kun kirjoitat kuvageneraattorille "punainen puutalo järven rannalla iltavalossa", moni olettaa että palvelu etsii jostain valtavasta kuvavarastosta lähimmän osuman ja muokkaa sitä. Näin ei tapahdu. Malli on tiedostona murto-osa siitä aineistosta, jolla se opetettiin, joten opetuskuvat eivät yksinkertaisesti mahtuisi sinne. Siellä on lukuja, jotka kuvaavat tilastollisia säännönmukaisuuksia: millaista kohinaa esiintyy punaisen laudoituksen päällä, miten iltavalo taittuu veteen, minkä muotoinen katto on todennäköinen.

Kuvan tuottaminen alkaa satunnaisesta kohinasta, siis merkityksettömästä rakeesta, ja etenee poistamalla kohinaa vähän kerrallaan. Jokaisella askeleella malli arvaa, mikä osa nykyisestä ruudusta on kohinaa, ja vähentää arvauksensa pois. Kehote ohjaa arvausta. Muutaman kymmenen askeleen jälkeen jäljellä on kuva.

Tämä yksi lause selittää yllättävän suuren osan siitä, mikä kuvageneraattoreissa on hämmentävää: miksi sama kehote antaa joka kerta eri kuvan, miksi kieltäminen ei toimi, miksi kädessä on kuusi sormea ja miksi kuvassa voi olla tekstiä, joka näyttää tekstiltä mutta ei ole sitä.

Kuvageneraattori ei etsi kuvaa, se veistää sen kohinasta

Vertaa kahta työtapaa. Hakukone etsii olemassa olevista tiedostoista sen, joka parhaiten vastaa hakuasi. Kuvamalli ei etsi mitään. Se tekee arvion siitä, miltä pitäisi näyttää sellaisen kuvan, jota kuvailtu teksti kuvaisi, ja rakentaa sen tyhjästä.

Rakenne on sama kuin muissakin syväoppimisen sovelluksissa. Pohjalla on neuroverkko, joka koostuu kerroksittain järjestetyistä painotetuista summista. Opetuksessa säädetään näitä painoja niin, että verkko oppii yhden tehtävän. Kuvamallin tehtävä on epätavallinen ja siksi helppo ymmärtää väärin: verkkoa ei opeteta piirtämään vaan arvioimaan kohinaa.

Diffuusiomalli ei osaa tehdä kuvaa. Se osaa vain kertoa, mikä nykyisessä kuvassa on liikaa, ja se riittää, kun kysymys esitetään tarpeeksi monta kertaa.

Näin malli opetettiin: kohinaa lisätään, jotta se opitaan poistamaan

Opetus on nerokkaan yksinkertainen, koska siihen ei tarvita ihmisen tekemiä merkintöjä. Opetusvaiheessa otetaan aineiston kuva ja pilataan se hallitusti.

  1. Valitaan kuva ja kohinan määrä. Aineistosta poimitaan kuva ja arvotaan luku, joka kertoo kuinka pitkälle sitä sotketaan.
  2. Lisätään kohinaa. Kuvaan lisätään satunnaista kohinaa valitun määrän verran. Pienellä määrällä kuva on lähes ennallaan, suurella siitä ei erota mitään.
  3. Pyydetään mallia arvaamaan lisätty kohina. Malli näkee sotketun kuvan ja tiedon siitä, kuinka monta askelta kohinaa lisättiin, ja sen pitää arvata mitä lisättiin.
  4. Verrataan arvaus totuuteen. Ero muutetaan yhdeksi luvuksi, ja mallin painoja säädetään hitusen siihen suuntaan, että virhe pienenisi.
  5. Toistetaan valtava määrä kertoja. Askel kerrallaan malli oppii, miltä kohina näyttää kaikkien mahdollisten kuvasisältöjen päällä.

Tässä on koko koulutus. Se, mistä kuvista tämä tehdään, ratkaisee mitä malli osaa ja mitä se ei osaa. Aiheet, joita opetusaineistossa oli niukasti, tulevat ulos epävarmoina tai stereotyyppisinä, ja aineiston painotukset näkyvät suoraan siinä, millaisia ihmisiä ja ympäristöjä malli tarjoaa oletuksena.

Kun opetus on ohi, prosessi käännetään ympäri. Aloitetaan pelkästä kohinasta, jossa ei ole mitään kuvaa. Malli arvaa kohinan, arvaus vähennetään, ja jäljelle jää hitusen vähemmän satunnaista ruutua. Sama kysymys esitetään uudelleen. Kohinasta erottuu ensin karkeat massat ja värialueet, sitten muodot, viimeisenä pinnat ja yksityiskohdat.

Miksi työ tehdään pakatussa esitysavaruudessa

Suoraan pikseleillä laskeminen olisi raskasta. Suurin osa nykyisistä kuvageneraattoreista tekee kohinanpoiston pakatussa esityksessä, jota kutsutaan latenttiavaruudeksi. Erillinen verkko on opetettu puristamaan kuva selvästi pienempään lukumäärään lukuja kuin pikseleitä on ja purkamaan se takaisin pikseleiksi niin, että ihmissilmä ei juuri huomaa eroa.

Diffuusio tapahtuu tässä pienemmässä esityksessä, ja vasta viimeisenä työnä pakattu tulos puretaan näkyväksi kuvaksi. Tästä seuraa kaksi käytännön asiaa. Kuvan tuottaminen on tarpeeksi kevyttä toimiakseen tavallisella palvelimella sekunneissa. Toisaalta hienoin yksityiskohta, esimerkiksi pienikokoinen teksti tai kaukana näkyvät kasvot, kärsii pakkauksesta samaan tapaan kuin voimakkaasti pakatussa kuvatiedostomuodossa.

Miten teksti ohjaa lopputulosta

Kehote ei mene malliin sanoina. Erillinen tekstiverkko muuttaa sen numerovektoreiksi. Ratkaiseva temppu on, että tämä tekstiverkko on opetettu yhdessä kuvaverkon kanssa suurella joukolla kuvia ja niiden tekstikuvauksia niin, että toisiaan vastaava kuva ja teksti päätyvät lähelle toisiaan samassa avaruudessa. Sana "sumu" osoittaa samaan suuntaan kuin sumuiset kuvat.

Kohinanpoistoverkko saa nämä vektorit joka askeleella, ja huomiomekanismi kytkee kehotteen osat kuvan eri alueisiin. Käytännössä kehote ei ole käsky vaan jatkuva veto tiettyyn suuntaan.

Useimmissa palveluissa on lisäksi säädin, joka kertoo kuinka voimakkaasti kehotteeseen nojataan. Malli laskee kullakin askeleella kaksi arvausta, yhden kehotteen kanssa ja yhden ilman, ja niiden erotusta vahvistetaan halutulla kertoimella. Tämä ohjausvoimakkuus on syy siihen, että kehotetta liian tiukasti seuraavat kuvat alkavat näyttää ylikylläisiltä ja liioitelluilta.

Tekstipuolella vastaava säädin on lämpötila ja muut asetukset, mutta se vaikuttaa eri asiaan: siellä säädetään satunnaisuutta, täällä kehotteen painoarvoa.

Askelten määrä ja se, mitä säätimet oikeasti tekevät

Askelten määrä on ensimmäinen asetus, jota käyttäjä yleensä kokeilee. Vaikutus on selvä alussa ja katoaa nopeasti.

Säädin Mitä se muuttaa Mitä liian pieni arvo tekee Mitä liian suuri arvo tekee
Askelten määrä Kuinka monessa erässä kohina poistetaan Kuva jää sekavaksi ja epätarkaksi Ei juuri paranna, kuluttaa aikaa ja laskentaa
Ohjausvoimakkuus Kuinka tiukasti kehotetta seurataan Kuva ajautuu kauas kehotteesta Värit kylläisiä, muodot liioiteltuja, yksityiskohdat rikkoutuvat
Siemenluku Mistä kohinasta aloitetaan Ei parempi tai huonompi arvo, vain eri kuva Sama
Tarkkuus ja kuvasuhde Kuinka suuri ruutu täytetään Yksityiskohdat eivät mahdu Sommittelu voi hajota tai kuvassa toistuu sama aihe kahdesti

Askelten kohdalla kannattaa ymmärtää, että laskentatapoja on useita. Osa niistä pääsee hyvään tulokseen selvästi harvemmilla askeleilla kuin toiset, joten yhdessä palvelussa opittu askelmäärä ei siirry toiseen sellaisenaan. Yleissääntö on, että ero näkyy alimmilla arvoilla ja tasoittuu sen jälkeen.

Miksi sama kehote ei tuota samaa kuvaa

Tämä hämmentää monia, koska kone yleensä tekee saman asian samasta syötteestä. Kuvageneraattorissa syöte ei ole pelkkä kehote. Lähtökohina arvotaan, ja arvonnan lähtöarvo on siemenluku. Sama kehote eri siemenluvulla tarkoittaa eri lähtökohtaa, ja koska koko prosessi on tämän lähtökohdan hiomista, tulos on eri kuva.

Jos siemenluku lukitaan ja kaikki muu pidetään ennallaan, sama kuva syntyy uudelleen. Ehdot ovat tiukat: sama malli, sama versio, samat asetukset ja sama laskentatapa. Palvelut päivittävät mallejaan, joten kuukausi sitten talteen otettu siemenluku ei välttämättä tuota enää samaa kuvaa. Jos kuva on sinulle tärkeä, tallenna itse kuva, älä siemenlukua.

Toistettavuus on myös työkalu. Kun lukitset siemenluvun ja muutat kehotteessa yhden asian kerrallaan, näet mitä juuri se muutos teki. Tämä on kuvakehotteen kirjoittamisen tärkein yksittäinen tekniikka.

Miksi kädet, teksti ja symmetria menevät pieleen

Virheet eivät ole satunnaisia kömmähdyksiä vaan seurausta siitä, mitä mallia on opetettu tekemään. Malli arvioi paikallista uskottavuutta: näyttääkö tämä kohta oikealta suhteessa ympäristöönsä. Se ei laske eikä tarkista kokonaisuutta.

Tyypillinen virhe Miksi juuri se
Sormia liikaa tai liian vähän Käsi on pieni, nivelikäs ja esiintyy aineistossa tuhannessa asennossa. Paikallisesti jokainen sormi näyttää oikealta, mutta mikään osa mallia ei laske niitä.
Kirjoitettu teksti muuttuu koristeeksi Malli on oppinut miltä kirjaimet näyttävät, ei mitä ne tarkoittavat. Kirjainten tarkka järjestys on globaali sääntö, ja pakattu esitys hukkaa pienen tekstin yksityiskohdat.
Korvakorut, silmälasit ja kuosit eivät täsmää Kuvan vasen ja oikea laita syntyvät osin erikseen. Vastaavuuden pitäisi olla pitkän matkan sääntö, eikä sellaista ole erikseen opetettu.
Esineet kelluvat tai varjot ovat vääriin suuntiin Malli tuntee valon tilastollisesti, ei fysiikkana. Uskottava varjo riittää, johdonmukainen ei ole vaatimus.
Väärä määrä kohteita, kun pyydät esimerkiksi neljää Lukusanat ovat kehotteessa heikko ohjaus. Kuvan tuottamisessa ei ole laskuria.

Uudemmat mallit ovat parantuneet erityisesti tekstissä ja käsissä, koska aineistoa ja arkkitehtuuria on kehitetty juuri näihin. Ongelma on kuitenkin rakenteellinen, ei ohimenevä bugi. Aina kun kuvassa on jotain laskettavaa, luettavaa tai peilattavaa, tarkista se itse.

Sama piirre selittää sen, miksi kuvassa voi olla jotain, joka näyttää ensisilmäyksellä oikealta mutta hajoaa lähemmässä tarkastelussa. Se on hyödyllinen tieto myös silloin, kun arvioit toisen tekemää kuvaa esimerkiksi ennen sen jakamista, koska kuvien mukana kulkevat metatiedot eivät kerro alkuperästä yhtä paljon kuin moni olettaa.

Mitä tästä kannattaa ottaa käytäntöön

Mekanismin ymmärtäminen muuttaa työtapaa enemmän kuin temppulistat. Nämä seuraavat suoraan yllä olevasta.

  • Kuvaile, älä kiellä. Jokainen askel työntää kohti sitä, mitä kehotteessa on. Kiellon kohde on kehotteessa.
  • Lukitse siemenluku silloin kun haluat vertailla, vapauta se silloin kun haluat vaihtoehtoja.
  • Älä nosta askelmäärää ongelman ratkaisuksi. Jos kuva on väärä, se on väärä myös hitaammin laskettuna.
  • Tarkista aina kädet, teksti, silmät, symmetria ja lukumäärät. Ne ovat mallin tunnetut heikot kohdat.
  • Korjaa yksityiskohta muokkaustyökalulla, älä arvo koko kuvaa uudelleen. Kun kokonaisuus on hyvä, uusi arvonta hukkaa sen.
  • Muista, että lopputuloksen käyttöön liittyy erikseen ratkaistavia kysymyksiä. Palvelun ehdot ja tekijänoikeus ovat eri asia kuin kuvan laatu, ja ne käydään läpi artikkelissa saatko käyttää tekoälykuvaa.

Jos vertaat tätä siihen, miten kielimalli toimii, näet saman perusidean kahdessa muodossa. Kielimalli ennustaa seuraavan palan tekstiä, kuvamalli ennustaa kohinan. Kumpikaan ei hae valmista vastausta, ja kumpikin on parhaimmillaan silloin, kun tulos tarkistetaan.

Usein kysytyt kysymykset

Kopioiko tekoäly kuvia opetusaineistosta?

Se ei kopioi kuvia tiedostoina, koska niitä ei ole mallin sisällä. Malli on tilastollinen esitys aineiston säännönmukaisuuksista. Hyvin usein toistuva kuva tai vahvasti tunnistettava tyyli voi kuitenkin tulla ulos hyvin samankaltaisena, joten juridisesti kysymys ei ole yhtä yksinkertainen kuin teknisesti.

Miksi sama kehote antaa aina eri kuvan?

Koska kuvan tuottaminen alkaa satunnaisesta kohinasta ja arvonnan lähtöarvo eli siemenluku vaihtuu joka kerta. Jos lukitset siemenluvun ja pidät kaikki asetukset ennallaan, saat saman kuvan uudelleen samalla mallilla.

Kannattaako askelten määrää nostaa maksimiin?

Ei kannata. Laatu paranee selvästi vain alimmilla arvoilla, ja sen jälkeen lisäaskeleet kuluttavat aikaa ja laskentaa ilman näkyvää hyötyä. Jos kuva ei vastaa toivetta, vika on yleensä kehotteessa tai ohjausvoimakkuudessa.

Miksi kuvan teksti on siansaksaa?

Malli on oppinut miltä kirjaimet näyttävät, ei mitä ne tarkoittavat, eikä kirjainten tarkka järjestys ole sellainen paikallinen piirre, jota kohinanpoisto valvoo. Pakattu esitysavaruus hävittää lisäksi pientä yksityiskohtaa. Lyhyt ja suuri teksti onnistuu selvästi paremmin kuin pitkä ja pieni.

Voiko kuvageneraattoria ajaa omalla koneella?

Osa malleista on julkaistu avoimin painoin, jolloin ne voi ladata ja ajaa itse. Se vaatii tehokkaan näytönohjaimen ja riittävästi muistia, ja tulos on hitaampi kuin pilvipalvelussa. Etuna on, ettei kehotteita eikä kuvia lähetetä mihinkään.

Onko kuvamalli sama asia kuin kielimalli?

Ei ole, vaikka ne jakavat perusrakenteen ja osan tekniikoista. Kielimalli ennustaa tekstin seuraavaa palaa, kuvamalli arvioi kohinaa. Monet palvelut yhdistävät molemmat niin, että kirjoittamasi teksti muokataan ensin kielimallilla ja vasta sitten välitetään kuvamallille.

Takaisin ylös