stub Hvad er et Generative Adversarial Network (GAN)? - Unite.AI
Følg os

AI 101

Hvad er et Generative Adversarial Network (GAN)?

mm
Opdateret on

Generative Adversarial Networks (GAN'er) er typer af neurale netværksarkitekturer i stand til at generere nye data der er i overensstemmelse med lærte mønstre. GAN'er kan bruges til at generere billeder af menneskelige ansigter eller andre objekter, til at udføre tekst-til-billede oversættelse, til at konvertere en type billede til en anden og til at forbedre opløsningen af ​​billeder (superopløsning) blandt andre applikationer. Fordi GAN'er kan generere helt nye data, er de i spidsen for mange banebrydende AI-systemer, applikationer og forskning. Men hvordan fungerer GAN'er præcist? Lad os undersøge, hvordan GAN'er fungerer, og se på nogle af deres primære anvendelser.

Definition af generative modeller og GAN'er

En GAN er et eksempel på en generativ model. De fleste AI-modeller kan opdeles i en af ​​to kategorier: overvågede og ikke-overvågede modeller. Superviserede læringsmodeller bruges typisk til at skelne mellem forskellige kategorier af input, for at klassificere. I modsætning hertil bruges uovervågede modeller typisk til at opsummere fordelingen af ​​data, ofte læring en Gaussisk fordeling af dataene. Fordi de lærer fordelingen af ​​et datasæt, kan de trække prøver fra denne lærte distribution og generere nye data.

Forskellige generative modeller har forskellige metoder til at generere data og beregne sandsynlighedsfordelinger. For eksempel Naiv Bayes model opererer ved at beregne en sandsynlighedsfordeling for de forskellige inputfunktioner og den generative klasse. Når Naive Bayes-modellen giver en forudsigelse, beregner den den mest sandsynlige klasse ved at tage sandsynligheden for de forskellige variable og kombinere dem. Andre generative modeller for ikke-dyb læring omfatter Gaussiske blandingsmodeller og Latent Dirichlet Allocation (LDA). Dybt lænede-baserede generative modeller omfatter Begrænsede Boltzmann-maskiner (RBM'er), Variational Autoencoders (VAE'er), og selvfølgelig GAN'er.

Generative kontradiktoriske netværk var første gang foreslået af Ian Goodfellow i 2014, og de blev forbedret af Alec Redford og andre forskere i 2015, hvilket førte til en standardiseret arkitektur for GAN'er. GAN'er er faktisk to forskellige netværk forbundet. GAN'er er består af to halvdele: en generationsmodel og en diskriminationsmodel, også kaldet generatoren og diskriminatoren.

GAN-arkitekturen

Generative kontradiktoriske netværk er bygget ud af en generatormodel og en diskriminatormodel sat sammen. Generatormodellens opgave er at skabe nye eksempler på data, baseret på de mønstre, som modellen har lært af træningsdataene. Diskriminatormodellens opgave er at analysere billeder (forudsat at den er trænet på billeder) og afgøre, om billederne er genereret/falske eller ægte.

De to modeller er sat op mod hinanden, trænet på en spilteoretisk måde. Generatormodellens mål er at producere billeder, der bedrager dens modstander – diskriminatormodellen. I mellemtiden er diskriminatormodellens opgave at overvinde sin modstander, generatormodellen, og fange de falske billeder, som generatoren producerer. At modellerne stilles op mod hinanden resulterer i et våbenkapløb, hvor begge modeller forbedrer sig. Diskriminatoren får feedback om, hvilke billeder der var ægte, og hvilke billeder der blev produceret af generatoren, mens generatoren får information om, hvilke af dens billeder der blev markeret som falske af diskriminatoren. Begge modeller forbedres under træning, med det mål at træne en generationsmodel, der kan producere falske data, der dybest set ikke kan skelnes fra ægte, ægte data.

Når en gaussisk fordeling af data er blevet skabt under træningen, kan den generative model bruges. Generatormodellen tilføres i første omgang en tilfældig vektor, som den transformerer baseret på den Gaussiske fordeling. Med andre ord, vektoren frø til generationen. Når modellen er trænet, vil vektorrummet være en komprimeret version, eller repræsentation, af dataens Gauss-fordeling. Den komprimerede version af datafordelingen omtales som latent rum eller latente variable. Senere kan GAN-modellen så tage den latente rumrepræsentation og trække punkter fra den, som kan gives til generationsmodellen og bruges til at generere nye data, der i høj grad ligner træningsdataene.

Diskriminatormodellen fodres med eksempler fra hele træningsdomænet, som er opbygget af både reelle og genererede dataeksempler. De rigtige eksempler er indeholdt i træningsdatasættet, mens de falske data er produceret af den generative model. Processen med at træne diskriminatormodellen er nøjagtig den samme som grundlæggende, binær klassifikationsmodeltræning.

GAN træningsproces

Lad os se på det hele uddannelse behandle til en hypotetisk billedgenereringsopgave.

Til at begynde med trænes GAN ved at bruge ægte, rigtige billeder som en del af træningsdatasættet. Dette sætter diskriminatormodellen op til at skelne mellem genererede billeder og rigtige billeder. Det producerer også den datadistribution, som generatoren vil bruge til at producere nye data.

Generatoren tager en vektor af tilfældige numeriske data ind og transformerer dem baseret på Gauss-fordelingen, hvilket returnerer et billede. Disse genererede billeder, sammen med nogle ægte billeder fra træningsdatasættet, føres ind i diskriminatormodellen. Diskriminatoren vil give en probabilistisk forudsigelse om arten af ​​de billeder, den modtager, og udsende en værdi mellem 0 og 1, hvor 1 typisk er autentiske billeder, og 0 er et falsk billede.

Der er en dobbelt feedback-loop i spil, da jorddiskriminatoren bliver fodret med billedernes grundsandhed, mens generatoren får feedback på sin ydeevne af diskriminatoren.

De generative modeller og diskriminationsmodellerne spiller et nulsumsspil med hinanden. Et nulsumsspil er et, hvor gevinsterne fra den ene side kommer på bekostning af den anden side (summen er, at begge handlinger er nul ex). Når diskriminatormodellen med succes er i stand til at skelne mellem ægte og falske eksempler, foretages der ingen ændringer i diskriminatorens parametre. Der bliver dog lavet store opdateringer af modellens parametre, når den ikke formår at skelne mellem ægte og falske billeder. Det omvendte er sandt for den generative model, den straffes (og dens parametre opdateres), når den ikke formår at narre den diskriminerende model, men ellers er dens parametre uændrede (eller den belønnes).

Ideelt set er generatoren i stand til at forbedre sin ydeevne til et punkt, hvor diskriminatoren ikke kan skelne mellem de falske og rigtige billeder. Dette betyder, at diskriminatoren altid vil gengive sandsynligheder på %50 for ægte og falske billeder, hvilket betyder, at de genererede billeder ikke skal kunne skelnes fra de ægte billeder. I praksis vil GAN'er typisk ikke nå dette punkt. Den generative model behøver dog ikke at skabe fuldstændig ens billeder for stadig at være brugbar til de mange opgaver, GAN'er bruges til.

GAN applikationer

GAN'er har en række forskellige applikationer, de fleste af dem drejer sig om generering af billeder og komponenter af billeder. GAN'er bruges almindeligvis i opgaver, hvor de påkrævede billeddata mangler eller er begrænset i en vis kapacitet, som en metode til at generere de nødvendige data. Lad os undersøge nogle af de almindelige anvendelsessager for GAN'er.

Generering af nye eksempler til datasæt

GAN'er kan bruges til at generere nye eksempler til simple billeddatasæt. Hvis du kun har en håndfuld træningseksempler og har brug for flere af dem, kan GAN'er bruges til at generere nye træningsdata til en billedklassifikator, hvilket genererer nye træningseksempler i forskellige orienteringer og vinkler.

Generering af unikke menneskelige ansigter

Kvinden på dette billede eksisterer ikke. Billedet blev genereret af StyleGAN. Foto: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Når de er tilstrækkeligt trænede, kan GAN'er bruges til generere ekstremt realistiske billeder af menneskelige ansigter. Disse genererede billeder kan bruges til at hjælpe med at træne ansigtsgenkendelsessystemer.

Billede-til-billede oversættelse

GANer excel i billedoversættelse. GAN'er kan bruges til at farvelægge sort/hvide billeder, oversætte skitser eller tegninger til fotografiske billeder eller konvertere billeder fra dag til nat.

Tekst-til-billede oversættelse

Tekst-til-billede oversættelse er muligt gennem brug af GAN'er. Når forsynet med tekst, der beskriver et billede og det tilhørende billede, kan en GAN blive trænet i at skabe et nyt billede når forsynet med en beskrivelse af det ønskede billede.

Redigering og reparation af billeder

GAN'er kan bruges til at redigere eksisterende fotografier. GAN'er fjerne elementer som regn eller sne fra et billede, men de kan også bruges til reparere gamle, beskadigede billeder eller beskadigede billeder. 

Superopløsning

Super opløsning er processen med at tage et billede i lav opløsning og indsætte flere pixels i billedet, hvilket forbedrer opløsningen af ​​det billede. GAN'er kan trænes til at tage et billede generere en version i højere opløsning af billedet. 

Blogger og programmør med speciale i Maskinelæring , Deep Learning emner. Daniel håber at kunne hjælpe andre med at bruge AI's kraft til socialt gode.