ciot Ce este o rețea generativă adversară (GAN)? - Unite.AI
Conectează-te cu noi
Masterclass AI:

AI 101

Ce este o rețea generativă adversară (GAN)?

mm
Actualizat on

Rețele contradictorii generative (GAN) sunt tipuri de arhitecturi de rețele neuronale capabile să genereze date noi care se conformează tiparelor învățate. GAN-urile pot fi folosite pentru a genera imagini ale fețelor umane sau ale altor obiecte, pentru a efectua traducerea text-în-imagine, pentru a converti un tip de imagine în altul și pentru a îmbunătăți rezoluția imaginilor (super rezoluție), printre alte aplicații. Deoarece GAN-urile pot genera date complet noi, ele sunt în fruntea multor sisteme, aplicații și cercetări de ultimă oră AI. Dar cum funcționează exact GAN-urile? Să explorăm modul în care funcționează GAN-urile și să aruncăm o privire la unele dintre utilizările lor principale.

Definirea modelelor generative și a GAN-urilor

Un GAN este un exemplu de model generativ. Majoritatea modelelor AI pot fi împărțite în una din două categorii: modele supravegheate și nesupravegheate. Modelele de învățare supravegheată sunt utilizate în mod obișnuit pentru a discrimina diferitele categorii de intrări, pentru a clasifica. În schimb, modelele nesupravegheate sunt utilizate de obicei pentru a rezuma distribuția datelor, adesea învățând o distribuție gaussiană a datelor. Deoarece învață distribuția unui set de date, pot extrage mostre din această distribuție învățată și pot genera date noi.

Diferite modele generative au metode diferite de generare a datelor și de calculare a distribuțiilor de probabilitate. De exemplu, cel Model naiv Bayes operează prin calcularea unei distribuții de probabilitate pentru diferitele caracteristici de intrare și clasa generativă. Când modelul Naive Bayes redă o predicție, calculează clasa cea mai probabilă luând probabilitatea diferitelor variabile și combinându-le împreună. Alte modele generative non-deep learning includ modelele de amestec gaussian și alocarea dirichletului latent (LDA). Modele generative bazate pe înclinare profundă include Mașini Boltzmann cu restricții (RBM), Autoencodere variaționale (VAE)și, desigur, GAN-uri.

Rețelele adversare generative au fost propus pentru prima dată de Ian Goodfellow în 2014și au fost îmbunătățite de Alec Redford și de alți cercetători în 2015, ceea ce a condus la o arhitectură standardizată pentru GAN. GAN-urile sunt de fapt două rețele diferite unite între ele. GAN-urile sunt compus din doua jumatati: un model de generație și un model de discriminare, denumit și generator și discriminator.

Arhitectura GAN

Rețelele adversare generative sunt construit dintr-un model generator și un model discriminator împreună. Sarcina modelului generator este de a crea noi exemple de date, pe baza tiparelor pe care modelul le-a învățat din datele de antrenament. Sarcina modelului discriminator este de a analiza imaginile (presupunând că este antrenat pe imagini) și de a determina dacă imaginile sunt generate/false sau autentice.

Cele două modele sunt puse unul împotriva celuilalt, antrenate într-o manieră teoretică a jocului. Scopul modelului generator este de a produce imagini care să-și înșele adversarul – modelul discriminator. Între timp, misiunea modelului discriminator este să-și depășească adversarul, modelul generator, și să prindă imaginile false pe care le produce generatorul. Faptul că modelele sunt puse unul împotriva celuilalt duce la o cursă înarmărilor în care ambele modele se îmbunătățesc. Discriminatorul primește feedback despre ce imagini au fost autentice și care au fost produse de generator, în timp ce generatorul primește informații despre care dintre imaginile sale au fost semnalate ca false de către discriminator. Ambele modele se îmbunătățesc în timpul antrenamentului, cu scopul de a antrena un model de generație care poate produce date false care sunt practic imposibil de distins de datele reale, autentice.

Odată ce o distribuție gaussiană a datelor a fost creată în timpul antrenamentului, modelul generativ poate fi utilizat. Modelul generator este alimentat inițial cu un vector aleatoriu, pe care îl transformă pe baza distribuției gaussiene. Cu alte cuvinte, vectorul însămânță generația. Când modelul este antrenat, spațiul vectorial va fi o versiune comprimată, sau o reprezentare, a distribuției gaussiene a datelor. Versiunea comprimată a distribuției de date este denumită spațiu latent sau variabile latente. Mai târziu, modelul GAN ​​poate prelua reprezentarea spațiului latent și poate extrage puncte din aceasta, care pot fi date modelului de generare și utilizate pentru a genera date noi care sunt foarte asemănătoare cu datele de antrenament.

Modelul discriminator este alimentat cu exemple din întregul domeniu de instruire, care este format din exemple de date reale și generate. Exemplele reale sunt conținute în setul de date de antrenament, în timp ce datele false sunt produse de modelul generativ. Procesul de instruire a modelului discriminator este exact același cu antrenamentul de bază cu model de clasificare binară.

Procesul de instruire GAN

Să ne uităm la întreg pregătire proces pentru o sarcină ipotetică de generare a imaginii.

Pentru început, GAN este antrenat folosind imagini autentice, reale, ca parte a setului de date de antrenament. Acest lucru stabilește modelul de discriminare pentru a distinge între imaginile generate și imaginile reale. De asemenea, produce distribuția datelor pe care generatorul o va folosi pentru a produce date noi.

Generatorul preia un vector de date numerice aleatoare și le transformă pe baza distribuției gaussiene, returnând o imagine. Aceste imagini generate, alături de unele imagini autentice din setul de date de antrenament, sunt introduse în modelul discriminator. Discriminatorul va reda o predicție probabilistică despre natura imaginilor pe care le primește, arătând o valoare între 0 și 1, unde 1 este de obicei imagini autentice și 0 este o imagine falsă.

Există o buclă de feedback dublă în joc, deoarece discriminatorul de la sol este alimentat cu adevărul de la sol al imaginilor, în timp ce generatorul primește feedback cu privire la performanța sa de către discriminator.

Modelele generative și de discriminare joacă un joc cu sumă zero unul cu celălalt. Un joc cu sumă zero este unul în care câștigurile unei părți vin în detrimentul celeilalte părți (suma este că ambele acțiuni este zero ex). Atunci când modelul discriminatorului este capabil să distingă cu succes între exemplele reale și cele false, nu se fac modificări parametrilor discriminatorului. Cu toate acestea, se fac actualizări mari ale parametrilor modelului atunci când nu reușește să facă distincția între imaginile reale și cele false. Inversul este valabil pentru modelul generativ, este penalizat (și parametrii săi actualizați) atunci când nu reușește să păcălească modelul discriminativ, dar în caz contrar parametrii săi rămân neschimbați (sau sunt recompensați).

În mod ideal, generatorul este capabil să-și îmbunătățească performanța până la un punct în care discriminatorul nu poate discerne între imaginile false și cele reale. Aceasta înseamnă că discriminatorul va reda întotdeauna probabilități de %50 pentru imaginile reale și false, ceea ce înseamnă că imaginile generate ar trebui să nu se distingă de imaginile autentice. În practică, GAN-urile de obicei nu vor ajunge în acest punct. Cu toate acestea, modelul generativ nu trebuie să creeze imagini perfect similare pentru a fi în continuare util pentru numeroasele sarcini pentru care sunt folosite GAN-urile.

Aplicații GAN

GAN-urile au o serie de aplicații diferite, cele mai multe dintre ele gravitând în jurul generării de imagini și componente ale imaginilor. GAN-urile sunt utilizate în mod obișnuit în sarcinile în care datele de imagine necesare lipsesc sau sunt limitate într-o anumită capacitate, ca metodă de generare a datelor necesare. Să examinăm câteva dintre cazurile comune de utilizare pentru GAN-uri.

Generarea de noi exemple pentru seturi de date

GAN-urile pot fi folosite pentru a genera noi exemple pentru seturi de date de imagini simple. Dacă aveți doar o mână de exemple de antrenament și aveți nevoie de mai multe dintre ele, GAN-urile ar putea fi folosite pentru a genera noi date de antrenament pentru un clasificator de imagini, generând noi exemple de antrenament la diferite orientări și unghiuri.

Generarea de chipuri umane unice

Femeia din această fotografie nu există. Imaginea a fost generată de StyleGAN. Foto: Owlsmcgee prin Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Când sunt suficient de instruiți, GAN-urile pot fi folosite generează imagini extrem de realiste ale fețelor umane. Aceste imagini generate pot fi folosite pentru a ajuta la antrenarea sistemelor de recunoaștere a feței.

Traducere imagine în imagine

Gans excelează la traducerea imaginilor. GAN-urile pot fi folosite pentru a colora imagini alb-negru, pentru a traduce schițe sau desene în imagini fotografice sau pentru a converti imagini din zi în noapte.

Traducere text în imagine

Traducerea text-to-image este posibil prin utilizarea GAN-urilor. Atunci când este prevăzut cu text care descrie o imagine și acea imagine însoțitoare, un GAN poate fi instruit pentru a crea o nouă imagine atunci când este prevăzut cu o descriere a imaginii dorite.

Editarea și repararea imaginilor

GAN-urile pot fi folosite pentru a edita fotografiile existente. GAN-uri îndepărtați elemente precum ploaia sau zăpada dintr-o imagine, dar pot fi și obișnuiți reparați imaginile vechi, deteriorate sau corupte. 

Super Rezoluție

Super rezoluția este procesul prin care se face o imagine cu rezoluție scăzută și se inserează mai mulți pixeli în imagine, îmbunătățind rezoluția acelei imagini. GAN-urile pot fi antrenate să facă o imagine și generați o versiune cu rezoluție mai mare a acelei imagini. 

Blogger și programator cu specialități în Invatare mecanica și Invatare profunda subiecte. Daniel speră să-i ajute pe alții să folosească puterea AI pentru binele social.