AI 101

Vad Àr en Generative Adversarial Network (GAN)?

mm

Generative Adversarial Networks (GANs) är typer av neurala nätverksarkitekturer som kan generera ny data som följer lärd mönster. GANs kan användas för att generera bilder av mänskliga ansikten eller andra föremål, för att utföra text-till-bild-översättning, för att konvertera en typ av bild till en annan, och för att förbättra upplösningen på bilder (superupplösning) bland andra tillämpningar. Eftersom GANs kan generera helt ny data, är de i spetsen för många av de senaste AI-systemen, applikationerna och forskningen. Men hur fungerar GANs egentligen? Låt oss undersöka hur GANs fungerar och titta på några av deras primära användningsområden.

Definiering av Generativa Modeller och GANs

En GAN är ett exempel på en generativ modell. De flesta AI-modeller kan delas in i en av två kategorier: övervakade och oövervakade modeller. Övervakade inlärningsmodeller används vanligtvis för att diskriminera mellan olika kategorier av indata, för att klassificera. I kontrast används oövervakade modeller vanligtvis för att sammanfatta datadistributionen, ofta genom att lära en Gaussisk distribution av datat. Eftersom de lär sig datadistributionen kan de dra prover från denna lärd distribution och generera ny data.

Olika generativa modeller har olika metoder för att generera data och beräkna sannolikhetsfördelningar. Till exempel fungerar Naive Bayes-modellen genom att beräkna en sannolikhetsfördelning för de olika indatafunktionerna och den generativa klassen. När Naive Bayes-modellen ger en förutsägelse, beräknar den den mest sannolika klassen genom att ta sannolikheten för de olika variablerna och kombinera dem. Andra icke-djupinlärningsbaserade generativa modeller inkluderar Gaussiska Blandningsmodeller och Latent Dirichlet-allokering (LDA). Djupinlärningsbaserade generativa modeller inkluderar Restriktiva Boltzmann-maskiner (RBMs), Variationella Autoencoders (VAEs) och naturligtvis GANs.

Generativa Adversarial Networks föreslogs först av Ian Goodfellow 2014, och de förbättrades av Alec Redford och andra forskare 2015, vilket ledde till en standardiserad arkitektur för GANs. GANs består faktiskt av två olika nätverk som är sammankopplade. GANs består av två halvor: en genereringsmodell och en diskrimineringsmodell, också kallad genererator och diskriminatör.

GAN-arkitekturen

Generativa Adversarial Networks är byggda av en genereringsmodell och en diskrimineringsmodell som är sammankopplade. Genereringsmodellens uppgift är att skapa nya exempel på data, baserat på mönster som modellen har lärt sig från träningsdatat. Diskrimineringsmodellens uppgift är att analysera bilder (förutsatt att den tränas på bilder) och bestämma om bilderna är genererade/falska eller äkta.

De två modellerna är sammankopplade i en spelteoretisk stil. Genereringsmodellens mål är att producera bilder som bedrar sin motståndare – diskrimineringsmodellen. Samtidigt är diskrimineringsmodellens uppgift att övervinna sin motståndare, genereringsmodellen, och upptäcka de falska bilderna som genereringsmodellen producerar. Det faktum att modellerna är sammankopplade leder till en kapprustning där båda modellerna förbättras. Diskrimineringsmodellen får feedback om vilka bilder som var äkta och vilka som producerades av genereringsmodellen, medan genereringsmodellen får information om vilka av dess bilder som flaggades som falska av diskrimineringsmodellen. Båda modellerna förbättras under träningsprocessen, med målet att träna en genereringsmodell som kan producera falsk data som i princip är omöjlig att skilja från äkta data.

När en Gaussisk datadistribution har skapats under träningsprocessen kan genereringsmodellen användas. Genereringsmodellen matas initialt med en slumpmässig vektor, som den omvandlar baserat på den Gaussiska distributionen. Med andra ord initierar vektorn genereringen. När modellen är tränad kommer vektorutrymmet att vara en komprimerad version, eller representation, av datadistributionen. Den komprimerade versionen av datadistributionen kallas latent utrymme eller latenta variabler. Senare kan GAN-modellen sedan ta den latenta utrymmesrepresentationen och dra punkter från den, som kan ges till genereringsmodellen och användas för att generera ny data som är mycket lik träningsdatat.

Diskrimineringsmodellen matas med exempel från hela träningsdomänen, som består av både äkta och genererad data. De äkta exemplen finns i träningsdatasetet, medan den falska datan produceras av genereringsmodellen. Processen att träna diskrimineringsmodellen är exakt densamma som grundläggande binär klassificeringsmodellsträning.

GAN-träningsprocessen

Låt oss undersöka hela träningsprocessen för en hypotetisk bildgenereringssuppgift.

För att börja med tränas GAN med äkta bilder som en del av träningsdatasetet. Detta ställer diskrimineringsmodellen att skilja mellan genererade och äkta bilder. Det producerar också datadistributionen som genereringsmodellen kommer att använda för att producera ny data.

Genereringsmodellen tar emot en vektor med slumpmässiga numeriska data och omvandlar dem baserat på den Gaussiska distributionen, och returnerar en bild. Den genererade bilden, tillsammans med några äkta bilder från träningsdatasetet, matas in i diskrimineringsmodellen. Diskrimineringsmodellen kommer att ge en sannolikhetsbaserad förutsägelse om bildernas natur, och utdata ett värde mellan 0 och 1, där 1 vanligtvis är äkta bilder och 0 är en falsk bild.

Det finns en dubbel återkopplingsloop, eftersom diskrimineringsmodellen matas med sanningen om bilderna, medan genereringsmodellen får feedback om dess prestation av diskrimineringsmodellen.

De generativa och diskrimineringsmodellerna spelar ett nollsummespel med varandra. Ett nollsummespel är ett spel där vinsterna för ena sidan kommer på bekostnad av den andra sidan (summan är noll ex). När diskrimineringsmodellen kan skilja mellan äkta och falska exempel, görs inga ändringar i diskrimineringsmodellens parametrar. Men stora uppdateringar görs i modellens parametrar när den misslyckas med att skilja mellan äkta och falska bilder. Det omvända gäller för genereringsmodellen, den straffas (och dess parametrar uppdateras) när den misslyckas med att lura diskrimineringsmodellen, men annars är dess parametrar oförändrade (eller den belönas).

Idealt sett kan genereringsmodellen förbättra sin prestation till en punkt där diskrimineringsmodellen inte kan skilja mellan de falska och äkta bilderna. Det betyder att diskrimineringsmodellen kommer att ge sannolikheter på 50% för äkta och falska bilder, vilket innebär att de genererade bilderna bör vara omöjliga att skilja från de äkta bilderna. I praktiken når GANs vanligtvis inte denna punkt. Men genereringsmodellen behöver inte skapa perfekt lika bilder för att fortfarande vara användbar för de många uppgifter som GANs används för.

GAN-tillämpningar

GANs har ett antal olika tillämpningar, de flesta av dem kretsar kring generering av bilder och komponenter i bilder. GANs används vanligtvis i uppgifter där den erforderliga bildinformationen saknas eller är begränsad på något sätt, som en metod för att generera den erforderliga datan. Låt oss undersöka några av de vanliga användningsfallen för GANs.

Generering av nya exempel för dataset

GANs kan användas för att generera nya exempel för enkla bild-datasets. Om du bara har ett fåtal träningsexempel och behöver fler, kan GANs användas för att generera ny träningsdata för en bildklassificerare, som genererar nya träningsexempel i olika vinklar och riktningar.

Generering av unika mänskliga ansikten

Kvinnan på den här bilden finns inte. Bilden genererades av StyleGAN. Foto: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

När de är tillräckligt tränade kan GANs användas för att generera extremt realistiska bilder av mänskliga ansikten. Dessa genererade bilder kan användas för att hjälpa till att träna ansiktsigenkänningsystem.

Bild-till-bild-översättning

GANs är bra på bildöversättning. GANs kan användas för att färga svartvita bilder, översätta skisser eller teckningar till fotografiska bilder, eller konvertera bilder från dag till natt.

Text-till-bild-översättning

Text-till-bild-översättning är möjlig med hjälp av GANs. När de får text som beskriver en bild och den åtföljande bilden, kan en GAN tränas för att skapa en ny bild när den får en beskrivning av den önskade bilden.

Redigering och reparation av bilder

GANs kan användas för att redigera befintliga foton. GANs kan ta bort element som regn eller snö från en bild, men de kan också användas för att reparera gamla, skadade bilder eller korrupta bilder.

Superupplösning

Superupplösning är processen att ta en bild med låg upplösning och infoga fler pixlar i bilden, vilket förbättrar upplösningen på bilden. GANs kan tränas för att ta en bild och generera en högupplöst version av den.

GANs kan också användas för att reparera gamla, skadade bilder eller korrupta bilder. Superupplösning är processen att ta en bild med låg upplösning och infoga fler pixlar i bilden, vilket förbättrar upplösningen på bilden. GANs kan tränas för att ta en bild och generera en högupplöst version av den. GANs kan också användas för att reparera gamla, skadade bilder eller korrupta bilder.

Blogger och programmerare med specialomrÄden inom Machine Learning och Deep Learning Àmnen. Daniel hoppas pÄ att hjÀlpa andra att anvÀnda kraften frÄn AI för socialt vÀl.