Skip to content

Latest commit

 

History

History
90 lines (56 loc) · 8.2 KB

File metadata and controls

90 lines (56 loc) · 8.2 KB

Multi-Modale Nettverk

Etter suksessen med transformer-modeller for å løse NLP-oppgaver, har de samme eller lignende arkitekturer blitt brukt på oppgaver innen datamaskinsyn. Det er økende interesse for å bygge modeller som kan kombinere visuelle og språklige evner. En av disse forsøkene ble gjort av OpenAI, og kalles CLIP og DALL.E.

Contrastive Image Pre-Training (CLIP)

Hovedideen med CLIP er å kunne sammenligne tekstbeskrivelser med et bilde og avgjøre hvor godt bildet samsvarer med beskrivelsen.

CLIP Arkitektur

Bilde fra denne bloggposten

Modellen er trent på bilder hentet fra Internett og deres bildetekster. For hver batch tar vi N par av (bilde, tekst) og konverterer dem til vektorrepresentasjoner I, ..., I / T, ..., T. Disse representasjonene matches deretter sammen. Tapfunksjonen er definert for å maksimere cosinus-similariteten mellom vektorer som tilsvarer ett par (f.eks. I og T), og minimere cosinus-similariteten mellom alle andre par. Det er grunnen til at denne tilnærmingen kalles kontrastiv.

CLIP-modellen/biblioteket er tilgjengelig fra OpenAI GitHub. Tilnærmingen er beskrevet i denne bloggposten og mer detaljert i denne artikkelen.

Når denne modellen er forhåndstrent, kan vi gi den en batch med bilder og en batch med tekstbeskrivelser, og den vil returnere en tensor med sannsynligheter. CLIP kan brukes til flere oppgaver:

Bildeklassifisering

Anta at vi må klassifisere bilder mellom for eksempel katter, hunder og mennesker. I dette tilfellet kan vi gi modellen et bilde og en serie tekstbeskrivelser: "et bilde av en katt", "et bilde av en hund", "et bilde av et menneske". I den resulterende vektoren med 3 sannsynligheter trenger vi bare å velge indeksen med høyest verdi.

CLIP for Bildeklassifisering

Bilde fra denne bloggposten

Tekstbasert Bildesøk

Vi kan også gjøre det motsatte. Hvis vi har en samling bilder, kan vi sende denne samlingen til modellen og en tekstbeskrivelse - dette vil gi oss bildet som er mest likt den gitte beskrivelsen.

Åpne Clip.ipynb-notatet for å se CLIP i aksjon.

Bildegenerering med VQGAN+CLIP

CLIP kan også brukes til bildegenerering fra en tekstbeskrivelse. For å gjøre dette trenger vi en generator-modell som kan generere bilder basert på en vektorinput. En av disse modellene kalles VQGAN (Vector-Quantized GAN).

Hovedideene til VQGAN som skiller den fra vanlige GAN er følgende:

  • Bruk av autoregressiv transformer-arkitektur for å generere en sekvens av kontekstrike visuelle deler som utgjør bildet. Disse visuelle delene læres igjen av CNN.
  • Bruk av sub-bilde diskriminator som oppdager om deler av bildet er "ekte" eller "falske" (i motsetning til "alt-eller-ingenting"-tilnærmingen i tradisjonelle GAN).

Lær mer om VQGAN på Taming Transformers nettsiden.

En av de viktige forskjellene mellom VQGAN og tradisjonelle GAN er at sistnevnte kan produsere et anstendig bilde fra hvilken som helst inputvektor, mens VQGAN sannsynligvis vil produsere et bilde som ikke er sammenhengende. Derfor må vi videre veilede bildeopprettingsprosessen, og det kan gjøres ved hjelp av CLIP.

VQGAN+CLIP Arkitektur

For å generere et bilde som samsvarer med en tekstbeskrivelse, starter vi med en tilfeldig kodingsvektor som sendes gjennom VQGAN for å produsere et bilde. Deretter brukes CLIP til å produsere en tapfunksjon som viser hvor godt bildet samsvarer med tekstbeskrivelsen. Målet er da å minimere dette tapet, ved hjelp av backpropagation for å justere inputvektorens parametere.

Et flott bibliotek som implementerer VQGAN+CLIP er Pixray.

Bilde produsert av Pixray Bilde produsert av Pixray Bilde produsert av Pixray
Bilde generert fra beskrivelsen et nærbilde akvarellportrett av ung mannlig lærer i litteratur med en bok Bilde generert fra beskrivelsen et nærbilde oljemaleriportrett av ung kvinnelig lærer i informatikk med en datamaskin Bilde generert fra beskrivelsen et nærbilde oljemaleriportrett av eldre mannlig lærer i matematikk foran en tavle

Bilder fra Artificial Teachers-samlingen av Dmitry Soshnikov

DALL-E

DALL-E er en versjon av GPT-3 trent til å generere bilder fra beskrivelser. Den er trent med 12 milliarder parametere.

I motsetning til CLIP mottar DALL-E både tekst og bilde som en enkelt strøm av tokens for både bilder og tekst. Derfor kan du generere bilder basert på flere beskrivelser.

Hovedforskjellen mellom DALL.E 1 og 2 er at den genererer mer realistiske bilder og kunst.

Eksempler på bildegenerering med DALL-E:

Bilde produsert av Pixray Bilde produsert av Pixray Bilde produsert av Pixray
Bilde generert fra beskrivelsen et nærbilde akvarellportrett av ung mannlig lærer i litteratur med en bok Bilde generert fra beskrivelsen et nærbilde oljemaleriportrett av ung kvinnelig lærer i informatikk med en datamaskin Bilde generert fra beskrivelsen et nærbilde oljemaleriportrett av eldre mannlig lærer i matematikk foran en tavle

Referanser


Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.