Last Bijgewerkt op 19 juli 2019
Generative Adversarial Networks, of kortweg GANs, zijn een benadering van generatieve modellering met behulp van deep learning-methoden, zoals convolutionele neurale netwerken.
Generatieve modellering is een niet-gesuperviseerde leertaak in machinaal leren waarbij het gaat om het automatisch ontdekken en leren van regelmatigheden of patronen in inputgegevens op een zodanige manier dat het model kan worden gebruikt om nieuwe voorbeelden te genereren of uit te voeren die plausibel uit de oorspronkelijke dataset hadden kunnen worden getrokken.
GAN’s zijn een slimme manier om een generatief model te trainen door het probleem op te vatten als een gesuperviseerd leerprobleem met twee submodellen: het generatormodel dat we trainen om nieuwe voorbeelden te genereren, en het discriminatormodel dat voorbeelden probeert te classificeren als echt (uit het domein) of nep (gegenereerd). De twee modellen worden samen getraind in een zero-sum game, adversarial, totdat het discriminatormodel ongeveer de helft van de tijd voor de gek wordt gehouden, wat betekent dat het generatormodel plausibele voorbeelden genereert.
GAN’s zijn een opwindend en snel veranderend veld, dat de belofte van generatieve modellen waarmaakt door hun vermogen om realistische voorbeelden te genereren in een reeks probleemdomeinen, met name in beeld-naar-beeld vertaaltaken zoals het vertalen van foto’s van zomer naar winter of van dag naar nacht, en in het genereren van fotorealistische foto’s van objecten, scènes en mensen waarvan zelfs mensen niet kunnen zeggen dat ze nep zijn.
In dit artikel wordt een inleiding gegeven op Generative Adversarial Networks, ofwel GAN’s.
Na het lezen van dit artikel weet u:
- Inhoud van GAN’s, waaronder supervised vs. unsupervised learning en discriminative vs. generative modeling.
- GANs zijn een architectuur voor het automatisch trainen van een generatief model door het unsupervised probleem als supervised te behandelen en zowel een generatief als een discriminatief model te gebruiken.
- GANs bieden een pad naar verfijnde domeinspecifieke data augmentatie en een oplossing voor problemen die een generatieve oplossing vereisen, zoals beeld-naar-beeld vertaling.
Kick-start je project met mijn nieuwe boek Generative Adversarial Networks with Python, inclusief stap-voor-stap tutorials en de Python broncodebestanden voor alle voorbeelden.
Laten we beginnen.
Een voorzichtige inleiding tot generatieve adversaire netwerken (GANs)
Foto door Barney Moss, enige rechten voorbehouden.
- Overzicht
- Wat zijn Generatieve Modellen?
- Supervised vs. Unsupervised Learning
- Wil je GANs van de grond af aan ontwikkelen?
- Discriminatief vs. Generatieve modellering
- Voorbeelden van generatieve modellen
- Wat zijn Generative Adversarial Networks?
- Het generatormodel
- Het discriminatormodel
- GAN’s als een spel voor twee spelers
- GAN’s en Convolutionele Neurale Netwerken
- Conditionele GAN’s
- Waarom Generatieve Adversariële Netwerken?
- Verder lezen
- Posts
- Books
- Papers
- Artikels
- Samenvatting
- Develop Generative Adversarial Networks Today!
- Develop Your GAN Models in Minutes
- Finally Bring GAN Models to your Vision Projects
Overzicht
Deze tutorial is verdeeld in drie delen; deze zijn:
- Wat zijn Generatieve Modellen?
- Wat zijn Generatieve Adversariële Netwerken?
- Waarom Generatieve Adversariële Netwerken?
Wat zijn Generatieve Modellen?
In dit deel bespreken we het idee van generatieve modellen, waarbij we de supervised vs. unsupervised learning paradigma’s en discriminatieve vs. generatieve modellering overlopen.
Supervised vs. Unsupervised Learning
Bij een typisch machine learning-probleem wordt een model gebruikt om een voorspelling te doen, bijv. voorspellend modelleren.
Dit vereist een trainingsdataset die wordt gebruikt om een model te trainen, bestaande uit meerdere voorbeelden, samples genoemd, elk met inputvariabelen (X) en outputklasse-labels (y). Een model wordt getraind door voorbeelden van inputs te tonen, het outputs te laten voorspellen, en het model te corrigeren om de outputs meer op de verwachte outputs te laten lijken.
In de voorspellende of gesuperviseerde leerbenadering is het doel een mapping te leren van inputs x naar outputs y, gegeven een gelabelde set input-outputparen …
– Page 2, Machine Learning: A Probabilistic Perspective, 2012.
Deze correctie van het model wordt over het algemeen aangeduid als een supervised vorm van leren, of supervised learning.
Voorbeeld van leren onder toezicht
Voorbeelden van problemen met leren onder toezicht zijn classificatie en regressie, en voorbeelden van algoritmen voor leren onder toezicht zijn logistische regressie en random forest.
Er is een ander paradigma van leren waarbij het model alleen de inputvariabelen (X) krijgt en het probleem geen outputvariabelen (y) heeft.
Een model wordt geconstrueerd door de patronen in de inputgegevens te extraheren of samen te vatten. Er vindt geen correctie van het model plaats, aangezien het model niets voorspelt.
Het tweede hoofdtype van machinaal leren is de beschrijvende of ongesuperviseerde leeraanpak. Hierbij krijgen we alleen input, en is het doel “interessante patronen” in de gegevens te vinden. Dit is een veel minder goed gedefinieerd probleem, omdat ons niet wordt verteld naar welke patronen we moeten zoeken, en er geen duidelijke foutmetriek is om te gebruiken (in tegenstelling tot supervised learning, waarbij we onze voorspelling van y voor een gegeven x kunnen vergelijken met de waargenomen waarde).
– Page 2, Machine Learning: A Probabilistic Perspective, 2012.
Dit gebrek aan correctie wordt over het algemeen een niet-supervised vorm van leren genoemd, oftewel leren zonder toezicht.
Voorbeeld van leren zonder toezicht
Voorbeelden van leerproblemen zonder toezicht zijn onder meer clustering en generatieve modellering, en voorbeelden van algoritmen voor leren zonder toezicht zijn K-means en Generative Adversarial Networks.
Wil je GANs van de grond af aan ontwikkelen?
Doe nu mee aan mijn gratis 7-daagse spoedcursus per e-mail (met voorbeeldcode).
Klik op aanmelden en ontvang ook een gratis PDF Ebook versie van de cursus.
Download Uw GRATIS Mini-Cursus
Discriminatief vs. Generatieve modellering
In supervised learning, kunnen we geïnteresseerd zijn in het ontwikkelen van een model om een klasse label te voorspellen gegeven een voorbeeld van input variabelen.
Deze voorspellende modelleringstaak wordt classificatie genoemd.
Classificatie wordt traditioneel ook wel aangeduid als discriminatieve modellering.
… we gebruiken de trainingsgegevens om een discriminerende functie f(x) te vinden die elke x direct op een klasse-etiket plaatst, waardoor de inferentie- en beslissingsfasen in één enkel leerprobleem worden gecombineerd.
— Page 44, Pattern Recognition and Machine Learning, 2006.
This is because a model must discriminate examples of input variables across classes; it must choose or make a decision as to what class a given example belongs.
Example of Discriminative Modeling
Alternately, unsupervised models that summarize the distribution of input variables may be able to be used to create or generate new examples in the input distribution.
As such, these types of models are referred to as generative models.
Example of Generative Modeling
For example, a single variable may have a known data distribution, such as a Gaussian distribution, or bell shape. Een generatief model kan in staat zijn deze gegevensverdeling voldoende samen te vatten, en kan vervolgens worden gebruikt om nieuwe variabelen te genereren die op aannemelijke wijze in de verdeling van de ingangsvariabele passen.
Benaderingen die expliciet of impliciet zowel de verdeling van de inputs als die van de outputs modelleren, staan bekend als generatieve modellen, omdat het door daaruit te bemonsteren mogelijk is synthetische datapunten in de inputruimte te genereren.
– Bladzijde 43, Pattern Recognition and Machine Learning, 2006.
In feite kan een echt goed generatief model in staat zijn om nieuwe voorbeelden te genereren die niet alleen plausibel zijn, maar ook niet te onderscheiden van echte voorbeelden uit het probleemdomein.
Voorbeelden van generatieve modellen
Naive Bayes is een voorbeeld van een generatief model dat vaker wordt gebruikt als een discriminerend model.
Naive Bayes werkt bijvoorbeeld door de kansverdeling van elke ingangsvariabele en de uitgangsklasse samen te vatten. Wanneer een voorspelling wordt gedaan, wordt de waarschijnlijkheid voor elke mogelijke uitkomst berekend voor elke variabele, worden de onafhankelijke waarschijnlijkheden gecombineerd, en wordt de meest waarschijnlijke uitkomst voorspeld. In omgekeerde volgorde kunnen de waarschijnlijkheidsverdelingen voor elke variabele worden bemonsterd om nieuwe plausibele (onafhankelijke) kenmerkwaarden te genereren.
Andere voorbeelden van generatieve modellen zijn Latent Dirichlet Allocation, ofwel LDA, en het Gaussian Mixture Model, ofwel GMM.
Diepe leermethoden kunnen worden gebruikt als generatieve modellen. Twee populaire voorbeelden zijn de Restricted Boltzmann Machine, of RBM, en het Deep Belief Network, of DBN.
Twee moderne voorbeelden van deep learning generatieve modelleringsalgoritmen zijn de Variational Autoencoder, of VAE, en het Generative Adversarial Network, of GAN.
Wat zijn Generative Adversarial Networks?
Generative Adversarial Networks, of GAN’s, zijn een deep-learning-gebaseerd generatief model.
Meer in het algemeen zijn GAN’s een modelarchitectuur voor het trainen van een generatief model, en het is het meest gebruikelijk om deep learning-modellen in deze architectuur te gebruiken.
De GAN-architectuur werd voor het eerst beschreven in het paper uit 2014 van Ian Goodfellow, et al. getiteld “Generative Adversarial Networks.”
Een gestandaardiseerde aanpak genaamd Deep Convolutional Generative Adversarial Networks, of DCGAN, die tot stabielere modellen leidde, werd later geformaliseerd door Alec Radford, et al. in de paper uit 2015 getiteld “Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks”.
De meeste GAN’s zijn tegenwoordig op zijn minst losjes gebaseerd op de DCGAN-architectuur …
– NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.
De GAN-modelarchitectuur omvat twee submodellen: een generatormodel voor het genereren van nieuwe voorbeelden en een discriminatormodel voor het classificeren of gegenereerde voorbeelden echt zijn, uit het domein, of nep, gegenereerd door het generatormodel.
- Generator. Model dat wordt gebruikt om nieuwe plausibele voorbeelden uit het probleemdomein te genereren.
- Discriminator. Model dat wordt gebruikt om voorbeelden te classificeren als echt (uit het domein) of nep (gegenereerd).
Generative adversarial networks zijn gebaseerd op een speltheoretisch scenario waarin het generatienetwerk het moet opnemen tegen een tegenstander. Het generatienetwerk produceert rechtstreeks monsters. Zijn tegenstander, het discriminator-netwerk, probeert onderscheid te maken tussen monsters getrokken uit de trainingsdata en monsters getrokken uit de generator.
– Pagina 699, Deep Learning, 2016.
Het generatormodel
Het generatormodel neemt een willekeurige vector met een vaste lengte als invoer en genereert een monster in het domein.
De vector wordt willekeurig getrokken uit een Gaussiaanse verdeling, en de vector wordt gebruikt om het generatieve proces te zaaien. Na de training zullen punten in deze multidimensionale vectorruimte overeenkomen met punten in het probleemdomein, en zo een gecomprimeerde representatie van de gegevensverdeling vormen.
Deze vectorruimte wordt een latente ruimte genoemd, of een vectorruimte die bestaat uit latente variabelen. Latente variabelen, of verborgen variabelen, zijn die variabelen die belangrijk zijn voor een domein, maar niet direct waarneembaar zijn.
Een latente variabele is een willekeurige variabele die we niet direct kunnen waarnemen.
– Page 67, Deep Learning, 2016.
We verwijzen vaak naar latente variabelen, of een latente ruimte, als een projectie of compressie van een gegevensdistributie. Dat wil zeggen, een latente ruimte biedt een compressie of concepten op hoog niveau van de waargenomen ruwe gegevens, zoals de invoergegevensverdeling. In het geval van GAN’s geeft het generatormodel betekenis aan punten in een gekozen latente ruimte, zodat nieuwe punten uit de latente ruimte als input aan het generatormodel kunnen worden verstrekt en kunnen worden gebruikt om nieuwe en andere outputvoorbeelden te genereren.
Machine-learning-modellen kunnen de statistische latente ruimte van beelden, muziek en verhalen leren, en zij kunnen vervolgens uit deze ruimte steekproeven nemen en nieuwe kunstwerken creëren met kenmerken die vergelijkbaar zijn met die welke het model in zijn trainingsgegevens heeft gezien.
– Pagina 270, Deep Learning with Python, 2017.
Na de training wordt het generatormodel bewaard en gebruikt om nieuwe samples te genereren.
Voorbeeld van het GAN-generatormodel
Het discriminatormodel
Het discriminatormodel neemt een voorbeeld uit het domein als invoer (echt of gegenereerd) en voorspelt een binair klassenlabel van echt of nep (gegenereerd).
Het echte voorbeeld komt uit de trainingsdataset. De gegenereerde voorbeelden worden uitgevoerd door het generatormodel.
De discriminator is een normaal (en goed begrepen) classificatiemodel.
Na het trainingsproces wordt het discriminatormodel weggegooid omdat we geïnteresseerd zijn in de generator.
Soms kan de generator worden hergebruikt omdat hij heeft geleerd om op effectieve wijze kenmerken te extraheren uit voorbeelden in het probleemdomein. Sommige of alle eigenschappen-extractielagen kunnen worden gebruikt in transfer-learning-toepassingen met dezelfde of soortgelijke invoergegevens.
Wij stellen voor dat een manier om goede beeldrepresentaties op te bouwen is door Generatieve Adversariale Netwerken (GAN’s) te trainen, en later delen van de generator- en discriminatornetwerken te hergebruiken als feature-extractors voor taken onder supervisie
– Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2015.
Voorbeeld van het GAN Discriminator Model
GAN’s als een spel voor twee spelers
Generatieve modellering is een probleem van leren zonder toezicht, zoals we in het vorige hoofdstuk hebben besproken, hoewel een slimme eigenschap van de GAN-architectuur is dat de training van het generatieve model wordt opgevat als een probleem van gesuperviseerd leren.
De twee modellen, de generator en de discriminator, worden samen getraind. De generator genereert een partij monsters, en deze, samen met echte voorbeelden uit het domein, worden aan de discriminator aangeboden en als echt of vals geclassificeerd.
De discriminator wordt vervolgens bijgewerkt om in de volgende ronde beter onderscheid te kunnen maken tussen echte en valse monsters, en wat belangrijk is, de generator wordt bijgewerkt op basis van hoe goed, of niet, de gegenereerde monsters de discriminator voor de gek hebben gehouden.
We kunnen de generator zien als een valsemunter, die vals geld probeert te maken, en de discriminator als de politie, die legitiem geld probeert toe te staan en vals geld probeert te vangen. Om in dit spel te slagen, moet de vervalser leren om geld te maken dat niet van echt te onderscheiden is, en moet het generatormenetwerk leren om monsters te maken die uit dezelfde verdeling komen als de trainingsdata.
– NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.
Op deze manier concurreren de twee modellen tegen elkaar, zijn ze adversarial in de speltheoretische zin, en spelen ze een zero-sum game.
Omdat het GAN-raamwerk op natuurlijke wijze kan worden geanalyseerd met de hulpmiddelen van de speltheorie, noemen we GAN’s “adversarial”.
– NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.
In dit geval betekent zero-sum dat wanneer de discriminator met succes echte en nepmonsters identificeert, hij wordt beloond of er geen verandering in de modelparameters nodig is, terwijl de generator wordt gestraft met grote updates van de modelparameters.
Atern, als de generator de discriminator voor de gek houdt, wordt hij beloond, of hoeft hij de modelparameters niet te wijzigen, maar de discriminator wordt gestraft en zijn modelparameters worden bijgewerkt.
Bij een grens genereert de generator elke keer perfecte replica’s van het ingangsdomein, en de discriminator kan het verschil niet zien en voorspelt “onzeker” (bijv. 50% voor echt en nep) in elk geval. Dit is slechts een voorbeeld van een geïdealiseerd geval; we hoeven niet zover te gaan om tot een bruikbaar generatormodel te komen.
Voorbeeld van de Generative Adversarial Network Model Architecture
stuurt de discriminator aan om te proberen monsters correct te classificeren als echt of nep. Tegelijkertijd probeert de generator de classificator voor de gek te houden door te geloven dat de monsters echt zijn. Bij convergentie zijn de monsters van de generator niet meer te onderscheiden van echte data, en de discriminator geeft overal 1/2 uit. De discriminator kan dan worden weggegooid.
– Pagina 700, Deep Learning, 2016.
GAN’s en Convolutionele Neurale Netwerken
GAN’s werken doorgaans met beeldgegevens en gebruiken Convolutionele Neurale Netwerken, of CNN’s, als generator en discriminatormodellen.
Dit komt zowel doordat de eerste beschrijving van de techniek op het gebied van computervisie plaatsvond en CNN’s en beeldgegevens gebruikte, als door de opmerkelijke vooruitgang die de laatste jaren is geboekt bij het gebruik van CNN’s in het algemeen om state-of-the-art resultaten te bereiken bij een reeks computervisietaken zoals objectdetectie en gezichtsherkenning.
Het modelleren van beeldgegevens betekent dat de latente ruimte, de invoer voor de generator, een gecomprimeerde representatie biedt van de reeks afbeeldingen of foto’s die zijn gebruikt om het model te trainen. Het betekent ook dat de generator nieuwe beelden of foto’s genereert, die een output opleveren die gemakkelijk kan worden bekeken en beoordeeld door ontwikkelaars of gebruikers van het model.
Het is misschien vooral dit feit, de mogelijkheid om de kwaliteit van de gegenereerde output visueel te beoordelen, dat zowel heeft geleid tot de focus van computervisietoepassingen met CNN’s als tot de enorme sprongen in de mogelijkheden van GAN’s in vergelijking met andere generatieve modellen, al dan niet gebaseerd op deep learning.
Conditionele GAN’s
Een belangrijke uitbreiding van de GAN is in hun gebruik voor het conditioneel genereren van een output.
Het generatieve model kan worden getraind om nieuwe voorbeelden uit het inputdomein te genereren, waarbij de input, de willekeurige vector uit de latente ruimte, wordt voorzien van (geconditioneerd door) een of andere extra input.
De extra input kan een klassewaarde zijn, zoals mannelijk of vrouwelijk in het geval van het genereren van foto’s van mensen, of een cijfer, in het geval van het genereren van afbeeldingen van handgeschreven cijfers.
Generative adversarial nets kunnen worden uitgebreid tot een conditioneel model als zowel de generator als de discriminator worden geconditioneerd op extra informatie y. y kan elke vorm van hulpinformatie zijn, zoals klassenlabels of gegevens van andere modaliteiten. We kunnen de conditionering uitvoeren door y zowel aan de discriminator als aan de generator als extra invoerlaag toe te voeren.
– Conditional Generative Adversarial Nets, 2014.
De discriminator is ook geconditioneerd, dat wil zeggen dat hij zowel een invoerbeeld krijgt dat echt of nep is, als de extra invoer. In het geval van een classificatielabel type geconditioneerde input, zou de discriminator dan verwachten dat de input van die klasse zou zijn, op zijn beurt de generator leren om voorbeelden van die klasse te genereren om de discriminator voor de gek te houden.
Op deze manier kan een conditionele GAN worden gebruikt om voorbeelden uit een domein van een bepaald type te genereren.
Een stap verder genomen, kunnen de GAN-modellen worden geconditioneerd op een voorbeeld uit het domein, zoals een afbeelding. Dit maakt toepassingen van GANs mogelijk zoals tekst-naar-beeld vertaling, of beeld-naar-beeld vertaling. Dit maakt enkele van de meer indrukwekkende toepassingen van GANs mogelijk, zoals stijloverdracht, fotokleuring, het transformeren van foto’s van zomer naar winter of van dag naar nacht, enzovoort.
In het geval van voorwaardelijke GANs voor beeld-naar-beeld vertaling, zoals het transformeren van dag naar nacht, wordt de discriminator voorzien van voorbeelden van echte en gegenereerde nachtfoto’s alsmede (geconditioneerd op) echte dagfoto’s als input. De generator krijgt een willekeurige vector uit de latente ruimte en (geconditioneerd op) echte dagfoto’s als invoer.
Voorbeeld van een Conditioneel Generatief Adversarieel Netwerk Model Architectuur
Waarom Generatieve Adversariële Netwerken?
Een van de vele grote vorderingen bij het gebruik van deep learning-methoden in domeinen zoals computervisie is een techniek die data augmentation wordt genoemd.
Data augmentation resulteert in beter presterende modellen, die zowel de modelvaardigheid vergroten als een regulariserend effect bieden, waardoor de generalisatiefout afneemt. Het werkt door het creëren van nieuwe, kunstmatige maar plausibele voorbeelden van het probleemdomein waarop het model wordt getraind.
De technieken zijn primitief in het geval van beeldgegevens, waarbij gewassen, geflipt, gezoomd en andere eenvoudige transformaties van bestaande beelden in de trainingsdataset worden gebruikt.
Succesvolle generatieve modellering biedt een alternatieve en mogelijk meer domeinspecifieke benadering voor data augmentatie. In feite is data augmentation een vereenvoudigde versie van generatieve modellering, hoewel het zelden op deze manier wordt beschreven.
… het vergroten van de steekproef met latente (niet-waargenomen) gegevens. Dit wordt data augmentation genoemd. In andere problemen zijn de latente gegevens feitelijke gegevens die hadden moeten worden waargenomen, maar ontbreken.
– Pagina 276, The Elements of Statistical Learning, 2016.
In complexe domeinen of domeinen met een beperkte hoeveelheid gegevens, biedt generatieve modellering een pad naar meer training voor modellering. GANs hebben veel succes gezien in deze use case in domeinen zoals deep reinforcement learning.
Er zijn veel onderzoeksredenen waarom GANs interessant en belangrijk zijn, en verdere studie vereisen. Ian Goodfellow schetst een aantal daarvan in zijn 2016 conference keynote en bijbehorend technisch rapport getiteld “NIPS 2016 Tutorial: Generative Adversarial Networks.”
Onder deze redenen benadrukt hij het succesvolle vermogen van GANs om hoog-dimensionale gegevens te modelleren, ontbrekende gegevens te verwerken, en het vermogen van GANs om multimodale outputs of meerdere plausibele antwoorden te leveren.
Misschien wel de meest overtuigende toepassing van GANs is in conditionele GANs voor taken die het genereren van nieuwe voorbeelden vereisen. Hier geeft Goodfellow drie belangrijke voorbeelden:
- Image Super-Resolution. De mogelijkheid om hoge-resolutie versies van input beelden te genereren.
- Het creëren van kunst. De mogelijkheid om nieuwe en artistieke beelden, schetsen, schilderijen, en nog veel meer.
- Beeld-naar-beeld vertaling. De mogelijkheid om foto’s te vertalen over verschillende domeinen, zoals dag naar nacht, zomer naar winter, en meer.
Misschien wel de meest dwingende reden dat GANs op grote schaal worden bestudeerd, ontwikkeld en gebruikt is vanwege hun succes. GAN’s zijn in staat gebleken foto’s te genereren die zo realistisch zijn dat mensen niet kunnen zeggen dat ze van objecten, scènes en mensen zijn die niet in het echt bestaan.
Opzienbarend is geen afdoende adjectief voor hun mogelijkheden en succes.
Example of the Progression in the Capabilities of GANs From 2014 to 2017. Ontleend aan The Malicious Use of Artificial Intelligence: Forecasting, Prevention, and Mitigation, 2018.
Verder lezen
In dit gedeelte vindt u meer bronnen over het onderwerp als u dieper op het onderwerp wilt ingaan.
Posts
- Best Resources for Getting Started With Generative Adversarial Networks (GANs)
- 18 Impressive Applications of Generative Adversarial Networks (GANs)
Books
- Chapter 20. Deep Generative Models, Deep Learning, 2016.
- Chapter 8. Generative Deep Learning, Deep Learning with Python, 2017.
- Machine Learning: A Probabilistic Perspective, 2012.
- Pattern Recognition and Machine Learning, 2006.
- The Elements of Statistical Learning, 2016.
Papers
- Generative Adversarial Networks, 2014.
- Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2015.
- NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.
- Conditional Generative Adversarial Nets, 2014.
- The Malicious Use of Artificial Intelligence: Forecasting, Prevention, and Mitigation, 2018.
Artikels
- Generatief model, Wikipedia.
- Latente Variabele, Wikipedia.
- Generatief Adversarieel Netwerk, Wikipedia.
Samenvatting
In dit bericht ontdekte u een voorzichtige inleiding tot Generative Adversarial Networks, ofwel GAN’s.
In het bijzonder leerde u:
- Inhoud van GAN’s, waaronder supervised vs. unsupervised learning en discriminative vs. generative modeling.
- GANs zijn een architectuur voor het automatisch trainen van een generatief model door het unsupervised probleem als supervised te behandelen en zowel een generatief als een discriminatief model te gebruiken.
- GANs bieden een pad naar verfijnde domeinspecifieke data augmentation en een oplossing voor problemen die een generatieve oplossing vereisen, zoals image-to-image translation.
Do you have any questions?
Ask your questions in the comments below and I will do my best to answer.
Develop Generative Adversarial Networks Today!
Develop Your GAN Models in Minutes
…with just a few lines of python code
Discover how in my new Ebook:
Generative Adversarial Networks with Python
It provides self-study tutorials and end-to-end projects on:
DCGAN, conditional GANs, image translation, Pix2Pix, CycleGAN
and much more…
Finally Bring GAN Models to your Vision Projects
Skip the Academics. Just Results.See What’s Inside