stub Vad är ett Generative Adversarial Network (GAN)? - Unite.AI
Anslut dig till vårt nätverk!

AI 101

Vad är ett Generative Adversarial Network (GAN)?

mm
Uppdaterad on

Generativa kontroversiella nätverk (GAN) är typer av neurala nätverksarkitekturer kan generera ny data som överensstämmer med inlärda mönster. GAN:er 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 av bilder (superupplösning) bland andra applikationer. Eftersom GAN:er kan generera helt ny data, är de i spetsen för många banbrytande AI-system, applikationer och forskning. Men exakt hur fungerar GAN? Låt oss utforska hur GAN fungerar och ta en titt på några av deras primära användningsområden.

Definiera generativa modeller och GAN

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. Modeller för övervakad inlärning används vanligtvis för att särskilja olika kategorier av input, för att klassificera. Däremot används oövervakade modeller vanligtvis för att sammanfatta distributionen av data, ofta inlärning en Gaussisk fördelning av data. Eftersom de lär sig fördelningen av en datamängd kan de hämta prover från denna inlärda distribution och generera ny data.

Olika generativa modeller har olika metoder för att generera data och beräkna sannolikhetsfördelningar. Till exempel Naiv Bayes modell fungerar genom att beräkna en sannolikhetsfördelning för de olika indatafunktionerna och den generativa klassen. När den naiva 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 generativa modeller för icke-djupinlärning inkluderar Gaussiska blandningsmodeller och Latent Dirichlet Allocation (LDA). Deep leaning-baserade generativa modeller innefattar Begränsade Boltzmann-maskiner (RBM), Variativa autokodare (VAE), och naturligtvis GAN.

Generativa kontradiktoriska nätverk var först föreslogs av Ian Goodfellow 2014, och de förbättrades av Alec Redford och andra forskare 2015, vilket ledde till en standardiserad arkitektur för GAN. GAN är faktiskt två olika nätverk som är sammanfogade. GAN är består av två halvor: en generationsmodell och en diskrimineringsmodell, även kallad generator och diskriminator.

GAN-arkitekturen

Generativa kontradiktoriska nätverk är byggd av en generatormodell och en diskriminatormodell tillsammans. Generatormodellens uppgift är att skapa nya exempel på data, baserat på de mönster som modellen har lärt sig från träningsdatan. Diskriminatormodellens jobb är att analysera bilder (förutsatt att den är tränad på bilder) och avgöra om bilderna är genererade/falska eller äkta.

De två modellerna ställs mot varandra, tränade på ett spelteoretiskt sätt. Generatormodellens mål är att producera bilder som lurar dess motståndare – diskriminatormodellen. Under tiden är diskriminatormodellens uppgift att övervinna sin motståndare, generatormodellen, och fånga de falska bilderna som generatorn producerar. Att modellerna ställs mot varandra resulterar i en kapprustning där båda modellerna förbättras. Diskriminatorn får feedback om vilka bilder som var äkta och vilka bilder som producerades av generatorn, medan generatorn matas med information om vilka av dess bilder som flaggats som falska av diskriminatorn. Båda modellerna förbättras under träning, med målet att träna en generationsmodell som kan producera falska data som i princip inte går att skilja från verklig, äkta data.

När en gaussisk fördelning av data har skapats under träningen kan den generativa modellen användas. Generatormodellen matas initialt med en slumpmässig vektor, som den transformerar baserat på den Gaussiska fördelningen. Med andra ord, vektorn såddar generationen. När modellen är tränad kommer vektorutrymmet att vara en komprimerad version, eller representation, av datans Gaussiska distribution. Den komprimerade versionen av datadistributionen kallas latent utrymme eller latenta variabler. Senare kan GAN-modellen sedan ta den latenta rymdrepresentationen och dra punkter från den, som kan ges till genereringsmodellen och användas för att generera ny data som i hög grad liknar träningsdatan.

Diskriminatormodellen matas med exempel från hela träningsdomänen, som är uppbyggd av både verkliga och genererade dataexempel. De verkliga exemplen finns i träningsdatasetet, medan de falska data produceras av den generativa modellen. Processen att träna diskriminatormodellen är exakt densamma som grundläggande, binär klassificeringsmodellutbildning.

GAN utbildningsprocess

Låt oss titta på helheten utbildning process för en hypotetisk bildgenereringsuppgift.

Till att börja med tränas GAN med äkta, verkliga bilder som en del av träningsdataset. Detta ställer in diskrimineringsmodellen för att skilja mellan genererade bilder och verkliga bilder. Den producerar också datadistributionen som generatorn kommer att använda för att producera ny data.

Generatorn tar in en vektor av slumpmässiga numeriska data och transformerar dem baserat på den Gaussiska fördelningen och returnerar en bild. Dessa genererade bilder, tillsammans med några äkta bilder från träningsdatauppsättningen, matas in i diskriminatormodellen. Diskriminatorn kommer att göra en probabilistisk förutsägelse om vilken typ av bilder den tar emot, och mata ut ett värde mellan 0 och 1, där 1 är typiskt autentiska bilder och 0 är en falsk bild.

Det finns en dubbel återkopplingsslinga i spel, eftersom markdiskriminatorn matas med grundsanningen för bilderna, medan generatorn får feedback om dess prestanda av diskriminatorn.

De generativa modellerna och diskrimineringsmodellerna spelar ett nollsummespel med varandra. Ett nollsummespel är ett där vinsterna från ena sidan kommer på bekostnad av den andra sidan (summan är att båda åtgärderna är noll ex). När diskriminatormodellen framgångsrikt kan skilja mellan verkliga och falska exempel, görs inga ändringar av diskriminatorns parametrar. Det görs dock stora uppdateringar av modellens parametrar när den inte lyckas skilja mellan riktiga och falska bilder. Det omvända är sant för den generativa modellen, den straffas (och dess parametrar uppdateras) när den misslyckas med att lura den diskriminerande modellen, men annars är dess parametrar oförändrade (eller så belönas den).

Idealiskt kan generatorn förbättra sin prestanda till en punkt där diskriminatorn inte kan skilja mellan de falska och riktiga bilderna. Detta innebär att diskriminatorn alltid kommer att återge sannolikheter på %50 för verkliga och falska bilder, vilket innebär att de genererade bilderna inte ska kunna skiljas från de äkta bilderna. I praktiken kommer GAN vanligtvis inte att nå denna punkt. Den generativa modellen behöver dock inte skapa perfekt lika bilder för att fortfarande vara användbar för de många uppgifter som GAN används för.

GAN-applikationer

GAN har ett antal olika applikationer, de flesta kretsar kring generering av bilder och komponenter i bilder. GAN:er används vanligtvis i uppgifter där den erforderliga bilddatan saknas eller är begränsad i viss kapacitet, som en metod för att generera den nödvändiga informationen. Låt oss undersöka några av de vanliga användningsfallen för GAN:er.

Genererar nya exempel för datamängder

GAN kan användas för att generera nya exempel för enkla bilddatauppsättningar. Om du bara har en handfull träningsexempel och behöver fler av dem kan GAN användas för att generera ny träningsdata för en bildklassificerare, vilket genererar nya träningsexempel i olika orienteringar och vinklar.

Skapar unika mänskliga ansikten

Kvinnan på det här fotot existerar inte. Bilden skapades av StyleGAN. Foto: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

När de är tillräckligt utbildade kan GAN:er användas till skapa extremt realistiska bilder av mänskliga ansikten. Dessa genererade bilder kan användas för att träna ansiktsigenkänningssystem.

Bild-till-bild översättning

GAN excel på bildöversättning. GAN kan användas för att färglägga svartvita bilder, översätta skisser eller ritningar till fotografiska bilder eller konvertera bilder från dag till natt.

Text-till-bild översättning

Text-till-bild översättning är möjligt genom användning av GAN. När den förses med text som beskriver en bild och den tillhörande bilden kan en GAN tränas i att skapa en ny bild när den förses med en beskrivning av den önskade bilden.

Redigera och reparera bilder

GAN kan användas för att redigera befintliga fotografier. GAN:er ta bort element som regn eller snö från en bild, men de kan också användas till reparera gamla, skadade bilder eller skadade bilder. 

Superupplösning

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

Bloggare och programmerare med specialiteter inom Maskininlärning och Deep Learning ämnen. Daniel hoppas kunna hjälpa andra att använda kraften i AI för socialt bästa.