Generative Adversarial Networks (GAN): een inleiding

Generatieve adversariële netwerken (GAN’s) zijn een van de moderne technologieën die veel potentieel bieden in veel gebruikssituaties, van het maken van uw oude foto’s en het versterken van uw stem tot het bieden van verschillende toepassingen in medische en andere industrieën.

Deze geavanceerde technologie kan u helpen uw producten en diensten vorm te geven. Het kan ook worden gebruikt om de beeldkwaliteit te verbeteren om herinneringen te bewaren.

Hoewel GAN’s voor velen een zegen zijn, vinden sommigen het zorgwekkend.

Maar wat is deze technologie precies?

In dit artikel bespreek ik wat een GAN is, hoe het werkt en wat de toepassingen ervan zijn.

Dus laten we er meteen in duiken!

Wat is een generatief vijandig netwerk?

Een Generative Adversarial Network (GAN) is een machine learning-framework dat bestaat uit twee neurale netwerken die met elkaar concurreren om nauwkeurigere voorspellingen te produceren, zoals afbeeldingen, unieke muziek, tekeningen, enzovoort.

GANs is in 2014 ontworpen door een computerwetenschapper en ingenieur, Ian Goodfellow, en enkele van zijn collega’s. Het zijn unieke diepe neurale netwerken die in staat zijn om nieuwe gegevens te genereren die vergelijkbaar zijn met die waarop ze worden getraind. Ze strijden in een nulsomspel waarbij de ene agent het spel verliest en de andere het wint.

Oorspronkelijk werden GAN’s voorgesteld als een generatief model voor machine learning, voornamelijk onbewaakt leren. Maar GAN’s zijn ook nuttig voor volledig begeleid leren, semi-gesuperviseerd leren en versterkend leren.

De twee blokken in competitie in een GAN zijn:

De generator: het is een convolutief neuraal netwerk dat op kunstmatige wijze uitvoer produceert die vergelijkbaar is met werkelijke gegevens.

De discriminator: het is een deconvolutioneel neuraal netwerk dat die outputs kan identificeren die kunstmatig zijn gecreëerd.

Sleutelbegrippen

Om het concept van GAN beter te begrijpen, laten we snel enkele belangrijke gerelateerde concepten begrijpen.

Machine learning (ML)

Machine learning is een onderdeel van kunstmatige intelligentie (AI) waarbij wordt geleerd en modellen worden gebouwd die gebruikmaken van gegevens om de prestaties en nauwkeurigheid te verbeteren tijdens het uitvoeren van taken of het nemen van beslissingen of voorspellingen.

ML-algoritmen creëren modellen op basis van trainingsgegevens en verbeteren met continu leren. Ze worden op meerdere gebieden gebruikt, waaronder computervisie, geautomatiseerde besluitvorming, e-mailfiltering, geneeskunde, bankieren, gegevenskwaliteit, cyberbeveiliging, spraakherkenning, aanbevelingssystemen en meer.

Discriminerend model

Bij deep learning en machine learning werkt het discriminerende model als een classificatie om onderscheid te maken tussen een reeks niveaus of twee klassen.

Bijvoorbeeld onderscheid maken tussen verschillende soorten fruit of dieren.

generatief model

In generatieve modellen worden willekeurige steekproeven genomen om nieuwe realistische afbeeldingen te creëren. Het leert van echte afbeeldingen van sommige objecten of levende wezens om zijn eigen realistische maar nagebootste ideeën te genereren. Deze modellen zijn van twee soorten:

Variationele auto-encoders: ze gebruiken encoders en decoders die afzonderlijke neurale netwerken zijn. Dit werkt omdat een bepaald realistisch beeld door een encoder gaat om deze beelden weer te geven als vectoren in een latente ruimte.

Vervolgens wordt een decoder gebruikt om deze interpretaties te maken om enkele realistische kopieën van deze afbeeldingen te maken. In het begin kan de beeldkwaliteit laag zijn, maar deze zal verbeteren nadat de decoder volledig functioneel is geworden, en u kunt de encoder negeren.

Generative adversarial networks (GAN’s): Zoals hierboven besproken, is een GAN een diep neuraal netwerk dat in staat is om nieuwe, vergelijkbare gegevens te genereren uit de gegevensinvoer die het bevat. Het valt onder onbewaakte machine learning, een van de soorten machine learning die hieronder worden besproken.

Leren onder toezicht

Bij een begeleide training wordt een machine getraind met behulp van goed gelabelde gegevens. Dit betekent dat sommige gegevens al zijn getagd met het juiste antwoord. Hier krijgt de machine enkele gegevens of voorbeelden om het begeleide leeralgoritme in staat te stellen de trainingsgegevens te analyseren en een nauwkeurig resultaat te produceren van deze gelabelde gegevens.

Leren zonder toezicht

Unsupervised learning houdt in dat een machine wordt getraind met behulp van gegevens die niet zijn gelabeld of geclassificeerd. Het stelt het machine learning-algoritme in staat om zonder begeleiding aan die gegevens te werken. Bij dit soort leren is het de taak van de machine om ongesorteerde gegevens te categoriseren op basis van patronen, overeenkomsten en verschillen zonder voorafgaande gegevenstraining.

  Automatiseer Muzei Live Wallpaper met Tasker

GAN’s worden dus geassocieerd met het uitvoeren van niet-gesuperviseerd leren in ML. Het heeft twee modellen die automatisch patronen kunnen ontdekken en leren uit invoergegevens. Deze twee modellen zijn generator en discriminator.

Laten we ze wat meer begrijpen.

Delen van een GAN

De term “tegenstander” is opgenomen in GAN omdat deze uit twee delen bestaat: generator en noemer die concurreren. Dit wordt gedaan om gegevensvariaties in een gegevensset vast te leggen, te onderzoeken en te repliceren. Laten we deze twee delen van een GAN beter begrijpen.

Generator

Een generator is een neuraal netwerk dat in staat is om valse datapunten, zoals afbeeldingen en audio, te leren en te genereren die er realistisch uitzien. Het wordt gebruikt in training en wordt beter met continu leren.

De gegevens die door de generator worden gegenereerd, worden gebruikt als een negatief voorbeeld voor het andere deel – de noemer die we hierna zullen zien. De generator neemt een willekeurige vector met een vaste lengte als invoer om een ​​monsteruitvoer te produceren. Het is bedoeld om de uitvoer voor de discriminator te presenteren, zodat deze kan classificeren of het echt of nep is.

De generator is getraind met deze componenten:

  • Luidruchtige invoervectoren
  • Een generatornetwerk om een ​​willekeurige invoer om te zetten in de gegevensinstantie
  • Een discriminatornetwerk om de gegenereerde gegevens te classificeren
  • Een generatorverlies om de generator te bestraffen omdat het de discriminator niet voor de gek houdt

De generator werkt als een dief om realistische gegevens te repliceren en te creëren om de discriminator voor de gek te houden. Het is bedoeld om verschillende uitgevoerde controles te omzeilen. Hoewel het in de beginfase vreselijk kan mislukken, blijft het verbeteren totdat het meerdere realistische gegevens van hoge kwaliteit genereert en de tests kan vermijden. Nadat dit vermogen is bereikt, kunt u alleen de generator gebruiken zonder dat u een aparte discriminator nodig heeft.

discriminator

Een discriminator is ook een neuraal netwerk dat onderscheid kan maken tussen een nep- en een echt beeld of andere gegevenstypen. Net als een generator speelt het een cruciale rol tijdens de trainingsfase.

Het werkt als de politie om de dief te vangen (nepgegevens door de generator). Het is gericht op het detecteren van valse beelden en afwijkingen in een gegevensinstantie.

Zoals eerder besproken, leert de generator en blijft hij verbeteren om een ​​punt te bereiken waarop hij zelfvoorzienend wordt om afbeeldingen van hoge kwaliteit te produceren waarvoor geen discriminator nodig is. Wanneer de hoogwaardige gegevens van de generator door de discriminator worden gevoerd, kan deze geen onderscheid meer maken tussen een echt en een nepbeeld. Dus je bent goed om te gaan met alleen de generator.

Hoe werkt GAN?

In een generatief adversarial netwerk (GAN) zijn drie dingen betrokken:

  • Een generatief model om de manier waarop gegevens worden gegenereerd te beschrijven.
  • Een vijandige setting waar een model wordt getraind.
  • Diepe neurale netwerken als AI-algoritmen voor training.

De twee neurale netwerken van GAN – generator en discriminator – worden gebruikt om een ​​vijandig spel te spelen. De generator gebruikt de invoergegevens, zoals audiobestanden, afbeeldingen, enz. om een ​​vergelijkbare gegevensinstantie te genereren, terwijl de discriminator de authenticiteit van die gegevensinstantie valideert. Deze laatste zal bepalen of de data-instantie die het heeft beoordeeld al dan niet echt is.

U wilt bijvoorbeeld controleren of een bepaalde afbeelding echt of nep is. U kunt met de hand gegenereerde gegevensinvoer gebruiken om naar de generator te sturen. Het zal nieuwe, gerepliceerde afbeeldingen maken als uitvoer.

Terwijl hij dit doet, streeft de generator ernaar dat alle afbeeldingen die hij genereert als authentiek worden beschouwd, ondanks dat ze nep zijn. Het wil redelijke resultaten creëren om te liegen en te voorkomen dat ze gepakt worden.

Vervolgens gaat deze uitvoer naar de discriminator samen met een reeks afbeeldingen van echte gegevens om te detecteren of deze afbeeldingen authentiek zijn of niet. Het werkt nadelig op de generator, hoe hard hij ook probeert na te bootsen; de discriminator zal helpen om feitelijke gegevens te onderscheiden van nepgegevens.

  5 beste tools voor analyse van verkeerspatronen en hoe het uw bedrijf helpt

De discriminator neemt zowel nep- als echte gegevens om een ​​kans van 0 of 1 te retourneren. Hier staat 1 voor authenticiteit en 0 voor nep.

Er zijn twee feedbackloops in dit proces:

  • De generator voegt zich bij een feedbacklus met een discriminator
  • De discriminator voegt zich bij een andere feedbacklus met een reeks echte afbeeldingen

Een GAN-training werkt omdat zowel generator als discriminator in training zijn. De generator leert continu door valse inputs door te geven, terwijl de discriminator leert om de detectie te verbeteren. Hier zijn beide dynamisch.

De discriminator is een convolutienetwerk dat in staat is om de afbeeldingen die eraan worden geleverd te categoriseren. Het werkt als een binominale classificatie om afbeeldingen als nep of echt te labelen.

Aan de andere kant is de generator als een omgekeerd convolutienetwerk dat willekeurige gegevensmonsters neemt om afbeeldingen te produceren. Maar de discriminator verifieert gegevens met behulp van downsampling-technieken zoals max-pooling.

Beide netwerken proberen een tegengestelde en verschillende verlies- of doelfunctie te optimaliseren in een vijandig spel. Door hun verliezen kunnen ze nog harder tegen elkaar opboksen.

Soorten GAN’s

Generatieve vijandige netwerken zijn van verschillende typen op basis van implementatie. Dit zijn de belangrijkste GAN-typen die actief worden gebruikt:

  • Voorwaardelijke GAN (CGAN): Het is een diepgaande leertechniek waarbij specifieke voorwaardelijke parameters worden gebruikt om onderscheid te maken tussen echte en nepgegevens. Het bevat ook een extra parameter – “y” in de generatorfase om overeenkomstige gegevens te produceren. Er worden ook labels aan deze invoer toegevoegd en naar de discriminator gevoerd om deze in staat te stellen te verifiëren of de gegevens authentiek of nep zijn.
  • Vanilla GAN: Het is een eenvoudig GAN-type waarbij de discriminator en generator eenvoudigere en meerlagige perceptrons zijn. De algoritmen zijn eenvoudig en optimaliseren de wiskundige vergelijking met behulp van stochastische gradiëntafdaling.
  • Diepe convolutionele GAN (DCGAN): het is populair en wordt beschouwd als de meest succesvolle GAN-implementatie. DCGAN bestaat uit ConvNets in plaats van uit meerdere lagen bestaande perceptrons. Deze ConvNets worden toegepast zonder gebruik te maken van technieken zoals max-pooling of het volledig verbinden van de lagen.
  • Super Resolution GAN (SRGAN): het is een GAN-implementatie die een diep neuraal netwerk gebruikt naast een vijandig netwerk om afbeeldingen van hoge kwaliteit te helpen produceren. SRGAN is vooral handig bij het efficiënt opschalen van originele afbeeldingen met een lage resolutie, zodat hun details worden verbeterd en fouten worden geminimaliseerd.
  • Laplace Pyramid GAN (LAPGAN): Het is een omkeerbare en lineaire weergave die meerdere banddoorlaatafbeeldingen bevat die acht spaties uit elkaar zijn geplaatst met laagfrequente residuen. LAPGAN maakt gebruik van verschillende discriminator- en generatornetwerken en meerdere Laplace-piramideniveaus.

LAPGAN wordt veel gebruikt omdat het een eersteklas beeldkwaliteit produceert. Deze afbeeldingen worden eerst op elke piramidelaag gedownsampled en vervolgens op elke laag opgeschaald, waar ideeën wat ruis krijgen totdat ze de oorspronkelijke grootte krijgen.

Toepassingen van GAN’s

Generatieve vijandige netwerken worden op verschillende gebieden gebruikt, zoals:

Wetenschap

GAN’s kunnen een nauwkeurige en snellere manier bieden om hoogenergetische jetvorming te modelleren en fysica-experimenten uit te voeren. Deze netwerken kunnen ook worden getraind om knelpunten in te schatten bij het uitvoeren van simulaties voor deeltjesfysica die zware hulpbronnen verbruiken.

GAN’s kunnen simulatie versnellen en de simulatiegetrouwheid verbeteren. Bovendien kunnen GAN’s helpen bij het bestuderen van donkere materie door zwaartekrachtlensing te simuleren en astronomische beelden te verbeteren.

Videospellen

De wereld van videogames heeft ook gebruikgemaakt van GAN’s om 2-dimensionale gegevens met een lage resolutie op te schalen die in oudere videogames worden gebruikt. Het zal u helpen dergelijke gegevens opnieuw te creëren in 4k of zelfs hogere resoluties door middel van beeldtraining. Vervolgens kunt u de gegevens of afbeeldingen downsamplen om ze geschikt te maken voor de echte resolutie van de videogame.

Zorg voor een goede training voor uw GAN-modellen. Ze kunnen scherpere en duidelijkere 2D-beelden van indrukwekkende kwaliteit bieden in vergelijking met de oorspronkelijke gegevens, terwijl de details van het echte beeld, zoals kleuren, behouden blijven.

Videogames die GAN’s hebben gebruikt, zijn onder meer Resident Evil Remake, Final Fantasy VIII en IX en meer.

Kunst en mode

Je kunt GAN’s gebruiken om kunst te genereren, zoals het maken van afbeeldingen van individuen die nooit hebben bestaan, in-paint foto’s, het maken van afbeeldingen van onwerkelijke mannequins en nog veel meer. Het wordt ook gebruikt in tekeningen die virtuele schaduwen en schetsen genereren.

  App-, bestands- en mappictogrammen wijzigen op een Mac

Adverteren

Als u GAN’s gebruikt om uw advertenties te maken en te produceren, bespaart u tijd en middelen. Zoals hierboven te zien is, kun je, als je je sieraden wilt verkopen, met behulp van GAN een denkbeeldig model maken dat eruitziet als een echt mens.

Op deze manier kunt u het model uw sieraden laten dragen en deze aan uw klanten laten zien. Het bespaart u een model in te huren en ervoor te betalen. U kunt zelfs de extra kosten elimineren, zoals het betalen voor transport, het huren van een studio, het regelen van fotografen, visagisten, enz.

Dit zal aanzienlijk helpen als u een groeiend bedrijf bent en het zich niet kunt veroorloven om een ​​model in te huren of een infrastructuur te huisvesten voor ad-shoots.

Audiosynthese

U kunt met behulp van GAN’s audiobestanden maken van een set audioclips. Dit wordt ook wel generatieve audio genoemd. Verwar dit alstublieft niet met Amazon Alexa, Apple Siri of andere AI-stemmen waarbij spraakfragmenten goed zijn samengevoegd en op aanvraag worden geproduceerd.

In plaats daarvan gebruikt generatieve audio neurale netwerken om de statistische eigenschappen van een audiobron te bestuderen. Vervolgens reproduceert het die eigenschappen direct in een bepaalde context. Hier vertegenwoordigt modellering de manier waarop spraak na elke milliseconde verandert.

Leren overdragen

Geavanceerde onderzoeken naar transfer learning maken gebruik van GAN’s bij het afstemmen van de nieuwste functieruimten, zoals diep versterkend leren. Hiervoor worden de inbeddingen van de bron en de beoogde taak aan de discriminator toegevoerd om de context te bepalen. Vervolgens wordt het resultaat teruggepropageerd via de encoder. Zo blijft het model leren.

Andere toepassingen van GAN’s zijn onder meer:

  • Diagnose van totaal of gedeeltelijk verlies van het gezichtsvermogen door detectie van glaucomateuze beelden
  • Visualiseer industrieel ontwerp, interieurontwerp, kledingstukken, schoenen, tassen en meer
  • reconstrueer forensische gelaatstrekken van een ziek persoon
  • maak 3D-modellen van een item op basis van een afbeelding, produceer nieuwe objecten als een 3D-puntenwolk, modelleer bewegingspatronen in een video
  • Laat het uiterlijk zien van een persoon met veranderende leeftijd
  • Gegevensvergroting, zoals het verbeteren van de DNN-classificatie
  • Breng een ontbrekende functie in een kaart aan, verbeter straatweergaven, breng kaartstijlen over en meer
  • Maak afbeeldingen, vervang een zoeksysteem voor afbeeldingen, enz.
  • Genereer besturingsingangen voor een niet-lineair dynamisch systeem met behulp van een GAN-variatie
  • Analyseer de effecten van klimaatverandering op een huis
  • Creëer het gezicht van een persoon door hun stem als invoer te gebruiken
  • Creëer nieuwe moleculen voor verschillende eiwitdoelen bij kanker, fibrose en ontsteking
  • Animeer gifs van een gewone afbeelding

Er zijn veel meer toepassingen van GAN’s op verschillende gebieden en het gebruik ervan neemt toe. Er zijn echter ook meerdere gevallen van misbruik. Op GAN gebaseerde menselijke afbeeldingen zijn gebruikt voor sinistere gebruikssituaties, zoals het maken van nepvideo’s en afbeeldingen.

GAN’s kunnen ook worden gebruikt om realistische foto’s en profielen te maken van mensen op sociale media die nooit op aarde hebben bestaan. Andere vormen van misbruik van GNA’s zijn het maken van neppornografie zonder toestemming van prominente personen, het verspreiden van valse video’s van politieke kandidaten, enzovoort.

Hoewel GNA’s op veel gebieden een zegen kunnen zijn, kan misbruik ervan ook rampzalig zijn. Daarom moeten de juiste richtlijnen worden afgedwongen voor het gebruik ervan.

Conclusie

GAN’s zijn een opmerkelijk voorbeeld van moderne technologie. Het biedt een unieke en betere manier om gegevens te genereren en te helpen bij functies zoals visuele diagnose, beeldsynthese, onderzoek, gegevensvergroting, kunst en wetenschap en nog veel meer.

Mogelijk bent u ook geïnteresseerd in machine learning-platforms met weinig en geen code voor het bouwen van innovatieve toepassingen.

gerelateerde berichten