Generativa kontradiktoriska nätverk, ofta förkortade som GAN, representerar en banbrytande teknologi med omfattande potentiella användningsområden. Från att digitalt åldra fotografier och utvidga röstomfång till att möjliggöra innovationer inom medicin och andra branscher, är deras påverkan mångsidig.
Denna avancerade teknik kan vara ett kraftfullt verktyg för att förbättra både produkter och tjänster. Den erbjuder även möjligheter att förbättra bildkvaliteten och bevara dyrbara minnen.
Medan GAN ger många fördelar, finns det även en oroande sida som väcker frågor.
Men vad är egentligen GAN och hur fungerar det?
I denna artikel kommer jag att förklara vad ett GAN är, dess funktionssätt och de breda tillämpningarna.
Låt oss nu dyka in i detaljerna!
Vad är ett generativt motståndsnätverk?
Ett generativt kontradiktoriskt nätverk (GAN) är en maskininlärningsstruktur som innefattar två neurala nätverk som konkurrerar för att skapa mer precisa resultat, som kan vara allt från bilder och unik musik till digitala teckningar.
GAN, som först lanserades år 2014 av dataforskaren och ingenjören Ian Goodfellow och hans team, är unika neurala nätverk som kan generera ny data som liknar den som de har tränats på. Konkurrensen mellan nätverken kan beskrivas som ett nollsummespel, där en part förlorar på den andra partens bekostnad.
Ursprungligen introducerades GAN som en generativ modell för maskininlärning, främst inom oövervakad inlärning. Dock är GAN även användbara inom områden som helt övervakad inlärning, semi-övervakad inlärning och förstärkningsinlärning.
De två konkurrerande delarna i ett GAN är:
Generatorn: Ett konvolutionellt neuralt nätverk som skapar artificiell data som liknar den faktiska.
Diskriminatorn: Ett dekonvolutionellt neuralt nätverk som identifierar konstgjort skapad data.
Grundläggande koncept
För att öka förståelsen för GAN, låt oss först se över några viktiga relaterade termer.
Maskininlärning (ML)
Maskininlärning är en gren inom artificiell intelligens (AI) som fokuserar på att utveckla modeller som använder data för att förbättra prestanda och precision vid uppgiftshantering, beslutsfattande eller prognoser.
ML-algoritmer skapar modeller baserade på träningsdata och förbättras genom kontinuerlig inlärning. Dessa algoritmer används inom många områden som datorseende, automatiserat beslutsfattande, e-postfiltrering, medicin, bankväsende, datakvalitet, cybersäkerhet, taligenkänning och rekommendationssystem.
Diskriminativ modell
Inom maskininlärning fungerar en diskriminativ modell som en klassificerare som skiljer mellan flera nivåer eller två olika kategorier.
Ett exempel är att särskilja mellan olika frukter eller djur.
Generativ modell
I generativa modeller skapas realistiska nya bilder genom slumpmässiga exempel. Modellen lär sig från verkliga bilder av olika objekt eller varelser för att generera sina egna, liknande men ändå unika skapelser. Det finns huvudsakligen två typer:
Varierande autokodare: Dessa använder separata neurala nätverk som kodare och avkodare. En realistisk bild passerar genom en kodare och representeras som vektorer i ett latent utrymme. En avkodare använder sedan dessa vektorer för att generera realistiska repliker. I början kan bildkvaliteten vara låg, men den förbättras allt eftersom avkodaren blir mer utvecklad, vilket gör att kodaren kan ignoreras.
Generativa kontradiktoriska nätverk (GAN): Som tidigare beskrivits, är GAN ett djupt neuralt nätverk som kan skapa ny data liknande den data det har matats med. Detta faller inom ramen för oövervakad maskininlärning, en av de inlärningsmetoder som nämns nedan.
Övervakad inlärning
Vid övervakad inlärning tränas en maskin med hjälp av noggrant etiketterad data. Det innebär att den information som används redan är märkt med de korrekta svaren. Maskinen får exempeldata för att analysera den och producera korrekta resultat baserat på de givna etiketterna.
Oövervakad inlärning
Oövervakad inlärning handlar om att träna en maskin med data som inte är etiketterad eller klassificerad. Det låter maskininlärningsalgoritmen arbeta utan vägledning och kategorisera oordnad data utifrån likheter, skillnader och mönster, utan någon tidigare träning.
GAN är involverade i att genomföra oövervakad inlärning i ML. Modellen använder två delar som automatiskt kan identifiera och lära sig mönster från indata. Dessa två delar är generatorn och diskriminatorn.
Låt oss utforska dem lite mer.
Delar av ett GAN
Termen ”kontradiktorisk” i GAN kommer från de två delarna – generatorn och diskriminatorn – som konkurrerar med varandra. Detta görs för att fånga, analysera och replikera variationer i en datauppsättning. Låt oss titta närmare på dessa två delar av ett GAN.
Generator
En generator är ett neuralt nätverk som kan lära sig och skapa falsk data, som bilder och ljud, som ser verklighetstrogna ut. Det används under träningen och förbättras med kontinuerlig inlärning.
Den data som genereras av generatorn används som ett negativt exempel för den andra delen – diskriminatorn. Generatorn tar en slumpmässig vektor av fast längd som indata för att producera ett exempelresultat. Målet är att presentera resultatet för diskriminatorn så att den kan bedöma om det är äkta eller falskt.
Generatorn tränas med hjälp av följande komponenter:
- Slumpmässiga inmatningsvektorer
- Ett generatornätverk som omvandlar en slumpmässig inmatning till en datainstans
- Ett diskriminatornätverk som klassificerar genererad data
- En generatorförlust som straffar generatorn om den inte lyckas lura diskriminatorn
Generatorn fungerar som en ”tjuv” som efterliknar och skapar verklighetstrogen data för att lura diskriminatorn. Det försöker undvika diverse kontroller. Även om det kan misslyckas i de tidiga stadierna, blir det gradvis bättre tills det genererar högkvalitativ och verklighetstrogen data som klarar testerna. Efter att denna förmåga har uppnåtts, kan man använda generatorn separat utan en diskriminator.
Diskriminator
En diskriminator är också ett neuralt nätverk som skiljer mellan en falsk och en äkta bild eller annan typ av data. Liksom generatorn, spelar det en viktig roll under träningsfasen.
Det fungerar som ”polisen” som fångar ”tjuven” (generatorns falska data). Målet är att upptäcka felaktiga bilder och avvikelser i datainstanser.
Som tidigare nämnts lär sig generatorn och blir bättre tills den når en punkt där den självständigt kan 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 en falsk bild. Det innebär att det är möjligt att endast använda generatorn.
Hur fungerar ett GAN?
Ett generativt kontradiktoriskt nätverk (GAN) involverar tre huvudkomponenter:
- En generativ modell som beskriver hur data skapas.
- En kontradiktorisk miljö där modellen tränas.
- Djupa neurala nätverk som används som AI-algoritmer för träning.
GAN:s två neurala nätverk – generatorn och diskriminatorn – spelar ett konkurrensspel. Generatorn tar emot indata som ljudfiler eller bilder för att skapa liknande data, medan diskriminatorn utvärderar äktheten av dessa. Diskriminatorn avgör om den data som granskas är verklig eller inte.
Antag exempelvis att du vill kontrollera om en bild är äkta eller falsk. Då kan du mata in handgenererad data till generatorn som i sin tur skapar nya, replikerade bilder som utdata.
Generatorns mål är att alla bilder den genererar ska bedömas som autentiska trots att de är falska. Den försöker skapa tveksamma resultat för att undvika att bli upptäckt.
Därefter skickas dessa utdata till diskriminatorn tillsammans med en uppsättning riktiga bilder för att avgöra om dessa bilder är autentiska eller inte. Diskriminatorn hjälper till att skilja mellan verklig och falsk data och motarbetar därmed generatorn.
Diskriminatorn tar emot både falsk och verklig data och returnerar en sannolikhet på 0 eller 1, där 1 representerar autenticitet och 0 representerar falskhet.
Det finns två återkopplingsslingor i denna process:
- Generatorn har en återkopplingsslinga med diskriminatorn
- Diskriminatorn har en återkopplingsslinga med en uppsättning riktiga bilder
GAN-träningen fungerar genom att både generatorn och diskriminatorn tränas kontinuerligt. Generatorn lär sig genom att skicka falsk data, medan diskriminatorn lär sig att förbättra detekteringen. Båda enheterna är dynamiska.
Diskriminatorn är ett faltningsnätverk som klassificerar inkommande bilder och fungerar som en binomisk klassificerare som märker bilder som falska eller äkta.
Å andra sidan är generatorn ett omvänt faltningsnätverk som använder slumpmässiga dataprover för att skapa bilder. Diskriminatorn granskar datan med nedsamplingstekniker, som max-pooling.
Båda nätverken optimerar en motsatt och distinkt förlustfunktion eller ett objektiv i ett konkurrensspel. Deras förluster gör att de pressar varandra ännu hårdare.
Typer av GAN
Det finns flera olika varianter av generativa kontradiktoriska nätverk baserat på implementering. Här är de huvudsakliga typerna av GAN som används i praktiken:
- Villkorlig GAN (CGAN): En djupinlärningsteknik som använder specifika villkorliga parametrar för att hjälpa till att skilja mellan verklig och falsk data. Den inkluderar även en extra parameter, ”y”, i generatorfasen för att generera motsvarande data. Denna inmatning är etiketterad och matas till diskriminatorn för att den ska kunna kontrollera om datan är äkta eller falsk.
- Vanilla GAN: En enkel GAN-typ där diskriminatorn och generatorn är enklare flerskiktiga perceptroner. Algoritmerna är enkla och optimerar den matematiska ekvationen med hjälp av stokastisk gradientnedstigning.
- Djup konvolutionell GAN (DCGAN): En populär och framgångsrik GAN-implementering. DCGAN använder ConvNets istället för flerskiktsperceptroner. Dessa ConvNets tillämpas utan att använda max-pooling-tekniker eller helt anslutna lager.
- Super Resolution GAN (SRGAN): En GAN-implementering som använder ett djupt neuralt nätverk tillsammans med ett kontradiktoriskt nätverk för att skapa högkvalitativa bilder. SRGAN är särskilt användbart för att effektivt skala upp ursprungliga bilder med låg upplösning, vilket förbättrar detaljerna och minimerar fel.
- Laplacian Pyramid GAN (LAPGAN): En inverterbar och linjär representation som innehåller 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 ofta på grund av dess högkvalitativa bilder. Bilderna nedsamplas vid varje pyramidlager och skalas sedan upp igen, där idéer får lite brus tills de uppnår den ursprungliga storleken.
Tillämpningar av GAN
Generativa kontradiktoriska nätverk används inom flera områden:
Vetenskap
GAN kan erbjuda ett mer exakt och snabbare sätt att modellera bildandet av högenergijets och utföra fysikexperiment. Dessa nätverk kan också tränas för att uppskatta flaskhalsar vid simuleringar inom partikelfysik som är resurskrävande.
GAN kan påskynda simuleringar och förbättra deras tillförlitlighet. Dessutom kan GAN bidra till studier av mörk materia genom att simulera gravitationslinser och förbättra astronomiska bilder.
Videospel
Även spelindustrin har börjat använda GAN för att skala upp 2D-data med låg upplösning från äldre spel. Det hjälper till att återskapa sådan data till 4k eller ännu högre upplösning genom bildträning. Därefter kan man nedsampla data eller bilder för att passa spelets verkliga upplösning.
Med korrekt träning kan GAN-modeller erbjuda skarpare och tydligare 2D-bilder med imponerande kvalitet jämfört med inbyggd data, samtidigt som detaljerna, som färger, bevaras.
Spel som använt GAN inkluderar bland andra Resident Evil Remake, Final Fantasy VIII och IX.
Konst och mode
GAN kan användas för att skapa konst, som att skapa bilder av individer som aldrig har funnits, att omvandla fotografier till målningar, skapa bilder av overkliga modemodeller och mycket mer. Det används även för ritningar som genererar virtuella skuggor och skisser.
Reklam
Att använda GAN för att skapa och producera annonser sparar tid och resurser. Exempelvis kan man, om man säljer smycken, skapa en tänkt modell som ser ut som en riktig människa med hjälp av GAN.
På så sätt kan man få modellen att bära smyckena och visa upp dem för kunderna utan att behöva hyra en modell. Man slipper även kostnader för transport, hyra av studio, fotografer och makeupartister.
Detta är särskilt fördelaktigt för växande företag som inte har råd att hyra en modell eller infrastruktur för reklamfilmer.
Ljudsyntes
Med hjälp av GAN kan man skapa ljudfiler från en samling ljudklipp. Detta kallas också generativt ljud. Det ska inte blandas ihop med Amazon Alexa, Apple Siri eller andra AI-röster där röstfragment sammanfogas väl och produceras vid behov.
Generativt ljud använder istället neurala nätverk för att studera de statistiska egenskaperna hos en ljudkälla. Därefter återger den dessa egenskaper direkt i ett givet sammanhang. Modellen visar hur talet ändras efter varje millisekund.
Överföringsinlärning
Avancerade studier inom överföringsinlärning använder GAN för att anpassa de senaste funktionerna inom djup förstärkningsinlärning. Här matas inbäddningar från källan och den specifika uppgiften till diskriminatorn för att avgöra sammanhanget. Resultatet sprids därefter tillbaka genom kodaren. På detta sätt fortsätter modellen att lära sig.
Andra tillämpningar av GAN inkluderar:
- Diagnos av total eller partiell synförlust genom att identifiera glaukom
- Visualisering av industriell design, inredning, kläder, skor, väskor och mer
- Rekonstruktion av rättsmedicinska ansiktsdrag hos en sjuk person
- Skapande av 3D-modeller av objekt från en bild, 3D-punktmoln, modellering av rörelsemönster i en video
- Visa hur en person skulle se ut med växlande ålder
- Dataförstärkning för att förbättra DNN-klassificerare
- Att måla en saknad funktion på en karta, förbättra gatuvyer, överföra kartstilar och mer
- Producera bilder, ersätta ett bildsöksystem osv.
- Generera styrsignaler till ett icke-linjärt dynamiskt system med hjälp av en GAN-variation
- Analysera effekterna av klimatförändringar på ett hus
- Skapa en persons ansikte baserat på deras röst
- Skapa nya molekyler för flera proteinmål vid cancer, fibros och inflammation
- Animera GIF-bilder från vanliga bilder
Det finns många fler tillämpningar av GAN inom olika områden och deras användning ökar. Dock finns det också flera fall av missbruk. GAN-baserade bilder av människor har använts för olyckliga syften som att skapa falska videor och bilder.
GAN kan även användas för att skapa realistiska fotografier och profiler på sociala medier av personer som inte existerar. Andra missbruk inkluderar att skapa falsk pornografi utan samtycke, sprida falska videor av politiska kandidater och så vidare.
Även om GAN kan vara fördelaktigt inom många områden, kan missbruk få katastrofala följder. 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 erbjuder ett unikt och bättre sätt att generera data och assisterar i funktioner som visuell diagnos, bildsyntes, forskning, dataförstärkning, konst och vetenskap samt mycket mer.
Du kanske också är intresserad av lågkod och maskininlärningsplattformar utan kod för att bygga innovativa applikationer.