GrundlÃĶggende AI
Hvad er en Generativ Adversarial Network (GAN)?
Generative Adversarial Networks (GANs) er typer af neurale netvÃĶrksarkitekturer i stand til at generere nye data, der overholder lÃĶrt mÃļnster. GANs kan bruges til at generere billeder af menneskers 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 billedets oplÃļsning (super oplÃļsning) blandt andre anvendelser. Fordi GANs kan generere helt nye data, er de i spidsen for mange avancerede AI-systemer, -applikationer og -forskning. Men hvordan fungerer GANs nÃļjagtigt? Lad os udforske, hvordan GANs fungerer, og kigge pÃĨ nogle af deres primÃĶre anvendelser.
Definering af Generative Modeller og GANs
En GAN er et eksempel pÃĨ en generativ model. De fleste AI-modeller kan deles ind i to kategorier: supervised og unsupervised modeller. Supervised learning-modeller bruges typisk til at diskriminere mellem forskellige kategorier af input, til at klassificere. I modsÃĶtning hertil bruges unsupervised modeller typisk til at sammenfatte datafordelingen, ofte ved at lÃĶre en Gaussian distribution af data. Fordi de lÃĶrer datafordelingen, kan de trÃĶkke prÃļver fra denne lÃĶrt distribution og generere nye data.
Forskellige generative modeller har forskellige metoder til at generere data og beregne sandsynlighedsfordeling. For eksempel fungerer Naive Bayes-modellen 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 variabler og kombinere dem sammen. Andre ikke-dybe lÃĶrenings-generative modeller inkluderer Gaussian Mixture Models og Latent Dirichlet Allocation (LDA). Dyb lÃĶrenings-baserede generative modeller inkluderer Restricted Boltzmann Machines (RBMs), Variational Autoencoders (VAEs) og naturligvis GANs.
Generative Adversarial Networks blev fÃļrst foreslÃĨet af Ian Goodfellow i 2014, og de blev forbedret af Alec Redford og andre forskere i 2015, hvilket ledte til en standardiseret arkitektur for GANs. GANs bestÃĨr faktisk af to forskellige netvÃĶrk, der er forbundet. GANs bestÃĨr af to halvdele: en genereringsmodel og en diskrimineringsmodel, ogsÃĨ kendt som generatoren og diskriminatoren.
GAN-arkitekturen
Generative Adversarial Networks er bygget op af en genereringsmodel og en diskrimineringsmodel, der er sat sammen. Genereringsmodellens opgave er at skabe nye eksempler pÃĨ data, baseret pÃĨ mÃļnstrene, som modellen har lÃĶrt fra trÃĶningsdata. Diskrimineringsmodellens opgave er at analysere billeder (antag, at det er trÃĶnet pÃĨ billeder) og bestemme, om billederne er genererede/falske eller ÃĶgte.

De to modeller er sat op imod hinanden, trÃĶnet i en spilteoretisk facon. Genereringsmodellens mÃĨl er at producere billeder, der bedrager dens modstander â diskrimineringsmodellen. Imens er diskrimineringsmodellens opgave at overvinde sin modstander, genereringsmodellen, og fange de falske billeder, som genereringsmodellen producerer. Det faktum, at modellerne er sat op imod hinanden, resulterer i en vÃĨbenkaplÃļb, hvor begge modeller forbedres. Diskrimineringsmodellen fÃĨr feedback om, hvilke billeder var ÃĶgte og hvilke billeder var produceret af genereringsmodellen, mens genereringsmodellen fÃĨr information om, hvilke af dens billeder var markeret som falske af diskrimineringsmodellen. Begge modeller forbedres under trÃĶning, med mÃĨlet om at trÃĶne en genereringsmodel, der kan producere falsk data, der er stort set umulig at skelne fra rigtige, ÃĶgte data.
NÃĨr en Gaussian distribution af data er blevet oprettet under trÃĶning, kan genereringsmodellen bruges. Genereringsmodellen fÃļdes fÃļrst med en tilfÃĶldig vektor, som den transformerer baseret pÃĨ Gaussian distributionen. Med andre ord, vektoren sÃĶtter generationen i gang. NÃĨr modellen er trÃĶnet, vil vektorrummet vÃĶre en komprimeret version, eller reprÃĶsentation, af dataens Gaussian distribution. Den komprimerede version af datafordelingen kaldes latent rum, eller latent variabler. Senere kan GAN-modellen sÃĨ tage latent rum-reprÃĶsentationen og trÃĶkke punkter fra den, som kan gives til genereringsmodellen og bruges til at generere nye data, der er meget lig trÃĶningsdata.
Diskrimineringsmodellen fÃļdes med eksempler fra hele trÃĶningsdomÃĶnet, som bestÃĨr af bÃĨde ÃĶgte og genererede dataeksempler. De ÃĶgte eksempler er indeholdt i trÃĶningsdatasettet, mens de falske data er produceret af genereringsmodellen. Processen med at trÃĶne diskrimineringsmodellen er nÃļjagtigt den samme som grundlÃĶggende, binÃĶr klassificeringsmodeltrÃĶning.
GAN-trÃĶningsprocessen
Lad os kigge pÃĨ hele trÃĶningsprocessen for en hypotetisk billedgenerering-opgave.
Til at begynde med trÃĶnes GAN med ÃĶgte, rigtige billeder som en del af trÃĶningsdatasettet. Dette sÃĶtter diskrimineringsmodellen op til at skelne mellem genererede billeder og rigtige billeder. Det producerer ogsÃĨ datafordelingen, som genereringsmodellen vil bruge til at producere nye data.
Genereringsmodellen tager imod en vektor af tilfÃĶldige numeriske data og transformerer dem baseret pÃĨ Gaussian distributionen, returnerer et billede. Dette genererede billede, sammen med nogle ÃĶgte billeder fra trÃĶningsdatasettet, fÃļdes ind i diskrimineringsmodellen. Diskrimineringsmodellen vil give en sandsynlighedsforudsigelse om billedernes natur, udgive en vÃĶrdi mellem 0 og 1, hvor 1 typisk er ÃĶgte billeder og 0 er et falsk billede.

Der er en dobbelt feedback-lÃļkke i spil, da diskrimineringsmodellen fÃĨr feedback om, hvilke billeder var ÃĶgte, og genereringsmodellen fÃĨr feedback om sin prÃĶstation fra diskrimineringsmodellen.
De generative og diskriminerende modeller spiller et nul-sum-spil med hinanden. Et nul-sum-spil er et, hvor gevinsten for den ene side kommer pÃĨ bekostning af den anden side (summen er begge handlinger er nul). NÃĨr diskrimineringsmodellen kan skelne mellem ÃĶgte og falske eksempler, ÃĶndres der ikke noget i diskrimineringsmodellens parametre. Imens ÃĶndres der store opdateringer i modellens parametre, nÃĨr den ikke kan skelne mellem ÃĶgte og falske billeder. Det omvendte er sandt for genereringsmodellen, den straffes (og dens parametre opdateres), nÃĨr den ikke kan bedrage diskrimineringsmodellen, men ellers er dens parametre uÃĶndrede (eller den belÃļnnes).
Ideelt set kan genereringsmodellen forbedre sin prÃĶstation til et punkt, hvor diskrimineringsmodellen ikke kan skelne mellem de falske og ÃĶgte billeder. Dette betyder, at diskrimineringsmodellen altid vil give sandsynligheder pÃĨ 50% for ÃĶgte og falske billeder, hvilket betyder, at de genererede billeder skal vÃĶre stort set umulig at skelne fra de ÃĶgte billeder. I praksis nÃĨr GANs typisk ikke dette punkt. Men genereringsmodellen behÃļver ikke at producere perfekt lignende billeder for at vÃĶre nyttig til de mange opgaver, GANs bruges til.
GAN-anvendelser
GANs har en rÃĶkke forskellige anvendelser, de fleste af dem drejer sig om generering af billeder og billedkomponenter. GANs bruges ofte i opgaver, hvor de pÃĨkrÃĶvede billeddata mangler eller er begrÃĶnsede pÃĨ en eller anden mÃĨde, som en metode til at generere de pÃĨkrÃĶvede data. Lad os kigge pÃĨ nogle af de almindelige anvendelser af GANs.
Generering af nye eksempler til datasÃĶt
GANs kan bruges til at generere nye eksempler til simple billed datasÃĶt. Hvis du kun har et par trÃĶnings eksempler og har brug for mere, kan GANs bruges til at generere nye trÃĶningsdata til en billedklassifikator, generere nye trÃĶnings eksempler i forskellige retninger og vinkler.
Generering af unikke menneskeansigter

Kvinden pÃĨ dette billede findes ikke. Billedet er 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ÃĶnet, kan GANs bruges til at generere ekstremt realistiske billeder af menneskeansigter. Disse genererede billeder kan bruges til at hjÃĶlpe med at trÃĶne ansigtsgenkendelsessystemer.
Billede-til-billede-oversÃĶttelse
GANs udmÃĶrker sig i billedoversÃĶttelse. GANs kan bruges til at farvelÃĶgge sort-hvid billeder, oversÃĶtte skitser eller tegninger til fotorealistiske billeder eller konvertere billeder fra dag til nat.
Tekst-til-billede-oversÃĶttelse
Tekst-til-billede-oversÃĶttelse er mulig gennem brug af GANs. NÃĨr du fÃĨr en tekst, der beskriver et billede, og det tilhÃļrende billede, kan en GAN trÃĶnes til at skabe et nyt billede, nÃĨr du fÃĨr en beskrivelse af det Ãļnskede billede.
Redigering og reparation af billeder
GANs kan bruges til at redigere eksisterende fotografier. GANs fjerner elementer som regn eller sne fra et billede, men de kan ogsÃĨ bruges til at reparere gamle, beskadigede billeder eller korrupte billeder.
Super oplÃļsning
Super oplÃļsning er processen med at tage et lavoplÃļst billede og indsÃĶtte flere pixels i billedet, forbedre billedets oplÃļsning. GANs kan trÃĶnes til at tage et billede og generere en hÃļjere oplÃļsning af det.
GANs kan ogsÃĨ bruges til at reparere gamle, beskadigede billeder eller korrupte billeder. Super oplÃļsning Super oplÃļsning er processen med at tage et lavoplÃļst billede og indsÃĶtte flere pixels i billedet, forbedre billedets oplÃļsning. GANs kan trÃĶnes til at tage et billede og generere en hÃļjere oplÃļsning af det.












