Generative Adversarial Networks (GAN): En introduktion

Generativa kontradiktoriska nätverk (GAN) är en av de moderna teknikerna som erbjuder mycket potential i många användningsfall, från att skapa dina åldrade bilder och utöka din röst till att tillhandahålla olika applikationer inom medicinska och andra industrier.

Denna avancerade teknik kan hjälpa dig att forma dina produkter och tjänster. Den kan också användas för att förbättra bildkvaliteten för att bevara minnen.

Medan GAN är en välsignelse för många, tycker vissa att det är oroande.

Men vad är denna teknik egentligen?

I den här artikeln kommer jag att diskutera vad en GAN är, hur den fungerar och dess tillämpningar.

Så, låt oss dyka direkt in!

Vad är ett generativt motståndsnätverk?

A Generative Adversarial Network (GAN) är ett ramverk för maskininlärning som består av två neurala nätverk som tävlar om att producera mer exakta förutsägelser som bilder, unik musik, teckningar och så vidare.

GANs designades 2014 av en datavetare och ingenjör, Ian Goodfellow, och några av hans kollegor. De är unika djupa neurala nätverk som kan generera ny data liknande den de tränas på. De tävlar i ett nollsummespel som resulterar i att en agent förlorar spelet medan den andra vinner det.

Ursprungligen föreslogs GAN som en generativ modell för maskininlärning, huvudsakligen oövervakad inlärning. Men GAN:er är också användbara för fullständigt övervakat lärande, semi-övervakat lärande och förstärkningsinlärning.

De två blocken i konkurrens i ett GAN är:

Generatorn: Det är ett konvolutionellt neuralt nätverk som på konstgjord väg producerar utdata som liknar faktiska data.

Diskriminatorn: Det är ett dekonvolutionellt neuralt nätverk som kan identifiera de utgångar som är artificiellt skapade.

Nyckelbegrepp

För att förstå begreppet GAN bättre, låt oss snabbt förstå några viktiga relaterade begrepp.

Maskininlärning (ML)

Maskininlärning är en del av artificiell intelligens (AI) som innebär att man lär sig och bygger modeller som utnyttjar data för att förbättra prestanda och noggrannhet när man utför uppgifter eller gör beslut eller förutsägelser.

ML-algoritmer skapar modeller baserade på träningsdata, som förbättras med kontinuerligt lärande. De används inom flera områden, inklusive datorseende, automatiserat beslutsfattande, e-postfiltrering, medicin, bank, datakvalitet, cybersäkerhet, taligenkänning, rekommendationssystem och mer.

Diskriminerande modell

Inom djupinlärning och maskininlärning fungerar den diskriminerande modellen som en klassificerare för att skilja mellan en uppsättning nivåer eller två klasser.

Till exempel att skilja på olika frukter eller djur.

Generativ modell

I generativa modeller anses slumpmässiga prover skapa nya realistiska bilder. Den lär sig av verkliga bilder av vissa föremål eller levande varelser för att generera sina egna realistiska men ändå efterliknade idéer. Dessa modeller är av två typer:

Varierande autokodare: De använder kodare och avkodare som är separata neurala nätverk. Detta fungerar eftersom en given realistisk bild passerar genom en kodare för att representera dessa bilder som vektorer i ett latent utrymme.

Därefter används en avkodare för att ta dessa tolkningar för att producera några realistiska kopior av dessa bilder. Till en början kan bildkvaliteten vara låg, men den kommer att förbättras efter att avkodaren blivit fullt fungerande, och du kan bortse från kodaren.

Generativa motstridiga nätverk (GAN): Som diskuterats ovan är ett GAN ett djupt neuralt nätverk som kan generera ny liknande data från den datainmatning som den är försedd med. Det kommer under oövervakad maskininlärning, vilket är en av de typer av maskininlärning som diskuteras nedan.

Övervakat lärande

Vid övervakad träning tränas en maskin med hjälp av väl märkta data. Det betyder att vissa data redan kommer att vara taggade med rätt svar. Här ges maskinen några data eller exempel för att göra det möjligt för den övervakade inlärningsalgoritmen att analysera träningsdata och producera ett korrekt resultat från dessa märkta data.

Oövervakat lärande

Oövervakat lärande innebär att man tränar en maskin med hjälp av data som varken är märkta eller klassificerade. Det gör att maskininlärningsalgoritmen kan arbeta med dessa data utan vägledning. I denna typ av inlärning är maskinens uppgift att kategorisera osorterade data baserat på mönster, likheter och skillnader utan föregående dataträning.

Så GAN är förknippade med att utföra oövervakad inlärning i ML. Den har två modeller som automatiskt kan upptäcka och lära sig mönstren från indata. Dessa två modeller är generator och diskriminator.

Låt oss förstå dem lite mer.

Delar av ett GAN

Termen ”motstridig” ingår i GAN eftersom den har två delar – generator och nämnare som konkurrerar. Detta görs för att fånga, granska och replikera datavariationer i en datauppsättning. Låt oss få en bättre förståelse för dessa två delar av ett GAN.

Generator

En generator är ett neuralt nätverk som kan lära sig och generera falska datapunkter som bilder och ljud som ser realistiska ut. Det används i träning och blir bättre med kontinuerligt lärande.

Data som genereras av generatorn används som ett negativt exempel för den andra delen – nämnaren som vi kommer att se härnäst. Generatorn tar en slumpmässig vektor med fast längd som indata för att producera en provutgång. Det syftar till att presentera resultatet inför diskriminatorn så att det kan klassificera om det är äkta eller falskt.

Generatorn är tränad med dessa komponenter:

  • Bullriga ingångsvektorer
  • Ett generatornätverk för att omvandla en slumpmässig ingång till datainstansen
  • Ett diskriminatornätverk för att klassificera genererad data
  • En generatorförlust för att straffa generatorn eftersom den inte lyckas lura diskriminatorn

Generatorn fungerar som en tjuv för att replikera och skapa realistiska data för att lura diskriminatorn. Den syftar till att kringgå flera utförda kontroller. Även om det kan misslyckas fruktansvärt i de inledande stadierna, fortsätter det att förbättras tills det genererar flera realistiska data av hög kvalitet och kan undvika testerna. Efter att denna förmåga har uppnåtts kan du bara använda generatorn utan att behöva en separat diskriminator.

Diskriminator

En diskriminator är också ett neuralt nätverk som kan skilja mellan en falsk och riktig bild eller andra datatyper. Liksom en generator spelar den en viktig roll under träningsfasen.

Den agerar som polisen för att fånga tjuven (falska data av generatorn). Det syftar till att upptäcka falska bilder och avvikelser i en datainstans.

Som diskuterats tidigare lär sig generatorn och fortsätter att förbättras för att nå en punkt där den blir självständig för att producera högkvalitativa bilder som inte kräver en diskriminator. När högkvalitativ data från generatorn skickas genom diskriminatorn kan den inte längre skilja mellan en verklig och falsk bild. Så du är bra att gå med bara generatorn.

Hur fungerar GAN?

I ett generativt motståndsnätverk (GAN) involverar tre saker:

  • En generativ modell för att beskriva hur data genereras.
  • En kontradiktorisk miljö där en modell utbildas.
  • Djupa neurala nätverk som AI-algoritmer för träning.

GAN:s två neurala nätverk – generator och diskriminator – används för att spela ett motståndsspel. Generatorn tar indata, såsom ljudfiler, bilder, etc., för att generera en liknande datainstans medan diskriminatorn validerar äktheten av den datainstansen. Den senare kommer att avgöra om datainstansen som den har granskat är verklig eller inte.

Till exempel vill du verifiera om en given bild är äkta eller falsk. Du kan använda handgenererade dataingångar för att mata till generatorn. Det kommer att skapa nya, replikerade bilder som utdata.

Medan den gör det strävar generatorn efter att alla bilder den genererar ska anses vara autentiska, trots att de är falska. Den vill skapa tveksamma resultat för att ljuga och undvika att bli fångad.

Därefter kommer denna utdata att gå till diskriminatorn tillsammans med en uppsättning bilder från verkliga data för att upptäcka om dessa bilder är autentiska eller inte. Det fungerar negativt på generatorn oavsett hur hårt den försöker härma; diskriminatorn hjälper till att skilja faktauppgifter från falska.

Diskriminatorn kommer att ta både falska och riktiga data för att returnera en sannolikhet på 0 eller 1. Här representerar 1 autenticitet medan 0 representerar falska.

Det finns två återkopplingsslingor i denna process:

  • Generatorn förenar en återkopplingsslinga med en diskriminator
  • Diskriminatorn går med i en annan återkopplingsslinga med en uppsättning riktiga bilder

En GAN-utbildning fungerar eftersom både generator och diskriminator är under utbildning. Generatorn lär sig kontinuerligt genom att skicka falska ingångar, medan diskriminatorn kommer att lära sig att förbättra detekteringen. Här är båda dynamiska.

Diskriminatorn är ett faltningsnätverk som kan kategorisera bilder som levereras till den. Det fungerar som en binomial klassificerare för att märka bilder som falska eller äkta.

Å andra sidan är generatorn som ett inverst faltningsnätverk som tar slumpmässiga dataprover för att producera bilder. Men diskriminatorn verifierar data med hjälp av nedsamplingstekniker som max-pooling.

Båda nätverken försöker optimera en motsatt och annorlunda förlust eller objektiv funktion i ett motståndsspel. Deras förluster gör det möjligt för dem att trycka mot varandra ännu hårdare.

Typer av GAN

Generativa kontradiktoriska nätverk är av olika slag baserat på implementering. Här är de viktigaste GAN-typerna som används aktivt:

  • Villkorlig GAN (CGAN): Det är en djupinlärningsteknik som involverar specifika villkorliga parametrar för att hjälpa till att skilja mellan verklig och falsk data. Den innehåller också en extra parameter – ”y” i generatorfasen för att producera motsvarande data. Dessutom läggs etiketter till denna ingång och matas till diskriminatorn för att den ska kunna verifiera om uppgifterna är äkta eller falska.
  • Vanilla GAN: Det är en enkel GAN-typ där diskriminatorn och generatorn är enklare och flerskiktiga perceptroner. Dess algoritmer är enkla och optimerar den matematiska ekvationen med hjälp av stokastisk gradientnedstigning.
  • Deep convolutional GAN ​​(DCGAN): Det är populärt och anses vara den mest framgångsrika GAN-implementeringen. DCGAN består av ConvNets snarare än flerskiktsperceptroner. Dessa ConvNets appliceras utan att använda tekniker som max-pooling eller att helt koppla ihop lagren.
  • Super Resolution GAN (SRGAN): Det är en GAN-implementation som använder ett djupt neuralt nätverk tillsammans med ett kontradiktoriskt nätverk för att producera bilder av hög kvalitet. SRGAN är särskilt användbart för att effektivt skala upp originalbilder med låg upplösning så att deras detaljer förbättras och fel minimeras.
  • Laplacian Pyramid GAN (LAPGAN): Det är en inverterbar och linjär representation som inkluderar flera bandpassbilder som är placerade åtta utrymmen från varandra med lågfrekventa rester. LAPGAN använder flera diskriminator- och generatornätverk och flera Laplacian Pyramid-nivåer.

LAPGAN används flitigt eftersom det ger förstklassig bildkvalitet. Dessa bilder nedsamplas vid varje pyramidlager först och skalas sedan upp vid varje lager, där idéer får lite brus tills de får den ursprungliga storleken.

Tillämpningar av GAN

Generativa kontradiktoriska nätverk används inom olika områden, såsom:

Vetenskap

GAN:er kan ge ett exakt och snabbare sätt att modellera högenergijetbildning och utföra fysikexperiment. Dessa nätverk kan också tränas för att uppskatta flaskhalsar i att utföra simuleringar för partikelfysik som förbrukar stora resurser.

GAN:er kan påskynda simulering och förbättra simuleringstrohet. Dessutom kan GAN hjälpa till att studera mörk materia genom att simulera gravitationslinser och förbättra astronomiska bilder.

Videospel

Videospelvärlden har också utnyttjat GAN:er för att uppskala lågupplöst 2-dimensionell data som används i äldre videospel. Det hjälper dig att återskapa sådan data till 4k eller till och med högre upplösningar genom bildträning. Därefter kan du nedsampla data eller bilder för att göra dem lämpliga för videospelets verkliga upplösning.

Ge korrekt utbildning till dina GAN-modeller. De kan erbjuda skarpare och tydligare 2D-bilder av imponerande kvalitet jämfört med inbyggd data samtidigt som de behåller den verkliga bildens detaljer, såsom färger.

Videospel som har utnyttjat GAN inkluderar Resident Evil Remake, Final Fantasy VIII och IX och mer.

Konst och mode

Du kan använda GAN:er för att skapa konst, som att skapa bilder av individer som aldrig har funnits, fotografier i målning, producera bilder av overkliga modemodeller och många fler. Det används också i ritningar som genererar virtuella skuggor och skisser.

Reklam

Att använda GAN för att skapa och producera dina annonser kommer att spara tid och resurser. Som sett ovan, om du vill sälja dina smycken, kan du skapa en imaginär modell som ser ut som en verklig människa med hjälp av GAN.

På så sätt kan du få modellen att bära dina smycken och visa upp dem för dina kunder. Det kommer att rädda dig från att hyra en modell och betala för den. Du kan till och med eliminera de extra utgifterna som att betala för transport, hyra en studio, arrangera fotografer, makeupartister, etc.

Detta kommer avsevärt att hjälpa om du är ett växande företag och inte har råd att hyra en modell eller inhysa en infrastruktur för reklamfilmer.

Ljudsyntes

Du kan skapa ljudfiler från en uppsättning ljudklipp med hjälp av GAN. Detta är också känt som generativt ljud. Blanda inte ihop detta med Amazon Alexa, Apple Siri eller andra AI-röster där röstfragment sys ihop väl och produceras på begäran.

Generativt ljud använder istället neurala nätverk för att studera en ljudkällas statistiska egenskaper. Därefter återger den dessa egenskaper direkt i ett givet sammanhang. Här representerar modellering hur tal förändras efter varje millisekund.

Överför lärande

Avancerade överföringsinlärningsstudier använder GAN för att anpassa de senaste funktionerna som djup förstärkningsinlärning. För detta matas källans inbäddningar och den riktade uppgiften till diskriminatorn för att bestämma sammanhanget. Därefter sprids resultatet tillbaka via kodaren. På så sätt fortsätter modellen att lära sig.

Andra tillämpningar av GAN inkluderar:

  • Diagnos av total eller partiell synförlust genom att upptäcka glaukombilder
  • Visualisera industriell design, inredning, klädesplagg, skor, väskor och mer
  • rekonstruera rättsmedicinska ansiktsdrag hos en sjuk person
  • skapa 3D-modeller av ett objekt från en bild, skapa nya objekt som ett 3D-punktmoln, modellera rörelsemönster i en video
  • Visa upp utseendet på en person med växlande ålder
  • Dataförstärkning som att förbättra DNN-klassificeraren
  • Måla en saknad funktion på en karta, förbättra gatuvyer, överför kartstilar och mer
  • Producera bilder, byt ut ett bildsöksystem osv.
  • Generera styringångar till ett icke-linjärt dynamiskt system genom att använda en GAN-variation
  • Analysera effekterna av klimatförändringar på ett hus
  • Skapa en persons ansikte genom att ta deras röst som input
  • Skapa nya molekyler för flera proteinmål vid cancer, fibros och inflammation
  • Animera gifs från en vanlig bild

Det finns många fler tillämpningar av GAN inom olika områden, och deras användning ökar. Det finns dock flera fall av dess missbruk också. GAN-baserade mänskliga bilder har använts för olyckliga användningsfall som att producera falska videor och bilder.

GAN kan också användas för att skapa realistiska foton och profiler av människor på sociala medier som aldrig har funnits på jorden. Andra angående missbruk av GNA är skapandet av falsk pornografi utan samtycke från utvalda individer, distribution av förfalskade videor av politiska kandidater, och så vidare.

Även om GNA kan vara en välsignelse på många områden, kan deras missbruk också vara katastrofalt. Därför måste korrekta riktlinjer tillämpas för dess användning.

Slutsats

GAN är ett anmärkningsvärt exempel på modern teknik. Det ger ett unikt och bättre sätt att generera data och hjälpa till med funktioner som visuell diagnos, bildsyntes, forskning, dataförstärkning, konst och vetenskap och många fler.

Du kanske också är intresserad av Låg kod och ingen kod maskininlärningsplattformar för att bygga innovativa applikationer.