Hop til indhold
Kunstig intelligens og data

GAN (Generative Adversarial Network)

Generative Adversarial Network

GAN, eller Generative Adversarial Network, er en arkitektur inden for maskinlæring, hvor to neurale netværk trænes op mod hinanden for at generere nyt, kunstigt data der ligner et givet træningssæt. Det ene netværk, generatoren, forsøger at skabe eksempler der virker ægte, mens det andet, diskriminatoren, forsøger at afgøre om et givet eksempel stammer fra det virkelige træningssæt eller er skabt af generatoren. Gennem denne vekselvirkning bliver generatorens output gradvist mere overbevisende, indtil diskriminatoren har svært ved at skelne falsk fra ægte.

Et konkret eksempel er en GAN der trænes på tusindvis af fotos af ansigter: generatoren lærer efterhånden at tegne ansigter der ikke tilhører nogen virkelig person, men som alligevel virker troværdige. Som neuralt netværk er et GAN altså ikke ét enkelt system, men to netværk der arbejder mod hinanden i en form for konkurrence, hvor begge parter bliver dygtigere undervejs. Selve idéen blev beskrevet af forskeren Ian Goodfellow og kolleger, og den har siden dannet grundlag for en række billedgenererende værktøjer, før nyere diffusionsmodeller overtog store dele af feltet.

Sådan spiller generator og diskriminator sammen

Generatoren tager typisk udgangspunkt i tilfældig støj og omdanner den til et forslag til data, for eksempel et billede. Diskriminatoren modtager på skift rigtige eksempler fra træningssættet og generatorens syntetiske forsøg, og den beregner en sandsynlighed for, om et givet eksempel er ægte. Diskriminatorens vurdering bruges derefter til at justere generatoren, så den i næste omgang producerer output der ligner træningsdata endnu mere.

De to netværk trænes skiftevis: diskriminatoren bliver bedre til at opdage forskellen mellem ægte og syntetisk data, mens generatoren samtidig bliver bedre til at narre diskriminatoren. I princippet fortsætter denne vekselvirkning, indtil systemet nærmer sig en form for ligevægt, hvor diskriminatoren ikke længere kan skelne generatorens output fra rigtige data med nogen sikkerhed. Denne opbygning minder på et overordnet plan om Turing Test, hvor en dommer skal afgøre om et svar stammer fra et menneske eller en maskine — i en GAN er det bare diskriminatoren, der spiller dommerens rolle under selve træningen.

Forskellige typer af GAN-arkitekturer

Siden den grundlæggende model er der udviklet flere varianter, der løser forskellige problemer. En conditional GAN får ekstra information, som fx en klassebetegnelse, så output kan styres i en bestemt retning frem for at være helt tilfældigt. Deep convolutional GAN-varianter bruger konvolutionelle lag, der er velegnede til billeddata, og kan bidrage til mere stabil træning. Super-resolution GAN-varianter er specialiserede i at opskalere billeder i lav opløsning til et mere detaljeret resultat, mens andre arkitekturer, som CycleGAN, kan oversætte billeder fra én visuel stil til en anden uden brug af parvist matchede eksempler.

GAN og diffusionsmodeller — samme mål, forskellig metode

Diffusionsmodeller er en nyere tilgang til billedgenerering, som mange af nutidens tekst-til-billede-værktøjer bygger på. I stedet for at lade to netværk konkurrere, lærer en diffusionsmodel gradvist at fjerne støj fra et billede trin for trin, indtil et sammenhængende resultat opstår. Modeller som DALL-E og Midjourney anvender i deres nyere versioner netop denne diffusionstilgang snarere end den klassiske GAN-opbygning.

Forskellen ligger primært i træningsprocessen og stabiliteten. GAN-træning kan være følsom, fordi generator og diskriminator hele tiden skal holdes nogenlunde lige stærke — bliver den ene for dygtig for hurtigt, kan den anden holde op med at lære noget brugbart. Diffusionsmodeller undgår denne form for konkurrence mellem to netværk og kan derfor ofte trænes mere forudsigeligt, hvilket er en del af forklaringen på, at de har vundet frem inden for billedgenerering, mens GAN-arkitekturen stadig bruges i andre sammenhænge.

Anvendelser og kendte begrænsninger

Ud over billedgenerering bruges GAN til dataaugmentering, hvor syntetiske eksempler supplerer et træningssæt, til at opskalere billeder i lav opløsning og til at udfylde manglende information i data, for eksempel i forbindelse med geologiske eller medicinske scanninger. En kendt begrænsning er såkaldt mode collapse, hvor generatoren finder frem til nogle få typer output, der ofte narrer diskriminatoren, og derfor holder op med at udforske den fulde variation i træningsdata. Det gør GAN-modeller krævende at træne stabilt, og resultater bør altid vurderes kritisk, uanset hvor overbevisende de ser ud ved første øjekast.

Eksempel
En generator kan trænes til at tegne ansigter ud fra tilfældig støj, mens diskriminatoren løbende vurderer om resultatet ligner et ægte fotografi eller stadig virker kunstigt.
Ofte stillede spørgsmål
Hvad står GAN for?
GAN står for Generative Adversarial Network, hvilket kan oversættes til et generativt, modstridende netværk bestående af to konkurrerende neurale netværk.
Hvem stod bag den oprindelige GAN-arkitektur?
Arkitekturen blev oprindeligt beskrevet af forskeren Ian Goodfellow og hans kolleger, og idéen har siden dannet grundlag for en lang række videreudviklede GAN-varianter.
Hvad er forskellen på generatoren og diskriminatoren i en GAN?
Generatoren forsøger at skabe nyt, syntetisk data der ligner træningssættet, mens diskriminatoren forsøger at afgøre om et givet eksempel er ægte eller skabt af generatoren.
Er GAN og diffusionsmodeller det samme?
Nej. En GAN trænes gennem konkurrence mellem to netværk, mens en diffusionsmodel gradvist lærer at fjerne støj fra data trin for trin — mange nyere billedværktøjer bruger i dag diffusion frem for GAN.
Hvad betyder mode collapse i en GAN?
Mode collapse er et kendt problem, hvor generatoren kun lærer at producere nogle få typer output, fordi de ofte narrer diskriminatoren, i stedet for at afspejle hele variationen i træningsdataen.
Vil du se hvordan et af de mest kendte AI-billedværktøjer fungerer i praksis?
DALL-E →