Wat zijn GAN's? Hoe en waarom u ze moet gebruiken!



Dit artikel behandelt de gedetailleerde uitleg van 'Wat zijn GAN's' met beperkingen en uitdagingen die betrekking hebben op het trainingsproces en de implementatie van use cases.

Generative Adversarial Networks of GAN's zijn een generatieve modelbenadering die gebruikmaakt van Diep leren het model op een slimme manier trainen om data te genereren met behulp van de submodelbenadering. In dit artikel zullen we proberen om 'Wat zijn GAN's' in detail te begrijpen. In dit artikel komen de volgende onderwerpen aan bod:

Wat zijn generatieve modellen?

Generatieve modellen zijn niets anders dan die modellen die een nadering. In een generatief model zijn er steekproeven in de gegevens, dwz invoervariabelen X, maar het mist de uitvoervariabele Y. We gebruiken alleen de invoervariabelen om het generatieve model te trainen en het herkent patronen van de invoervariabelen om een ​​uitvoer te genereren die onbekend is en alleen gebaseerd op de trainingsgegevens.





In zijn we meer gericht op het maken van voorspellende modellen op basis van de invoervariabelen, dit type modellering staat bekend als discriminatieve modellering. Bij een classificatieprobleem moet het model discrimineren tot welke klasse het voorbeeld behoort. Aan de andere kant worden modellen zonder toezicht gebruikt om nieuwe voorbeelden in de invoerdistributie te creëren of te genereren.

Om generatieve modellen in termen van leken te definiëren, kunnen we zeggen dat generatieve modellen in staat zijn om nieuwe voorbeelden uit de steekproef te genereren die niet alleen vergelijkbaar zijn met andere voorbeelden, maar ook niet te onderscheiden zijn.



Het meest voorkomende voorbeeld van een generatief model is een dat vaker wordt gebruikt als een onderscheidend model. Andere voorbeelden van generatieve modellen zijn onder meer het Gaussian Mixture Model en een vrij modern voorbeeld dat General Adversarial Networks is. Laten we proberen te begrijpen wat zijn GAN's?

Wat zijn generatieve vijandige netwerken?

Generative Adversarial Networks of GAN's zijn een op deep learning gebaseerd generatief model dat wordt gebruikt voor Unsupervised Learning. Het is eigenlijk een systeem waarin twee concurreren Neurale netwerken met elkaar concurreren om variaties in de gegevens te creëren of te genereren.

Het werd voor het eerst beschreven in een paper in 2014 door Ian Goodfellow en een gestandaardiseerde en veel stabiele modeltheorie werd in 2016 voorgesteld door Alec Radford, bekend als DCGAN (Deep Convolutional General Adversarial Networks). De meeste van de huidige GAN's gebruiken DCGAN-architectuur.



De GAN-architectuur bestaat uit twee submodellen die bekend staan ​​als de Generator model en de Discriminator-model. Laten we proberen te begrijpen hoe GAN's echt werken.

Hoe werkt het?

Laten we het opsplitsen om te begrijpen hoe GAN's werken.

java zet dubbel naar geheel getal om
  • Generatief - Het betekent dat het model de aanpak en is een generatief model.
  • Tegenstander - Het model is getraind in een vijandige setting
  • Netwerk - Gebruikt voor de training van het model de neurale netwerken als algoritmen voor kunstmatige intelligentie.

In GAN's is er een Generator-netwerk dat een steekproef neemt en een steekproef van gegevens genereert, en daarna beslist het Discriminator-netwerk of de gegevens worden gegenereerd of uit de echte steekproef worden gehaald met behulp van een binair bestand. probleem met behulp van een sigmoid-functie die de uitvoer in het bereik van 0 tot 1 geeft.

stroomdiagram - wat zijn gna

Het generatieve model analyseert de verdeling van de gegevens zodanig dat na de trainingsfase de kans dat de discriminator een fout maakt maximaal is. En de discriminator, aan de andere kant, is gebaseerd op een model dat de waarschijnlijkheid schat dat de steekproef afkomstig is van de echte gegevens en niet van de generator.

Het hele proces kan worden geformaliseerd in een wiskundige formule die hieronder wordt gegeven.

In de bovenstaande formule:

G = Generator

D = discriminator

Pdata (x) = Distributie van echte gegevens

Pdata (z) = Distributeur van generator

x = steekproef van echte gegevens

z = sample van generator

D (x) = Discriminator-netwerk

G (z) = Generator Netwerk

round robin-programma in c

Nu komt het trainingsgedeelte voor een GAN, dat verder kan worden onderverdeeld in 2 delen die achtereenvolgens worden gedaan.

Hoe een GAN te trainen?

Deel 1:

Train de discriminator en bevries de generator, wat betekent dat de trainingsset voor de generator op False wordt gezet en dat het netwerk alleen de forward pass doet en er geen back-propagation wordt toegepast.

In principe is de discriminator getraind met de echte gegevens en controleert hij of hij ze correct kan voorspellen, en hetzelfde met de nepgegevens om ze als nep te identificeren.

Deel 2:

Train de generator en zet de discriminator stil. In deze fase krijgen we de resultaten van de eerste fase en kunnen we ze gebruiken om beter te maken van de vorige staat om te proberen de discriminator beter voor de gek te houden.

Stappen voor training

  1. Definieer het probleem - definieer het probleem en verzamel gegevens.
  2. Kies Architectuur van GAN - Kies, afhankelijk van uw probleem, hoe uw GAN eruit moet zien.
  3. Train discriminator op echte gegevens - Train de discriminator met echte gegevens om ze n aantal keren als echt te voorspellen.
  4. Genereer valse invoer voor generator - Genereer nepmonsters van de generator
  5. Train discriminator op nepgegevens - Train de discriminator om de gegenereerde data als nep te voorspellen.
  6. Train Generator met de output van Discriminator - Nadat je de discriminatorvoorspellingen hebt ontvangen, train je de generator om de discriminator voor de gek te houden

Uitdagingen van generatief tegengesteld netwerk

Het concept van GAN's is nogal fascinerend, maar er zijn veel tegenslagen die voor veel hinder op het pad kunnen zorgen. Enkele van de belangrijkste uitdagingen waarmee GAN's worden geconfronteerd, zijn:

  1. Stabiliteit is vereist tussen de discriminator en de generator, anders zou het hele netwerk gewoon vallen. In het geval dat de Discriminator te krachtig is, zal de generator helemaal niet trainen. En als het netwerk te soepel is, wordt er elke afbeelding gegenereerd die het netwerk onbruikbaar maakt.
  2. GAN's falen jammerlijk bij het bepalen van de positionering van de objecten in termen van hoe vaak het object op die locatie moet voorkomen.
  3. 3D-perspectief geeft problemen met GAN's omdat het niet in staat is om te begrijpen perspectief , geeft het vaak een plat beeld voor een 3D-object.
  4. GAN's hebben een probleem met het begrijpen van de globale objecten . Het kan een holistische structuur niet differentiëren of begrijpen.
  5. Nieuwere typen GAN's zijn geavanceerder en zullen naar verwachting deze tekortkomingen geheel verhelpen.

Generatieve tegengestelde netwerktoepassingen

Hieronder volgen enkele toepassingen van GAN's.

Voorspelling van het volgende frame in een video

De voorspelling van toekomstige gebeurtenissen in een videoframe wordt mogelijk gemaakt met behulp van GAN's. DVD-GAN of Dual Video Discriminator GAN kan 256 × 256 video's genereren met een opmerkelijke getrouwheid tot 48 frames lang. Dit kan gebruikt worden voor verschillende doeleinden waaronder bewaking waarbij we de activiteiten kunnen bepalen in een frame dat vervormd raakt door andere factoren zoals regen, stof, rook etc.

Tekst naar afbeelding genereren

Object-driven attentive GAN (obj-GAN), voert de tekst-naar-beeldsynthese uit in twee stappen. Het genereren van de semantische lay-out is de eerste stap en vervolgens het genereren van de afbeelding door de afbeelding te synthetiseren met behulp van een de-convolutionele afbeeldingsgenerator is de laatste stap.

Dit kan intensief worden gebruikt om afbeeldingen te genereren door de bijschriften en lay-outs te begrijpen en details te verfijnen door de woorden samen te voegen. Er is nog een studie over de storyGANs die de hele storyboards kunnen synthetiseren uit louter paragrafen.

De resolutie van een afbeelding verbeteren

android studio tutorial voor beginners

Superresolutie generatief vijandelijk netwerk of SRGAN is een GAN dat superresolutiebeelden kan genereren van lage resolutiebeelden met fijnere details en betere kwaliteit.

De toepassingen kunnen enorm zijn, stel je een afbeelding van hogere kwaliteit voor met fijnere details die worden gegenereerd op basis van een afbeelding met een lage resolutie. De hoeveelheid hulp die het zou opleveren om details in afbeeldingen met een lage resolutie te identificeren, kan voor bredere doeleinden worden gebruikt, waaronder bewaking, documentatie, beveiliging, detectie van patronen, enz.

Afbeelding naar afbeelding vertaling

Pix2Pix GAN is een model dat is ontworpen voor algemene beeld-beeldvertaling.

Interactieve beeldgeneratie

GAN's kunnen ook worden gebruikt om interactieve afbeeldingen te genereren, Computer Science and Artificial Intelligence Laboratory (CSAIL) heeft een GAN ontwikkeld dat 3D-modellen kan genereren met realistische belichting en reflecties die mogelijk worden gemaakt door de vorm- en textuurbewerking.

Meer recentelijk hebben onderzoekers een model bedacht dat een nagespeeld gezicht kan synthetiseren dat wordt geanimeerd door de beweging van een persoon, terwijl het uiterlijk van het gezicht tegelijkertijd behouden blijft.

Dit brengt ons bij het einde van dit artikel waar we hebben geleerd ‘What Are GANs’. Ik hoop dat je duidelijk bent met alles wat in deze tutorial met je is gedeeld.

Als je dit artikel over 'Wat zijn GAN's' relevant vond, bekijk dan het een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld.

We zijn hier om je te helpen bij elke stap op je reis en om een ​​curriculum te bedenken dat is ontworpen voor studenten en professionals die een . De cursus is ontworpen om u een voorsprong te geven in het programmeren van Python en u te trainen in zowel kern- als geavanceerde Python-concepten, samen met verschillende Leuk vinden

Mocht u vragen tegenkomen, stel dan gerust al uw vragen in de commentarensectie van 'Wat zijn GAN's' en ons team zal u graag antwoorden.