- Terminologi (A til D)
- AI-kapacitetskontrol
- AI Ops
- Albummenteringer
- Aktiv ydeevne
- Autoencoder
- Tilbageformning
- Bayes sætning
- Big data
- Chatbot: En begyndervejledning
- Beregningstænkning
- Computer Vision
- Forvirringsmatrix
- Konvolutional neurale netværk
- Cybersecurity
- Datastof
- Data storytelling
- data, Science
- Datavarehousing
- Beslutningstræ
- Deepfakes
- Deep Learning
- Dyb forstærkning læring
- DevOps
- DevSecOps
- Diffusionsmodeller
- Digital tvilling
- Dimensionalitetsreduktion
- Terminologi (E til K)
- Edge AI
- Følelse AI
- Ensemble læring
- Etisk Hacking
- ETL
- Forklarelig AI
- Federeret læring
- FinOps
- Generativ AI
- Generativt kontradiktorisk netværk
- Generativ vs. diskriminerende
- Gradientforstærkning
- Gradient nedstigning
- Få-Shot læring
- Billedklassificering
- IT-drift (ITOps)
- Hændelsesautomatisering
- Influence Engineering
- K-Betyder Clustering
- K-Nærmeste Naboer
- Terminologi (L til Q)
- Terminologi (R til Z)
AI 101
Hvad er et Generative Adversarial Network (GAN)?
Indholdsfortegnelse
Generative Adversarial Networks (GAN'er) er typer af neurale netværksarkitekturer i stand til at generere nye data der er i overensstemmelse med lærte mønstre. GAN'er kan bruges til at generere billeder af menneskelige ansigter eller andre objekter, til at udføre tekst-til-billede oversættelse, til at konvertere en type billede til en anden og til at forbedre opløsningen af billeder (superopløsning) blandt andre applikationer. Fordi GAN'er kan generere helt nye data, er de i spidsen for mange banebrydende AI-systemer, applikationer og forskning. Men hvordan fungerer GAN'er præcist? Lad os undersøge, hvordan GAN'er fungerer, og se på nogle af deres primære anvendelser.
Definition af generative modeller og GAN'er
En GAN er et eksempel på en generativ model. De fleste AI-modeller kan opdeles i en af to kategorier: overvågede og ikke-overvågede modeller. Superviserede læringsmodeller bruges typisk til at skelne mellem forskellige kategorier af input, for at klassificere. I modsætning hertil bruges uovervågede modeller typisk til at opsummere fordelingen af data, ofte læring en Gaussisk fordeling af dataene. Fordi de lærer fordelingen af et datasæt, kan de trække prøver fra denne lærte distribution og generere nye data.
Forskellige generative modeller har forskellige metoder til at generere data og beregne sandsynlighedsfordelinger. For eksempel Naiv Bayes model opererer ved at beregne en sandsynlighedsfordeling for de forskellige inputfunktioner og den generative klasse. Når Naive Bayes-modellen giver en forudsigelse, beregner den den mest sandsynlige klasse ved at tage sandsynligheden for de forskellige variable og kombinere dem. Andre generative modeller for ikke-dyb læring omfatter Gaussiske blandingsmodeller og Latent Dirichlet Allocation (LDA). Dybt lænede-baserede generative modeller omfatter Begrænsede Boltzmann-maskiner (RBM'er), Variational Autoencoders (VAE'er), og selvfølgelig GAN'er.
Generative kontradiktoriske netværk var første gang foreslået af Ian Goodfellow i 2014, og de blev forbedret af Alec Redford og andre forskere i 2015, hvilket førte til en standardiseret arkitektur for GAN'er. GAN'er er faktisk to forskellige netværk forbundet. GAN'er er består af to halvdele: en generationsmodel og en diskriminationsmodel, også kaldet generatoren og diskriminatoren.
GAN-arkitekturen
Generative kontradiktoriske netværk er bygget ud af en generatormodel og en diskriminatormodel sat sammen. Generatormodellens opgave er at skabe nye eksempler på data, baseret på de mønstre, som modellen har lært af træningsdataene. Diskriminatormodellens opgave er at analysere billeder (forudsat at den er trænet på billeder) og afgøre, om billederne er genereret/falske eller ægte.
De to modeller er sat op mod hinanden, trænet på en spilteoretisk måde. Generatormodellens mål er at producere billeder, der bedrager dens modstander – diskriminatormodellen. I mellemtiden er diskriminatormodellens opgave at overvinde sin modstander, generatormodellen, og fange de falske billeder, som generatoren producerer. At modellerne stilles op mod hinanden resulterer i et våbenkapløb, hvor begge modeller forbedrer sig. Diskriminatoren får feedback om, hvilke billeder der var ægte, og hvilke billeder der blev produceret af generatoren, mens generatoren får information om, hvilke af dens billeder der blev markeret som falske af diskriminatoren. Begge modeller forbedres under træning, med det mål at træne en generationsmodel, der kan producere falske data, der dybest set ikke kan skelnes fra ægte, ægte data.
Når en gaussisk fordeling af data er blevet skabt under træningen, kan den generative model bruges. Generatormodellen tilføres i første omgang en tilfældig vektor, som den transformerer baseret på den Gaussiske fordeling. Med andre ord, vektoren frø til generationen. Når modellen er trænet, vil vektorrummet være en komprimeret version, eller repræsentation, af dataens Gauss-fordeling. Den komprimerede version af datafordelingen omtales som latent rum eller latente variable. Senere kan GAN-modellen så tage den latente rumrepræsentation og trække punkter fra den, som kan gives til generationsmodellen og bruges til at generere nye data, der i høj grad ligner træningsdataene.
Diskriminatormodellen fodres med eksempler fra hele træningsdomænet, som er opbygget af både reelle og genererede dataeksempler. De rigtige eksempler er indeholdt i træningsdatasættet, mens de falske data er produceret af den generative model. Processen med at træne diskriminatormodellen er nøjagtig den samme som grundlæggende, binær klassifikationsmodeltræning.
GAN træningsproces
Lad os se på det hele uddannelse behandle til en hypotetisk billedgenereringsopgave.
Til at begynde med trænes GAN ved at bruge ægte, rigtige billeder som en del af træningsdatasættet. Dette sætter diskriminatormodellen op til at skelne mellem genererede billeder og rigtige billeder. Det producerer også den datadistribution, som generatoren vil bruge til at producere nye data.
Generatoren tager en vektor af tilfældige numeriske data ind og transformerer dem baseret på Gauss-fordelingen, hvilket returnerer et billede. Disse genererede billeder, sammen med nogle ægte billeder fra træningsdatasættet, føres ind i diskriminatormodellen. Diskriminatoren vil give en probabilistisk forudsigelse om arten af de billeder, den modtager, og udsende en værdi mellem 0 og 1, hvor 1 typisk er autentiske billeder, og 0 er et falsk billede.
Der er en dobbelt feedback-loop i spil, da jorddiskriminatoren bliver fodret med billedernes grundsandhed, mens generatoren får feedback på sin ydeevne af diskriminatoren.
De generative modeller og diskriminationsmodellerne spiller et nulsumsspil med hinanden. Et nulsumsspil er et, hvor gevinsterne fra den ene side kommer på bekostning af den anden side (summen er, at begge handlinger er nul ex). Når diskriminatormodellen med succes er i stand til at skelne mellem ægte og falske eksempler, foretages der ingen ændringer i diskriminatorens parametre. Der bliver dog lavet store opdateringer af modellens parametre, når den ikke formår at skelne mellem ægte og falske billeder. Det omvendte er sandt for den generative model, den straffes (og dens parametre opdateres), når den ikke formår at narre den diskriminerende model, men ellers er dens parametre uændrede (eller den belønnes).
Ideelt set er generatoren i stand til at forbedre sin ydeevne til et punkt, hvor diskriminatoren ikke kan skelne mellem de falske og rigtige billeder. Dette betyder, at diskriminatoren altid vil gengive sandsynligheder på %50 for ægte og falske billeder, hvilket betyder, at de genererede billeder ikke skal kunne skelnes fra de ægte billeder. I praksis vil GAN'er typisk ikke nå dette punkt. Den generative model behøver dog ikke at skabe fuldstændig ens billeder for stadig at være brugbar til de mange opgaver, GAN'er bruges til.
GAN applikationer
GAN'er har en række forskellige applikationer, de fleste af dem drejer sig om generering af billeder og komponenter af billeder. GAN'er bruges almindeligvis i opgaver, hvor de påkrævede billeddata mangler eller er begrænset i en vis kapacitet, som en metode til at generere de nødvendige data. Lad os undersøge nogle af de almindelige anvendelsessager for GAN'er.
Generering af nye eksempler til datasæt
GAN'er kan bruges til at generere nye eksempler til simple billeddatasæt. Hvis du kun har en håndfuld træningseksempler og har brug for flere af dem, kan GAN'er bruges til at generere nye træningsdata til en billedklassifikator, hvilket genererer nye træningseksempler i forskellige orienteringer og vinkler.
Generering af unikke menneskelige ansigter
Når de er tilstrækkeligt trænede, kan GAN'er bruges til generere ekstremt realistiske billeder af menneskelige ansigter. Disse genererede billeder kan bruges til at hjælpe med at træne ansigtsgenkendelsessystemer.
Billede-til-billede oversættelse
GANer excel i billedoversættelse. GAN'er kan bruges til at farvelægge sort/hvide billeder, oversætte skitser eller tegninger til fotografiske billeder eller konvertere billeder fra dag til nat.
Tekst-til-billede oversættelse
Tekst-til-billede oversættelse er muligt gennem brug af GAN'er. Når forsynet med tekst, der beskriver et billede og det tilhørende billede, kan en GAN blive trænet i at skabe et nyt billede når forsynet med en beskrivelse af det ønskede billede.
Redigering og reparation af billeder
GAN'er kan bruges til at redigere eksisterende fotografier. GAN'er fjerne elementer som regn eller sne fra et billede, men de kan også bruges til reparere gamle, beskadigede billeder eller beskadigede billeder.
Superopløsning
Super opløsning er processen med at tage et billede i lav opløsning og indsætte flere pixels i billedet, hvilket forbedrer opløsningen af det billede. GAN'er kan trænes til at tage et billede generere en version i højere opløsning af billedet.
Blogger og programmør med speciale i Maskinelæring , Deep Learning emner. Daniel håber at kunne hjælpe andre med at bruge AI's kraft til socialt gode.
Du kan godt lide
Midjourney vs Stable Diffusion: The Battle of AI Image Generators
Semantisk billedredigering med høj præcision med EditGAN
Diffusionsmodeller i kunstig intelligens – alt hvad du behøver at vide
Forbedring af fotorealismen ved kørselssimuleringer med generative kontradiktoriske netværk
Sådan ved du, hvornår billedsyntesesystemer producerer ægte 'originalt' materiale
GAN som Face Renderer for 'traditionel' CGI