Generative Adversarial Networks (GAN): o introducere

Rețelele adverse generative (GAN) sunt una dintre tehnologiile moderne care oferă mult potențial în multe cazuri de utilizare, de la crearea de imagini vechi și creșterea vocii până la furnizarea de diverse aplicații în industria medicală și în alte industrii.

Această tehnologie avansată vă poate ajuta să vă modelați produsele și serviciile. De asemenea, poate fi folosit pentru a îmbunătăți calitatea imaginii pentru a păstra amintirile.

În timp ce GAN-urile sunt un avantaj pentru mulți, unii consideră că este îngrijorător.

Dar ce este mai exact această tehnologie?

În acest articol, voi discuta ce este un GAN, cum funcționează și aplicațiile sale.

Deci, haideți să ne scufundăm!

Ce este o rețea adversară generativă?

O rețea adversă generativă (GAN) este un cadru de învățare automată format din două rețele neuronale care concurează pentru a produce predicții mai precise, cum ar fi imagini, muzică unică, desene și așa mai departe.

GANs a fost proiectat în 2014 de un informatician și inginer, Ian Goodfellow, și de unii dintre colegii săi. Sunt rețele neuronale profunde unice, capabile să genereze date noi similare cu cele pe care sunt antrenați. Ei concurează într-un joc cu sumă zero care are ca rezultat un agent pierde jocul în timp ce celălalt îl câștigă.

Inițial, GAN-urile au fost propuse ca model generativ pentru învățarea automată, în principal învățarea nesupravegheată. Dar GAN-urile sunt utile și pentru învățarea complet supravegheată, învățarea semi-supravegheată și învățarea prin întărire.

Cele două blocuri aflate în competiție într-un GAN sunt:

Generatorul: este o rețea neuronală convoluțională care produce artificial rezultate similare cu datele reale.

Discriminatorul: este o rețea neuronală deconvoluțională care poate identifica acele ieșiri care sunt create artificial.

Concepte cheie

Pentru a înțelege mai bine conceptul de GAN, să înțelegem rapid câteva concepte importante legate.

Învățare automată (ML)

Învățarea automată este o parte a inteligenței artificiale (AI) care implică învățarea și construirea de modele care utilizează date pentru a îmbunătăți performanța și acuratețea în timpul îndeplinirii sarcinilor sau luării de decizii sau predicții.

Algoritmii ML creează modele bazate pe date de antrenament, îmbunătățindu-se cu învățarea continuă. Acestea sunt utilizate în mai multe domenii, inclusiv viziunea computerizată, luarea automată a deciziilor, filtrarea e-mailului, medicină, servicii bancare, calitatea datelor, securitatea cibernetică, recunoașterea vorbirii, sistemele de recomandare și multe altele.

Model discriminator

În învățarea profundă și în învățarea automată, modelul discriminator funcționează ca un clasificator pentru a distinge între un set de niveluri sau două clase.

De exemplu, diferențierea între diferite fructe sau animale.

Modelul generativ

În modelele generative, eșantioanele aleatorii sunt considerate pentru a crea noi imagini realiste. Învață din imaginile reale ale unor obiecte sau lucruri vii pentru a-și genera propriile idei realiste, dar imitate. Aceste modele sunt de două tipuri:

Autoencodere variaționale: utilizează codificatoare și decodore care sunt rețele neuronale separate. Acest lucru funcționează deoarece o imagine realistă dată trece printr-un codificator pentru a reprezenta aceste imagini ca vectori într-un spațiu latent.

Apoi, un decodor este utilizat pentru a lua aceste interpretări pentru a produce câteva copii realiste ale acestor imagini. La început, calitatea imaginii ar putea fi scăzută, dar se va îmbunătăți după ce decodorul devine complet funcțional și puteți ignora codificatorul.

Rețele adverse generative (GAN): După cum sa discutat mai sus, un GAN este o rețea neuronală profundă capabilă să genereze date noi, similare din datele de intrare cu care este furnizat. Se înscrie în învățarea automată nesupravegheată, care este unul dintre tipurile de învățare automată discutate mai jos.

Învățare supravegheată

În cadrul instruirii supravegheate, o mașină este antrenată folosind date bine etichetate. Aceasta înseamnă că unele date vor fi deja etichetate cu răspunsul corect. Aici, aparatului i se oferă câteva date sau exemple pentru a permite algoritmului de învățare supravegheată să analizeze datele de antrenament și să producă un rezultat precis din aceste date etichetate.

  6 moduri de a câștiga carduri cadou Walmart gratuite

Învățare nesupravegheată

Învățarea nesupravegheată implică antrenarea unei mașini cu ajutorul unor date care nu sunt nici etichetate, nici clasificate. Permite algoritmului de învățare automată să lucreze pe acele date fără îndrumare. În acest tip de învățare, sarcina mașinii este să clasifice datele nesortate pe baza tiparelor, asemănărilor și diferențelor, fără instruire anterioară a datelor.

Deci, GAN-urile sunt asociate cu realizarea învățării nesupravegheate în ML. Are două modele care pot descoperi și învăța automat modelele din datele de intrare. Aceste două modele sunt generator și discriminator.

Să le înțelegem puțin mai mult.

Părți ale unui GAN

Termenul „adversarial” este inclus în GAN deoarece are două părți – generatorul și numitorul concurente. Acest lucru se face pentru a captura, analiza și replica variațiile de date dintr-un set de date. Să înțelegem mai bine aceste două părți ale unui GAN.

Generator

Un generator este o rețea neuronală capabilă să învețe și să genereze puncte de date false, cum ar fi imagini și sunet, care par realiste. Este folosit în antrenament și se îmbunătățește cu învățarea continuă.

Datele generate de generator sunt folosite ca exemplu negativ pentru cealaltă parte – numitorul pe care îl vom vedea în continuare. Generatorul ia ca intrare un vector aleator de lungime fixă ​​pentru a produce o ieșire de probă. Acesta își propune să prezinte rezultatul înaintea discriminatorului, astfel încât acesta să poată clasifica dacă este real sau fals.

Generatorul este antrenat cu următoarele componente:

  • Vectori de intrare zgomotoși
  • O rețea generatoare pentru a transforma o intrare aleatorie într-o instanță de date
  • O rețea de discriminare pentru a clasifica datele generate
  • O pierdere a generatorului pentru a penaliza generatorul, deoarece nu reușește să păcălească discriminatorul

Generatorul funcționează ca un hoț pentru a reproduce și a crea date realiste pentru a păcăli discriminatorul. Are scopul de a ocoli mai multe verificări efectuate. Deși poate eșua teribil în stadiile inițiale, continuă să se îmbunătățească până când generează date multiple realiste, de înaltă calitate și poate evita testele. După ce această capacitate este atinsă, puteți utiliza doar generatorul fără a necesita un discriminator separat.

Discriminator

Un discriminator este, de asemenea, o rețea neuronală care poate diferenția între o imagine falsă și cea reală sau alte tipuri de date. Ca un generator, joacă un rol vital în faza de antrenament.

Acționează ca poliția pentru a prinde hoțul (date false ale generatorului). Acesta are ca scop detectarea imaginilor false și a anomaliilor într-o instanță de date.

După cum sa discutat anterior, generatorul învață și continuă să se îmbunătățească pentru a ajunge la un punct în care devine autonom pentru a produce imagini de înaltă calitate care nu necesită un discriminator. Când datele de înaltă calitate de la generator sunt trecute prin discriminator, acesta nu mai poate face diferența între o imagine reală și cea falsă. Deci, ești bine să mergi doar cu generatorul.

Cum funcționează GAN?

Într-o rețea generativă adversară (GAN), trei lucruri implică:

  • Un model generativ pentru a descrie modul în care sunt generate datele.
  • Un cadru advers în care un model este antrenat.
  • Rețele neuronale profunde ca algoritmi AI pentru antrenament.

Cele două rețele neuronale ale GAN – generator și discriminator – sunt folosite pentru a juca un joc advers. Generatorul preia datele de intrare, cum ar fi fișiere audio, imagini etc., pentru a genera o instanță de date similară, în timp ce discriminatorul validează autenticitatea acelei instanțe de date. Acesta din urmă va determina dacă instanța de date pe care a examinat-o este reală sau nu.

De exemplu, doriți să verificați dacă o anumită imagine este reală sau falsă. Puteți utiliza intrări de date generate manual pentru a alimenta generatorul. Va crea imagini noi, replicate ca rezultat.

În timp ce face acest lucru, generatorul urmărește ca toate imaginile pe care le generează să fie considerate autentice, în ciuda faptului că sunt false. Vrea să creeze rezultate acceptabile pentru a minți și a evita să fie prins.

Apoi, această ieșire va merge la discriminator împreună cu un set de imagini din date reale pentru a detecta dacă aceste imagini sunt autentice sau nu. Funcționează negativ asupra generatorului, indiferent cât de mult încearcă să mimeze; discriminatorul va ajuta la distingerea datelor faptice de cele false.

  Ce înseamnă CTFU și când să-l folosești?

Discriminatorul va lua atât date false, cât și date reale pentru a returna o probabilitate de 0 sau 1. Aici, 1 reprezintă autenticitatea, în timp ce 0 reprezintă fals.

Există două bucle de feedback în acest proces:

  • Generatorul unește o buclă de feedback cu un discriminator
  • Discriminatorul unește o altă buclă de feedback cu un set de imagini reale

Un antrenament GAN funcționează deoarece atât generatorul, cât și discriminatorul sunt în curs de formare. Generatorul învață continuu prin trecerea unor intrări false, în timp ce discriminatorul va învăța să îmbunătățească detectarea. Aici, ambele sunt dinamice.

Discriminatorul este o rețea convoluțională capabilă să clasifice imaginile care îi sunt furnizate. Funcționează ca un clasificator binom pentru a eticheta imaginile ca fiind false sau reale.

Pe de altă parte, generatorul este ca o rețea convoluțională inversă care ia mostre aleatorii de date pentru a produce imagini. Dar, discriminatorul verifică datele cu ajutorul tehnicilor de downsampling, cum ar fi max-pooling.

Ambele rețele încearcă să optimizeze o pierdere adversă și diferită sau o funcție obiectivă într-un joc advers. Pierderile lor le permit să se împingă unul împotriva celuilalt și mai tare.

Tipuri de GAN

Rețelele adverse generative sunt de diferite tipuri în funcție de implementare. Iată principalele tipuri GAN utilizate în mod activ:

  • GAN condiționat (CGAN): este o tehnică de învățare profundă care implică parametri condiționali specifici pentru a ajuta la diferențierea între datele reale și cele false. De asemenea, include un parametru suplimentar – „y” în faza generatorului pentru a produce datele corespunzătoare. De asemenea, etichetele sunt adăugate la această intrare și sunt transmise discriminatorului pentru a-i permite acestuia să verifice dacă datele sunt autentice sau false.
  • Vanilla GAN: Este un tip GAN simplu în care discriminatorul și generatorul sunt perceptroni mai simpli și cu mai multe straturi. Algoritmii săi sunt simpli, optimizând ecuația matematică cu ajutorul coborârii gradientului stocastic.
  • Deep convolutional GAN ​​(DCGAN): este popular și considerat cea mai de succes implementare GAN. DCGAN este alcătuit mai degrabă din ConvNets decât din perceptroni multistrat. Aceste ConvNets sunt aplicate fără a utiliza tehnici precum max-pooling sau conectarea completă a straturilor.
  • Super Resolution GAN (SRGAN): Este o implementare GAN care utilizează o rețea neuronală profundă alături de o rețea adversară pentru a ajuta la producerea de imagini de înaltă calitate. SRGAN este util în special în mărirea eficientă a imaginilor originale cu rezoluție scăzută, astfel încât detaliile acestora să fie îmbunătățite și erorile să fie minimizate.
  • Laplacian Pyramid GAN (LAPGAN): Este o reprezentare inversabilă și liniară care include mai multe imagini cu trecere de bandă, care sunt plasate la opt spații unul de celălalt, cu reziduuri de joasă frecvență. LAPGAN folosește mai multe rețele de discriminare și generatoare și mai multe niveluri de piramidă laplaciană.

LAPGAN este utilizat pe scară largă deoarece produce o calitate a imaginii de top. Aceste imagini sunt eșantionate mai întâi la fiecare strat piramidal și apoi mărite la fiecare strat, unde ideile primesc un pic de zgomot până când capătă dimensiunea originală.

Aplicații ale GAN-urilor

Rețelele adverse generative sunt utilizate în diverse domenii, cum ar fi:

Ştiinţă

GAN-urile pot oferi o modalitate precisă și mai rapidă de a modela formarea unui jet de înaltă energie și de a efectua experimente de fizică. Aceste rețele pot fi, de asemenea, instruite pentru a estima blocajele în efectuarea de simulări pentru fizica particulelor care consumă resurse grele.

GAN-urile pot accelera simularea și pot îmbunătăți fidelitatea simulării. În plus, GAN-urile pot ajuta la studiul materiei întunecate prin simularea lentilelor gravitaționale și îmbunătățirea imaginilor astronomice.

Jocuri video

Lumea jocurilor video a folosit, de asemenea, GAN-urile pentru a mări datele bidimensionale de rezoluție joasă utilizate în jocurile video mai vechi. Vă va ajuta să recreați astfel de date în rezoluții 4k sau chiar mai mari prin antrenament de imagine. În continuare, puteți să prelevați datele sau imaginile pentru a le face potrivite pentru rezoluția reală a jocului video.

  Google ucide Cloud Print la sfârșitul anului 2020

Oferiți instruire adecvată modelelor dvs. GAN. Ele pot oferi imagini 2D mai clare și mai clare, de o calitate impresionantă, în comparație cu datele native, păstrând în același timp detaliile imaginii reale, cum ar fi culorile.

Jocurile video care au folosit GAN-uri includ Resident Evil Remake, Final Fantasy VIII și IX și multe altele.

Artă și modă

Puteți folosi GAN-urile pentru a genera artă, cum ar fi crearea de imagini ale unor indivizi care nu au existat niciodată, fotografii în vopsea, producerea de imagini cu modele de modă ireale și multe altele. Este, de asemenea, folosit în desene care generează umbre virtuale și schițe.

Publicitate

Utilizarea GAN-urilor pentru a crea și a produce anunțurile dvs. va economisi timp și resurse. După cum am văzut mai sus, dacă doriți să vă vindeți bijuteriile, puteți crea un model imaginar care arată ca un om real cu ajutorul GAN.

În acest fel, poți face modelul să poarte bijuteriile tale și le poți prezenta clienților tăi. Vă va scuti de angajarea unui model și de plata pentru el. Puteți chiar să eliminați cheltuielile suplimentare, cum ar fi plata transportului, închirierea unui studio, aranjarea fotografilor, artiștilor de machiaj etc.

Acest lucru vă va ajuta în mod semnificativ dacă sunteți o afacere în creștere și nu vă puteți permite să angajați un model sau să găzduiți o infrastructură pentru reclame.

Sinteza audio

Puteți crea fișiere audio dintr-un set de clipuri audio cu ajutorul GAN-urilor. Acesta este cunoscut și sub numele de sunet generativ. Vă rugăm să nu confundați acest lucru cu Amazon Alexa, Apple Siri sau alte voci AI în care fragmentele de voce sunt cusute bine și produse la cerere.

În schimb, audio generativ folosește rețele neuronale pentru a studia proprietățile statistice ale unei surse audio. Apoi, reproduce direct acele proprietăți într-un context dat. Aici, modelarea reprezintă modul în care vorbirea se schimbă după fiecare milisecundă.

Transfer de învățare

Studiile avansate de învățare prin transfer utilizează GAN-urile în alinierea celor mai recente spații de caracteristici, cum ar fi învățarea prin consolidare profundă. Pentru aceasta, înglobările sursei și sarcina vizată sunt transmise discriminatorului pentru a determina contextul. Apoi, rezultatul este propagat înapoi prin codificator. În acest fel, modelul continuă să învețe.

Alte aplicații ale GAN-urilor includ:

  • Diagnosticul pierderii totale sau parțiale a vederii prin detectarea imaginilor glaucomatoase
  • Vizualizați design industrial, design interior, articole de îmbrăcăminte, pantofi, genți și multe altele
  • reconstruiți trăsăturile faciale criminalistice ale unei persoane bolnave
  • creați modele 3D ale unui articol dintr-o imagine, produceți noi obiecte ca un nor de puncte 3D, modelați modele de mișcare într-un videoclip
  • Prezentați aspectul unei persoane cu vârsta în schimbare
  • Mărirea datelor, cum ar fi îmbunătățirea clasificatorului DNN
  • Pictați o caracteristică lipsă pe o hartă, îmbunătățiți vizualizările străzilor, transferați stilurile de cartografiere și multe altele
  • Produceți imagini, înlocuiți un sistem de căutare de imagini etc.
  • Generați intrări de control la un sistem dinamic neliniar utilizând o variație GAN
  • Analizați efectele schimbărilor climatice asupra unei case
  • Creați fața unei persoane luând vocea acesteia ca intrare
  • Creați noi molecule pentru mai multe ținte proteice în cancer, fibroză și inflamație
  • Animați gif-uri dintr-o imagine obișnuită

Există multe mai multe aplicații ale GAN-urilor în diferite domenii, iar utilizarea lor se extinde. Cu toate acestea, există și mai multe cazuri de utilizare greșită a acestuia. Imaginile umane bazate pe GAN au fost folosite pentru cazuri de utilizare sinistre, cum ar fi producerea de videoclipuri și imagini false.

GAN-urile pot fi, de asemenea, folosite pentru a crea fotografii și profiluri realiste ale oamenilor de pe rețelele sociale care nu au existat niciodată pe pământ. Alte utilizări abuzive ale GNA sunt crearea de pornografie falsă fără consimțământul persoanelor prezentate, distribuirea de videoclipuri contrafăcute ale candidaților politici și așa mai departe.

Deși GNA-urile pot fi un avantaj în multe domenii, utilizarea lor greșită poate fi, de asemenea, dezastruoasă. Prin urmare, trebuie aplicate linii directoare adecvate pentru utilizarea acestuia.

Concluzie

GAN-urile sunt un exemplu remarcabil de tehnologie modernă. Oferă o modalitate unică și mai bună de a genera date și de a ajuta la funcții precum diagnosticarea vizuală, sinteza imaginilor, cercetarea, creșterea datelor, artele și știința și multe altele.

Ați putea fi, de asemenea, interesat de platformele de învățare automată cu cod redus și fără cod pentru crearea de aplicații inovatoare.