Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Generatieve Adversariële Netwerken (GANs) | Theoretische Grondslagen
Generatieve AI

bookGeneratieve Adversariële Netwerken (GANs)

Generative Adversarial Networks (GANs) vormen een klasse van generatieve modellen die in 2014 zijn geïntroduceerd door Ian Goodfellow. Ze bestaan uit twee neurale netwerken — de Generator en de Discriminator — die gelijktijdig worden getraind binnen een speltheoretisch kader. De generator probeert data te produceren die lijkt op echte data, terwijl de discriminator probeert echte data van gegenereerde data te onderscheiden.

GANs leren datasamples te genereren uit ruis door het oplossen van een minimax-spel. Tijdens de training wordt de generator beter in het produceren van realistische data en de discriminator beter in het onderscheiden van echte en nepdata.

Architectuur van een GAN

Een basismodel van een GAN bestaat uit twee kerncomponenten:

1. Generator (G)

  • Ontvangt een willekeurige ruisvector zpz(z)z \sim p_z(z) als invoer;
  • Zet deze om via een neuraal netwerk naar een datasample G(z)G(z) die bedoeld is te lijken op data uit de werkelijke distributie.

2. Discriminator (D)

  • Ontvangt ofwel een echte gegevenssample xpx(x)x \sim p_x(x) of een gegenereerde sample G(z)G(z);
  • Geeft een scalair tussen 0 en 1 als output, waarmee de waarschijnlijkheid wordt geschat dat de input echt is.

Deze twee componenten worden gelijktijdig getraind. De generator streeft ernaar realistische samples te produceren om de discriminator te misleiden, terwijl de discriminator probeert echte en gegenereerde samples correct te onderscheiden.

Minimax-spel van GANs

De kern van GANs wordt gevormd door het minimax-spel, een concept uit de speltheorie. In deze opzet:

  • De generator GG en discriminator DD zijn concurrerende spelers;
  • DD streeft ernaar zijn vermogen te maximaliseren om echt van gegenereerde data te onderscheiden;
  • GG streeft ernaar het vermogen van DD om zijn nepdata te detecteren te minimaliseren.

Deze dynamiek definieert een nulsomspel, waarbij de winst van de ene speler het verlies van de andere is. De optimalisatie wordt gedefinieerd als:

minGmaxDV(D,G)=Expx[logD(x)]+Ezpz[log(1D(G(z)))]\underset{G}{\min} \, \underset{D}{\max} \, V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{x}}[\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_z}[\log(1 - D(G(\mathbf{z})))]

De generator probeert de discriminator te misleiden door samples G(z)G(z) te genereren die zo dicht mogelijk bij echte data liggen.

Verliesfuncties

Hoewel het oorspronkelijke GAN-doel een minimax-spel definieert, worden in de praktijk alternatieve verliesfuncties gebruikt om de training te stabiliseren.

  • Niet-verzadigende generatorverlies:
LG=Ezpz[logD(G(z))]L_G=-\mathbb{E}_{z \sim p_z}[\log{D(G(z))}]

Dit helpt de generator om sterke gradiënten te ontvangen, zelfs wanneer de discriminator goed presteert.

  • Discriminatorverlies:
LD=Expx[logD(x)]Ezpz[log(1D(G(z)))]L_D = -\mathbb{E}_{x \sim p_x}[\log{D(x)}] - \mathbb{E}_{z \sim p_z}[\log{(1-D(G(z)))}]

Deze verliezen stimuleren de generator om voorbeelden te produceren die de onzekerheid van de discriminator vergroten en de convergentie tijdens de training verbeteren.

Belangrijke varianten van GAN-architecturen

Er zijn verschillende typen GANs ontwikkeld om specifieke beperkingen aan te pakken of de prestaties te verbeteren:

Conditionele GAN (cGAN)

Conditionele GANs breiden het standaard GAN-raamwerk uit door extra informatie (meestal labels) toe te voegen aan zowel de generator als de discriminator. In plaats van alleen gegevens te genereren uit willekeurige ruis, ontvangt de generator zowel ruis zz als een conditie yy (bijvoorbeeld een klassenlabel). De discriminator ontvangt ook yy om te beoordelen of het voorbeeld realistisch is onder die conditie.

  • Toepassingen: klassen-geconditioneerde beeldgeneratie, beeld-naar-beeldvertaling, tekst-naar-beeldgeneratie.

Deep Convolutional GAN (DCGAN)

DCGANs vervangen de volledig verbonden lagen in de oorspronkelijke GANs door convolutionele en getransponeerde convolutionele lagen, waardoor ze effectiever zijn voor het genereren van afbeeldingen. Ze introduceren ook architecturale richtlijnen zoals het verwijderen van volledig verbonden lagen, het toepassen van batchnormalisatie en het gebruik van ReLU/LeakyReLU-activeringen.

  • Toepassingen: fotorealistische afbeeldingsgeneratie, leren van visuele representaties, ongecontroleerd kenmerkleren.

CycleGAN CycleGANs pakken het probleem van ongepaarde afbeelding-naar-afbeeldingvertaling aan. In tegenstelling tot andere modellen die gekoppelde datasets vereisen (bijvoorbeeld dezelfde foto in twee verschillende stijlen), kunnen CycleGANs mappings tussen twee domeinen leren zonder gekoppelde voorbeelden. Ze introduceren twee generators en twee discriminators, elk verantwoordelijk voor mapping in één richting (bijvoorbeeld foto's naar schilderijen en omgekeerd), en handhaven een cycle-consistency loss om te waarborgen dat vertaling van het ene domein naar het andere en terug het oorspronkelijke beeld oplevert. Dit verlies is essentieel voor het behouden van inhoud en structuur.

Cycle-Consistency Loss waarborgt:

GBA(GAB(x))x en GAB(GBA(y))yG_{BA}(G_{AB}(x)) \approx x\ \text{en}\ G_{AB}(G_{BA}(y))\approx y

waarbij:

  • GABG_{AB} afbeeldingen van domein A naar domein B omzet;
  • GBAG_{BA} omzet van domein B naar domein A.
  • xA,yBx \in A, y \in B.

Toepassingen: foto-naar-kunstwerkconversie, paard-naar-zebra-vertaling, stemconversie tussen sprekers.

StyleGAN

StyleGAN, ontwikkeld door NVIDIA, introduceert stijlgebaseerde controle in de generator. In plaats van een ruisvector direct aan de generator te voeren, wordt deze door een mappingnetwerk geleid om "stijlvectoren" te produceren die elke laag van de generator beïnvloeden. Dit maakt fijne controle mogelijk over visuele kenmerken zoals haarkleur, gezichtsuitdrukkingen of belichting.

Belangrijke innovaties:

  • Style mixing, maakt het combineren van meerdere latente codes mogelijk;
  • Adaptive Instance Normalization (AdaIN), stuurt feature maps in de generator aan;
  • Progressive growing, training start op lage resolutie en neemt toe in de tijd.

Toepassingen: ultra hoge-resolutie afbeeldingsgeneratie (bijv. gezichten), visuele attribuutcontrole, kunstgeneratie.

Vergelijking: GANs vs VAEs

GANs vormen een krachtige klasse van generatieve modellen die in staat zijn om zeer realistische data te produceren via een adversair trainingsproces. De kern bestaat uit een minimax-spel tussen twee netwerken, waarbij adversariële verliezen worden gebruikt om beide componenten iteratief te verbeteren. Een grondig begrip van hun architectuur, verliesfuncties—inclusief varianten zoals cGAN, DCGAN, CycleGAN en StyleGAN—en hun contrast met andere modellen zoals VAEs biedt professionals de noodzakelijke basis voor toepassingen in domeinen zoals beeldgeneratie, videosynthese, data-augmentatie en meer.

1. Welke van de volgende beschrijvingen geeft het beste de componenten van een basis-GAN-architectuur weer?

2. Wat is het doel van het minimax-spel in GANs?

3. Welke van de volgende uitspraken is waar over het verschil tussen GANs en VAEs?

question mark

Welke van de volgende beschrijvingen geeft het beste de componenten van een basis-GAN-architectuur weer?

Select the correct answer

question mark

Wat is het doel van het minimax-spel in GANs?

Select the correct answer

question mark

Welke van de volgende uitspraken is waar over het verschil tussen GANs en VAEs?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 7

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 4.76

bookGeneratieve Adversariële Netwerken (GANs)

Veeg om het menu te tonen

Generative Adversarial Networks (GANs) vormen een klasse van generatieve modellen die in 2014 zijn geïntroduceerd door Ian Goodfellow. Ze bestaan uit twee neurale netwerken — de Generator en de Discriminator — die gelijktijdig worden getraind binnen een speltheoretisch kader. De generator probeert data te produceren die lijkt op echte data, terwijl de discriminator probeert echte data van gegenereerde data te onderscheiden.

GANs leren datasamples te genereren uit ruis door het oplossen van een minimax-spel. Tijdens de training wordt de generator beter in het produceren van realistische data en de discriminator beter in het onderscheiden van echte en nepdata.

Architectuur van een GAN

Een basismodel van een GAN bestaat uit twee kerncomponenten:

1. Generator (G)

  • Ontvangt een willekeurige ruisvector zpz(z)z \sim p_z(z) als invoer;
  • Zet deze om via een neuraal netwerk naar een datasample G(z)G(z) die bedoeld is te lijken op data uit de werkelijke distributie.

2. Discriminator (D)

  • Ontvangt ofwel een echte gegevenssample xpx(x)x \sim p_x(x) of een gegenereerde sample G(z)G(z);
  • Geeft een scalair tussen 0 en 1 als output, waarmee de waarschijnlijkheid wordt geschat dat de input echt is.

Deze twee componenten worden gelijktijdig getraind. De generator streeft ernaar realistische samples te produceren om de discriminator te misleiden, terwijl de discriminator probeert echte en gegenereerde samples correct te onderscheiden.

Minimax-spel van GANs

De kern van GANs wordt gevormd door het minimax-spel, een concept uit de speltheorie. In deze opzet:

  • De generator GG en discriminator DD zijn concurrerende spelers;
  • DD streeft ernaar zijn vermogen te maximaliseren om echt van gegenereerde data te onderscheiden;
  • GG streeft ernaar het vermogen van DD om zijn nepdata te detecteren te minimaliseren.

Deze dynamiek definieert een nulsomspel, waarbij de winst van de ene speler het verlies van de andere is. De optimalisatie wordt gedefinieerd als:

minGmaxDV(D,G)=Expx[logD(x)]+Ezpz[log(1D(G(z)))]\underset{G}{\min} \, \underset{D}{\max} \, V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{x}}[\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_z}[\log(1 - D(G(\mathbf{z})))]

De generator probeert de discriminator te misleiden door samples G(z)G(z) te genereren die zo dicht mogelijk bij echte data liggen.

Verliesfuncties

Hoewel het oorspronkelijke GAN-doel een minimax-spel definieert, worden in de praktijk alternatieve verliesfuncties gebruikt om de training te stabiliseren.

  • Niet-verzadigende generatorverlies:
LG=Ezpz[logD(G(z))]L_G=-\mathbb{E}_{z \sim p_z}[\log{D(G(z))}]

Dit helpt de generator om sterke gradiënten te ontvangen, zelfs wanneer de discriminator goed presteert.

  • Discriminatorverlies:
LD=Expx[logD(x)]Ezpz[log(1D(G(z)))]L_D = -\mathbb{E}_{x \sim p_x}[\log{D(x)}] - \mathbb{E}_{z \sim p_z}[\log{(1-D(G(z)))}]

Deze verliezen stimuleren de generator om voorbeelden te produceren die de onzekerheid van de discriminator vergroten en de convergentie tijdens de training verbeteren.

Belangrijke varianten van GAN-architecturen

Er zijn verschillende typen GANs ontwikkeld om specifieke beperkingen aan te pakken of de prestaties te verbeteren:

Conditionele GAN (cGAN)

Conditionele GANs breiden het standaard GAN-raamwerk uit door extra informatie (meestal labels) toe te voegen aan zowel de generator als de discriminator. In plaats van alleen gegevens te genereren uit willekeurige ruis, ontvangt de generator zowel ruis zz als een conditie yy (bijvoorbeeld een klassenlabel). De discriminator ontvangt ook yy om te beoordelen of het voorbeeld realistisch is onder die conditie.

  • Toepassingen: klassen-geconditioneerde beeldgeneratie, beeld-naar-beeldvertaling, tekst-naar-beeldgeneratie.

Deep Convolutional GAN (DCGAN)

DCGANs vervangen de volledig verbonden lagen in de oorspronkelijke GANs door convolutionele en getransponeerde convolutionele lagen, waardoor ze effectiever zijn voor het genereren van afbeeldingen. Ze introduceren ook architecturale richtlijnen zoals het verwijderen van volledig verbonden lagen, het toepassen van batchnormalisatie en het gebruik van ReLU/LeakyReLU-activeringen.

  • Toepassingen: fotorealistische afbeeldingsgeneratie, leren van visuele representaties, ongecontroleerd kenmerkleren.

CycleGAN CycleGANs pakken het probleem van ongepaarde afbeelding-naar-afbeeldingvertaling aan. In tegenstelling tot andere modellen die gekoppelde datasets vereisen (bijvoorbeeld dezelfde foto in twee verschillende stijlen), kunnen CycleGANs mappings tussen twee domeinen leren zonder gekoppelde voorbeelden. Ze introduceren twee generators en twee discriminators, elk verantwoordelijk voor mapping in één richting (bijvoorbeeld foto's naar schilderijen en omgekeerd), en handhaven een cycle-consistency loss om te waarborgen dat vertaling van het ene domein naar het andere en terug het oorspronkelijke beeld oplevert. Dit verlies is essentieel voor het behouden van inhoud en structuur.

Cycle-Consistency Loss waarborgt:

GBA(GAB(x))x en GAB(GBA(y))yG_{BA}(G_{AB}(x)) \approx x\ \text{en}\ G_{AB}(G_{BA}(y))\approx y

waarbij:

  • GABG_{AB} afbeeldingen van domein A naar domein B omzet;
  • GBAG_{BA} omzet van domein B naar domein A.
  • xA,yBx \in A, y \in B.

Toepassingen: foto-naar-kunstwerkconversie, paard-naar-zebra-vertaling, stemconversie tussen sprekers.

StyleGAN

StyleGAN, ontwikkeld door NVIDIA, introduceert stijlgebaseerde controle in de generator. In plaats van een ruisvector direct aan de generator te voeren, wordt deze door een mappingnetwerk geleid om "stijlvectoren" te produceren die elke laag van de generator beïnvloeden. Dit maakt fijne controle mogelijk over visuele kenmerken zoals haarkleur, gezichtsuitdrukkingen of belichting.

Belangrijke innovaties:

  • Style mixing, maakt het combineren van meerdere latente codes mogelijk;
  • Adaptive Instance Normalization (AdaIN), stuurt feature maps in de generator aan;
  • Progressive growing, training start op lage resolutie en neemt toe in de tijd.

Toepassingen: ultra hoge-resolutie afbeeldingsgeneratie (bijv. gezichten), visuele attribuutcontrole, kunstgeneratie.

Vergelijking: GANs vs VAEs

GANs vormen een krachtige klasse van generatieve modellen die in staat zijn om zeer realistische data te produceren via een adversair trainingsproces. De kern bestaat uit een minimax-spel tussen twee netwerken, waarbij adversariële verliezen worden gebruikt om beide componenten iteratief te verbeteren. Een grondig begrip van hun architectuur, verliesfuncties—inclusief varianten zoals cGAN, DCGAN, CycleGAN en StyleGAN—en hun contrast met andere modellen zoals VAEs biedt professionals de noodzakelijke basis voor toepassingen in domeinen zoals beeldgeneratie, videosynthese, data-augmentatie en meer.

1. Welke van de volgende beschrijvingen geeft het beste de componenten van een basis-GAN-architectuur weer?

2. Wat is het doel van het minimax-spel in GANs?

3. Welke van de volgende uitspraken is waar over het verschil tussen GANs en VAEs?

question mark

Welke van de volgende beschrijvingen geeft het beste de componenten van een basis-GAN-architectuur weer?

Select the correct answer

question mark

Wat is het doel van het minimax-spel in GANs?

Select the correct answer

question mark

Welke van de volgende uitspraken is waar over het verschil tussen GANs en VAEs?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 7
some-alt