AI-basisprincipes
Wat is een Generatief Adversatief Netwerk (GAN)?
Generatieve Adversatieve Netwerken (GANs) zijn typen neurale netwerkarchitecturen die in staat zijn om nieuwe gegevens te genereren die overeenkomen met de geleerde patronen. GANs kunnen worden gebruikt om afbeeldingen van menselijke gezichten of andere objecten te genereren, om tekst-naar-afbeelding-vertaling uit te voeren, om één type afbeelding naar een ander om te zetten en om de resolutie van afbeeldingen te verbeteren (superresolutie) onder andere toepassingen. Omdat GANs volledig nieuwe gegevens kunnen genereren, staan ze aan de basis van veel baanbrekende AI-systemen, -toepassingen en -onderzoek. Maar hoe werken GANs precies? Laten we onderzoeken hoe GANs functioneren en kijken we naar enkele van hun primaire toepassingen.
Definiëren van Generatieve Modellen en GANs
Een GAN is een voorbeeld van een generatief model. De meeste AI-modellen kunnen worden onderverdeeld in twee categorieën: begeleide en onbegeleide modellen. Begeleide leermodellen worden meestal gebruikt om te onderscheiden tussen verschillende categorieën invoer, om te classificeren. In tegenstelling tot onbegeleide modellen, die meestal worden gebruikt om de verdeling van gegevens samen te vatten, vaak door een Gaussische verdeling van de gegevens te leren. Omdat ze de verdeling van een gegevensset leren, kunnen ze monsters trekken uit deze geleerde verdeling en nieuwe gegevens genereren.
Verse generatieve modellen hebben verschillende methoden om gegevens te genereren en waarschijnlijkheidsverdelingen te berekenen. Bijvoorbeeld, het Naive Bayes-model werkt door een waarschijnlijkheidsverdeling te berekenen voor de verschillende invoerkenmerken en de generatieve klasse. Wanneer het Naive Bayes-model een voorspelling doet, berekent het de meest waarschijnlijke klasse door de waarschijnlijkheid van de verschillende variabelen te nemen en ze samen te voegen. Andere niet-diepe leer-generatieve modellen zijn onder andere Gaussian Mixture Models en Latent Dirichlet Allocation (LDA). Diepe leer-generatieve modellen zijn onder andere Restricted Boltzmann Machines (RBMs), Variational Autoencoders (VAEs) en natuurlijk GANs.
Generatieve Adversatieve Netwerken werden voor het eerst voorgesteld door Ian Goodfellow in 2014, en ze werden verbeterd door Alec Redford en andere onderzoekers in 2015, wat leidde tot een gestandaardiseerde architectuur voor GANs. GANs bestaan eigenlijk uit twee verschillende netwerken die samen worden gevoegd. GANs bestaan uit twee helften: een generatiemodel en een discriminatiemodel, ook wel de generator en discriminator genoemd.
De GAN-Architectuur
Generatieve Adversatieve Netwerken zijn opgebouwd uit een generatiemodel en een discriminatiemodel die samen worden gevoegd. De taak van het generatiemodel is om nieuwe voorbeelden van gegevens te creëren op basis van de patronen die het model heeft geleerd uit de trainingsgegevens. De taak van het discriminatiemodel is om afbeeldingen (in de veronderstelling dat het wordt getraind op afbeeldingen) te analyseren en te bepalen of de afbeeldingen gegenereerd/nep zijn of echt.

De twee modellen worden tegen elkaar uitgespeeld, getraind in een speltheoretische stijl. Het doel van het generatiemodel is om afbeeldingen te produceren die zijn tegenstander – het discriminatiemodel – misleiden. Ondertussen is het doel van het discriminatiemodel om zijn tegenstander, het generatiemodel, te overwinnen en de nep-afbeeldingen te vangen die het generatiemodel produceert. Het feit dat de modellen tegen elkaar worden uitgespeeld, resulteert in een wapenwedloop waarin beide modellen worden verbeterd. Het discriminatiemodel krijgt feedback over welke afbeeldingen echt waren en welke afbeeldingen door het generatiemodel werden geproduceerd, terwijl het generatiemodel informatie krijgt over welke van zijn afbeeldingen door het discriminatiemodel als vals werden gemarkeerd. Beide modellen worden verbeterd tijdens de training, met als doel een generatiemodel te trainen dat nep-gegevens kan produceren die vrijwel niet te onderscheiden zijn van echte, echte gegevens.
Als een Gaussische verdeling van gegevens eenmaal is gemaakt tijdens de training, kan het generatiemodel worden gebruikt. Het generatiemodel wordt eerst gevoed met een willekeurige vector, die het transformeert op basis van de Gaussische verdeling. Met andere woorden, de vector zaait de generatie. Wanneer het model is getraind, zal de vectorruimte een gecomprimeerde versie zijn, of een weergave, van de Gaussische verdeling van de gegevens. De gecomprimeerde versie van de gegevensverdeling wordt de latentruimte of latentvariabelen genoemd. Later kan het GAN-model de latentruimte-weergave nemen en punten daaruit trekken, die aan het generatiemodel kunnen worden gegeven en gebruikt om nieuwe gegevens te genereren die sterk lijken op de trainingsgegevens.
Het discriminatiemodel wordt gevoed met voorbeelden uit het hele trainingsdomein, dat bestaat uit zowel echte als gegenereerde gegevensvoorbeelden. De echte voorbeelden worden opgenomen in de trainingsdataset, terwijl de nep-gegevens worden geproduceerd door het generatiemodel. Het proces van trainen van het discriminatiemodel is exact hetzelfde als de basis, binaire classificatiemodellentraining.
GAN-Trainingsproces
Laten we naar het hele trainingsproces voor een hypothetische afbeeldinggeneratie-taak kijken.
Om te beginnen, wordt de GAN getraind met echte, echte afbeeldingen als onderdeel van de trainingsdataset. Dit zet het discriminatiemodel op om gegenereerde afbeeldingen en echte afbeeldingen te onderscheiden. Het produceert ook de gegevensverdeling die het generatiemodel zal gebruiken om nieuwe gegevens te produceren.
Het generatiemodel neemt een vector van willekeurige numerieke gegevens en transformeert deze op basis van de Gaussische verdeling, waardoor een afbeelding wordt geretourneerd. Deze gegenereerde afbeelding, samen met enkele echte afbeeldingen uit de trainingsdataset, wordt gevoed in het discriminatiemodel. Het discriminatiemodel zal een waarschijnlijkheidsvoorspelling renderen over de aard van de afbeeldingen die het ontvangt, waardoor een waarde tussen 0 en 1 wordt geretourneerd, waarbij 1 meestal echte afbeeldingen en 0 een nep-afbeelding is.

Er is een dubbele feedbacklus in het spel, aangezien het grond-discriminatiemodel de grondwaarheid van de afbeeldingen wordt gevoed, terwijl het generatiemodel feedback krijgt over zijn prestaties van het discriminatiemodel.
De generatieve en discriminatieve modellen spelen een nulsomspel met elkaar. Een nulsomspel is een spel waarin de winst van de ene partij ten koste gaat van de andere partij (de som is nul). Wanneer het discriminatiemodel erin slaagt om succesvol te onderscheiden tussen echte en nep-voorbeelden, worden er geen wijzigingen aangebracht in de parameters van het discriminatiemodel. Echter, grote updates worden gemaakt aan de parameters van het model wanneer het er niet in slaagt om te onderscheiden tussen echte en nep-afbeeldingen. Het omgekeerde is waar voor het generatiemodel, het wordt bestraft (en de parameters worden bijgewerkt) wanneer het er niet in slaagt om de discriminatieve modellen te misleiden, maar anders worden de parameters ongewijzigd gelaten (of wordt het beloond).
Ideaal gesproken kan het generatiemodel zijn prestaties verbeteren tot het punt waarop het discriminatiemodel niet kan onderscheiden tussen de nep- en echte afbeeldingen. Dit betekent dat het discriminatiemodel altijd waarschijnlijkheden van 50% voor echte en nep-afbeeldingen zal renderen, wat betekent dat de gegenereerde afbeeldingen niet te onderscheiden zouden moeten zijn van de echte afbeeldingen. In de praktijk zullen GANs deze grens meestal niet bereiken. Echter, het generatiemodel hoeft geen perfecte afbeeldingen te produceren om nog steeds nuttig te zijn voor de vele taken waarvoor GANs worden gebruikt.
GAN-Toepassingen
GANs hebben een aantal verschillende toepassingen, waarvan de meeste draaien om het genereren van afbeeldingen en onderdelen van afbeeldingen. GANs worden vaak gebruikt in taken waarbij de vereiste afbeeldingsgegevens ontbreken of beperkt zijn, als een methode om de vereiste gegevens te genereren. Laten we enkele van de gebruikelijke use-cases voor GANs onderzoeken.
Nieuwe Voorbeelden Genereren voor Datasets
GANs kunnen worden gebruikt om nieuwe voorbeelden te genereren voor eenvoudige afbeeldingsdatasets. Als u slechts een handvol trainingsvoorbeelden heeft en er meer nodig heeft, kunnen GANs worden gebruikt om nieuwe trainingsgegevens te genereren voor een afbeeldingsclassificator, waardoor nieuwe trainingsvoorbeelden op verschillende oriëntaties en hoeken kunnen worden gegenereerd.
Unieke Menselijke Gezichten Genereren

De vrouw in deze foto bestaat niet. De afbeelding werd gegenereerd door StyleGAN. Foto: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)
Wanneer voldoende getraind, kunnen GANs worden gebruikt om extreem realistische afbeeldingen van menselijke gezichten te genereren. Deze gegenereerde afbeeldingen kunnen worden gebruikt om gezichtsherkenningssystemen te helpen trainen.
Afbeelding-naar-Afbeelding-Vertaling
GANs excels in afbeelding-vertaling. GANs kunnen worden gebruikt om zwart-wit-afbeeldingen te kleuren, schetsen of tekeningen om te zetten in fotografische afbeeldingen, of om afbeeldingen van dag naar nacht om te zetten.
Tekst-naar-Afbeelding-Vertaling
Tekst-naar-afbeelding-vertaling is mogelijk door het gebruik van GANs. Wanneer voorzien van tekst die een afbeelding beschrijft en de bijbehorende afbeelding, kan een GAN worden getraind om een nieuwe afbeelding te creëren wanneer een beschrijving van de gewenste afbeelding wordt gegeven.
Afbeeldingen Bewerken en Repareren
GANs kunnen worden gebruikt om bestaande foto’s te bewerken. GANs kunnen elementen zoals regen of sneeuw verwijderen uit een afbeelding, maar ze kunnen ook worden gebruikt om oude, beschadigde afbeeldingen of beschadigde afbeeldingen te repareren.
Super Resolutie
Superresolutie is het proces van het nemen van een lage-resolutie-afbeelding en het toevoegen van meer pixels aan de afbeelding, waardoor de resolutie van die afbeelding wordt verbeterd. GANs kunnen worden getraind om een afbeelding te nemen en een hogere resolutie-versie van die afbeelding te genereren.
GANs kunnen ook worden gebruikt om oude, beschadigde afbeeldingen of beschadigde afbeeldingen te repareren. Superresolutie is het proces van het nemen van een lage-resolutie-afbeelding en het toevoegen van meer pixels aan de afbeelding, waardoor de resolutie van die afbeelding wordt verbeterd. GANs kunnen worden getraind om een afbeelding te nemen en een hogere resolutie-versie van die afbeelding te genereren.












