|
|
||
|---|---|---|
| .. | ||
| Clip.ipynb | ||
| README.md | ||
README.md
Monimodaaliset verkot
Transformer-mallien menestyksen jÀlkeen NLP-tehtÀvissÀ samoja tai samankaltaisia arkkitehtuureja on alettu soveltaa myös tietokonenÀkötehtÀviin. Kasvava kiinnostus kohdistuu mallien rakentamiseen, jotka yhdistÀvÀt nÀkö- ja luonnollisen kielen kÀsittelyn kyvyt. Yksi tÀllainen yritys on OpenAI:n kehittÀmÀ CLIP ja DALL.E.
Contrastive Image Pre-Training (CLIP)
CLIP:n pÀÀidea on kyky verrata tekstikehotteita kuvaan ja mÀÀrittÀÀ, kuinka hyvin kuva vastaa kehotetta.
Malli on koulutettu InternetistÀ kerÀtyillÀ kuvilla ja niiden kuvateksteillÀ. Jokaisessa erÀssÀ otetaan N paria (kuva, teksti) ja muunnetaan ne vektoriedustuksiksi I, ..., T.
NÀmÀ edustukset yhdistetÀÀn toisiinsa. Tappiofunktio on mÀÀritelty maksimoimaan kosinissimilariteetti yhden parin (esim. I ja T) vÀlillÀ ja minimoimaan kosinissimilariteetti kaikkien muiden parien vÀlillÀ. TÀstÀ syystÀ tÀtÀ lÀhestymistapaa kutsutaan kontrastiiviseksi.
CLIP-malli/kirjasto on saatavilla OpenAI:n GitHubista. LÀhestymistapaa on kuvattu tÀssÀ blogikirjoituksessa ja tarkemmin tÀssÀ artikkelissa.
Kun tÀmÀ malli on esikoulutettu, sille voidaan antaa erÀ kuvia ja tekstikehotteita, ja se palauttaa tensorin, jossa on todennÀköisyyksiÀ. CLIP:À voidaan kÀyttÀÀ useisiin tehtÀviin:
Kuvien luokittelu
Oletetaan, ettÀ meidÀn tÀytyy luokitella kuvia esimerkiksi kissoihin, koiriin ja ihmisiin. TÀssÀ tapauksessa voimme antaa mallille kuvan ja sarjan tekstikehotteita: "kuva kissasta", "kuva koirasta", "kuva ihmisestÀ". Tuloksena olevasta kolmen todennÀköisyyden vektorista valitsemme vain indeksin, jolla on korkein arvo.
Tekstipohjainen kuvahaku
Voimme tehdĂ€ myös pĂ€invastoin. Jos meillĂ€ on kokoelma kuvia, voimme syöttÀÀ tĂ€mĂ€n kokoelman mallille ja antaa tekstikehotteen â tĂ€mĂ€ antaa meille kuvan, joka on eniten samanlainen kuin annettu kehotus.
âïž Esimerkki: CLIP:n kĂ€yttö kuvien luokitteluun ja kuvahakuun
Avaa Clip.ipynb -muistikirja nÀhdÀksesi CLIP toiminnassa.
Kuvien generointi VQGAN+CLIP:llÀ
CLIP:À voidaan kÀyttÀÀ myös kuvien generointiin tekstikehotteesta. TÀtÀ varten tarvitaan generaattorimalli, joka pystyy tuottamaan kuvia jonkin vektorisyötteen perusteella. Yksi tÀllainen malli on nimeltÀÀn VQGAN (Vector-Quantized GAN).
VQGAN:n pÀÀideat, jotka erottavat sen tavallisesta GAN:sta, ovat seuraavat:
- Autoregressiivisen transformer-arkkitehtuurin kÀyttö tuottamaan kontekstirikkaita visuaalisia osia, jotka muodostavat kuvan. NÀmÀ visuaaliset osat oppii CNN.
- Alikuvan diskriminaattorin kÀyttö, joka tunnistaa, ovatko kuvan osat "aitoja" vai "vÀÀriÀ" (toisin kuin perinteisen GAN:n "kaikki tai ei mitÀÀn" -lÀhestymistapa).
LisÀtietoja VQGAN:sta löytyy Taming Transformers -sivustolta.
Yksi tÀrkeÀ ero VQGAN:n ja perinteisen GAN:n vÀlillÀ on, ettÀ jÀlkimmÀinen voi tuottaa kelvollisen kuvan mistÀ tahansa syötevektorista, kun taas VQGAN todennÀköisesti tuottaa kuvan, joka ei ole koherentti. Siksi kuvan luomisprosessia tÀytyy ohjata edelleen, ja tÀmÀ voidaan tehdÀ CLIP:llÀ.
Tuottaaksemme kuvan, joka vastaa tekstikehotetta, aloitamme satunnaisella koodausvektorilla, joka syötetÀÀn VQGAN:lle kuvan tuottamiseksi. Sitten CLIP:À kÀytetÀÀn tuottamaan tappiofunktio, joka osoittaa, kuinka hyvin kuva vastaa tekstikehotetta. Tavoitteena on minimoida tÀmÀ tappio kÀyttÀmÀllÀ takaisinkytkentÀÀ syötevektorin parametrien sÀÀtÀmiseen.
Loistava kirjasto, joka toteuttaa VQGAN+CLIP:n, on Pixray.
Kuvat Artificial Teachers -kokoelmasta, tekijÀ Dmitry Soshnikov
DALL-E
DALL-E 1
DALL-E on GPT-3:n versio, joka on koulutettu tuottamaan kuvia kehotteista. SitÀ on koulutettu 12 miljardilla parametrilla.
Toisin kuin CLIP, DALL-E vastaanottaa sekÀ tekstin ettÀ kuvan yhtenÀ token-virtana. NÀin ollen useista kehotteista voidaan tuottaa kuvia tekstin perusteella.
DALL-E 2
Suurin ero DALL.E 1:n ja 2:n vÀlillÀ on, ettÀ jÀlkimmÀinen tuottaa realistisempia kuvia ja taidetta.
EsimerkkejÀ DALL-E:n tuottamista kuvista:
Viitteet
- VQGAN-artikkeli: Taming Transformers for High-Resolution Image Synthesis
- CLIP-artikkeli: Learning Transferable Visual Models From Natural Language Supervision
Vastuuvapauslauseke:
TÀmÀ asiakirja on kÀÀnnetty kÀyttÀmÀllÀ tekoÀlypohjaista kÀÀnnöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, ettÀ automaattiset kÀÀnnökset voivat sisÀltÀÀ virheitÀ tai epÀtarkkuuksia. AlkuperÀinen asiakirja sen alkuperÀisellÀ kielellÀ tulisi pitÀÀ ensisijaisena lÀhteenÀ. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskÀÀnnöstÀ. Emme ole vastuussa vÀÀrinkÀsityksistÀ tai virhetulkinnoista, jotka johtuvat tÀmÀn kÀÀnnöksen kÀytöstÀ.








