StyleGAN

En bild genererad av en StyleGAN som ser bedrägligt ut som ett porträtt av en ung kvinna. Denna bild genererades av en artificiell intelligens baserad på en analys av porträtt.

StyleGAN är ett generativt motståndsnätverk (GAN) som introducerades av Nvidia -forskare i december 2018 och gjordes tillgänglig i februari 2019.

StyleGAN är beroende av Nvidias CUDA- programvara, GPU:er och Googles TensorFlow , eller Meta AI :s PyTorch , som ersätter TensorFlow som det officiella implementeringsbiblioteket i senare StyleGAN-versioner. Den andra versionen av StyleGAN, kallad StyleGAN2, publicerades den 5 februari 2020. Den tar bort några av de karakteristiska artefakterna och förbättrar bildkvaliteten. Nvidia introducerade StyleGAN3, beskriven som en "aliasfri" version, den 23 juni 2021 och gjorde källan tillgänglig den 12 oktober 2021.

Historia

En direkt föregångare till StyleGAN-serien är Progressive GAN, publicerad 2017.

I december 2018 distribuerade Nvidia-forskare ett förtryck med tillhörande programvara som introducerade StyleGAN, ett GAN för att producera ett obegränsat antal (ofta övertygande) porträtt av falska mänskliga ansikten . StyleGAN kunde köras på Nvidias commodity GPU-processorer.

I februari 2019 använde Uber- ingenjören Phillip Wang programvaran för att skapa This Person Does Not Exist , som visade ett nytt ansikte på varje webbsida som laddades om. Wang själv har uttryckt häpnad, med tanke på att människor har utvecklats för att specifikt förstå mänskliga ansikten, att StyleGAN ändå kan "plocka isär alla relevanta egenskaper (av mänskliga ansikten) och komponera dem på ett sätt som är sammanhängande."

I september 2019 publicerade en webbplats som heter Generated Photos 100 000 bilder som en samling av stockfoton . Samlingen gjordes med hjälp av en privat dataset tagen i en kontrollerad miljö med liknande ljus och vinklar.

På samma sätt använde två fakulteter vid University of Washingtons Information School StyleGAN för att skapa What Face is Real? , som utmanade besökarna att skilja mellan ett falskt och ett riktigt ansikte sida vid sida. Fakulteten uppgav att avsikten var att "utbilda allmänheten" om existensen av denna teknik så att de kunde vara försiktiga med den, "precis som till slut blev de flesta medvetna om att du kan Photoshopa en bild".

Den andra versionen av StyleGAN, kallad StyleGAN2, publicerades den 5 februari 2020. Den tar bort några av de karakteristiska artefakterna och förbättrar bildkvaliteten.

2021 släpptes en tredje version som förbättrade överensstämmelsen mellan fina och grova detaljer i generatorn. Den här versionen, kallad "aliasfri", implementerades med pytorch .

Olaglig användning

I december 2019 tog Facebook ner ett nätverk av konton med falsk identitet och nämnde att några av dem hade använt profilbilder skapade med artificiell intelligens.

Arkitektur

Progressiv GAN

Progressive GAN är en metod för att träna GAN för storskalig bildgenerering stabilt, genom att växa en GAN-generator från liten till stor skala på ett pyramidiskt sätt. Liksom SinGAN bryter den ner generatorn som och diskriminatorn som .

används först bara Sedan läggs till för att nå det andra steget av GAN-spelet, för att generera 8x8 bilder, och så vidare, tills vi når ett GAN-spel för att generera 1024x1024 bilder.

För att undvika diskontinuitet mellan stadierna i GAN-spelet "blandas varje nytt lager in" (Figur 2 i papper). Till exempel, så här börjar det andra steget GAN-spelet:

  • Strax innan består GAN-spelet av att paret genererar och urskiljer 4x4-bilder.
  • Strax efter består GAN-spelet av paret genererar och urskiljer 8x8 bilder. Här är funktionerna bildupp- och nedsamplingsfunktioner, och är en inblandningsfaktor (ungefär som en alfa i bildkomposition) som glider smidigt från 0 till 1.

StyleGAN-1

Huvudarkitekturen för StyleGAN-1 och StyleGAN-2

StyleGAN-1 är designad som en kombination av progressiv GAN med neural stilöverföring .

Det viktigaste arkitektoniska valet av StyleGAN-1 är en progressiv tillväxtmekanism, liknande progressiv GAN. Varje genererad bild börjar som en konstant array och passerar upprepade gånger genom stilblock. Varje stilblock applicerar en "stil latent vektor" via affin transform ("adaptiv instansnormalisering"), liknande hur neural stilöverföring använder Gramian matris . Den lägger sedan till brus och normaliserar (subtrahera medelvärdet och dividera sedan med variansen).

Vid träningstillfället används vanligtvis bara en latent stilvektor per genererad bild, men ibland två ("mixing regularization") för att uppmuntra varje stilblock att självständigt utföra sin stilisering utan att förvänta sig hjälp från andra stilblock (eftersom de kan få en helt annan stil latent vektor).

Efter träning kan flera latenta stilvektorer matas in i varje stilblock. De som matas till de lägre lagren styr de storskaliga stilarna, och de som matas till de högre lagren styr de findetaljerade stilarna.

Stilmixning mellan två bilder kan också utföras. Kör först en gradientnedstigning för att hitta så att . Detta kallas "projicera en bild tillbaka till stilens latenta utrymme". Sedan matas till de lägre stilblocken och till de högre stilblocken, för att generera en sammansatt bild som har den storskaliga stilen , och den findetaljerade stilen för . Flera bilder kan också komponeras på detta sätt.

StyleGAN-2

StyleGAN-2 förbättrar StyleGAN-1 på två sätt.

En, den tillämpar stilens latenta vektor för att transformera faltningsskiktets vikter istället, vilket löser problemet med "blob". Problemet med "blob" är grovt sett för att användandet av stilens latenta vektor för att normalisera den genererade bilden förstör användbar information. Följaktligen lärde sig generatorn att skapa en "distraktion" av en stor klump, som absorberar det mesta av effekten av normalisering (något liknande att använda bloss för att distrahera en värmesökande missil ).

För det andra använder den kvarvarande anslutningar, vilket hjälper den att undvika fenomenet där vissa funktioner fastnar med pixlars intervall. Till exempel kan sömmen mellan två tänder ha fastnat vid pixlar som är delbara med 32, eftersom generatorn lärde sig att generera tänder under steg N-5, och följaktligen bara kunde generera primitiva tänder i det skedet, innan den skalade upp 5 gånger (därmed intervaller av 32).

Detta uppdaterades av StyleGAN-2-ADA ("ADA" står för "adaptiv"), som använder inverterbar dataförstärkning . Den justerar också mängden dataförstärkning som tillämpas genom att börja på noll och gradvis öka den tills en "överanpassad heuristik" når en målnivå, alltså namnet "adaptiv".

StyleGAN-3

StyleGAN-3 förbättrar StyleGAN-2 genom att lösa problemet med "texture sticking", som kan ses i de officiella videorna. De analyserade problemet med Nyquist-Shannons samplingssats och hävdade att lagren i generatorn lärde sig att utnyttja den högfrekventa signalen i pixlarna de arbetar på.

För att lösa detta föreslog de att införa strikta lågpassfilter mellan varje generators lager, så att generatorn tvingas arbeta på pixlarna på ett sätt som är troget de kontinuerliga signalerna de representerar, snarare än att arbeta på dem som enbart diskreta signaler. De införde ytterligare rotations- och translationsinvarians genom att använda fler signalfilter . Den resulterande StyleGAN-3 kan generera bilder som roterar och översätts smidigt och utan att strukturen fastnar.

Se även

externa länkar

Anteckningar