Generativne protivničke mreže (GAN) predstavljaju jednu od savremenih tehnologija sa ogromnim potencijalom u mnogim oblastima primene, od obrade starih fotografija i poboljšanja kvaliteta zvuka, do primene u medicini i drugim industrijama.
Ova napredna tehnologija može biti korisna u kreiranju i oblikovanju proizvoda i usluga. Takođe se može koristiti za poboljšanje kvaliteta slika kako bi se sačuvale uspomene.
Iako su GAN-ovi korisni u mnogim situacijama, neki ih vide kao potencijalno problematične.
Ali, šta je tačno ova tehnologija?
U ovom tekstu, objasniću šta je GAN, kako funkcioniše i koje su njene primene.
Započnimo odmah!
Šta je generativna protivnička mreža?
Generativna protivnička mreža (GAN) je okvir mašinskog učenja koji se sastoji od dve neuronske mreže koje se nadmeću u stvaranju preciznijih rezultata, kao što su slike, originalna muzika, crteži i slično.
GAN-ove je 2014. godine osmislio naučnik računarstva i inženjer Ian Goodfellow sa svojim saradnicima. To su jedinstvene duboke neuronske mreže koje mogu generisati nove podatke koji su slični podacima na kojima su trenirane. One se takmiče u igri nulte sume, gde jedan akter gubi, dok drugi pobeđuje.
Prvobitno, GAN je predložen kao generativni model za mašinsko učenje, uglavnom bez nadzora. Međutim, GAN-ovi su korisni i za potpuno nadzirano učenje, polu-nadzirano učenje i učenje sa pojačanjem.
Dva konkurentna dela u GAN-u su:
Generator: To je konvolucionarna neuronska mreža koja veštački generiše izlaze slične stvarnim podacima.
Diskriminator: To je dekonvolucionarna neuronska mreža koja prepoznaje veštački kreirane izlaze.
Ključni koncepti
Za bolje razumevanje koncepta GAN-a, razmotrimo nekoliko važnih povezanih koncepata.
Mašinsko učenje (ML)
Mašinsko učenje je deo veštačke inteligencije (AI) koji podrazumeva učenje i izgradnju modela koji koriste podatke kako bi poboljšali performanse i tačnost pri izvršavanju zadataka, donošenju odluka ili predviđanjima.
ML algoritmi kreiraju modele na osnovu podataka za trening i poboljšavaju se kroz kontinuirano učenje. Koriste se u mnogim oblastima, uključujući kompjuterski vid, automatizovano donošenje odluka, filtriranje e-pošte, medicinu, bankarstvo, obezbeđivanje kvaliteta podataka, sajber bezbednost, prepoznavanje govora, sisteme za preporuke i još mnogo toga.
Diskriminatorski model
U dubokom učenju i mašinskom učenju, diskriminatorski model radi kao klasifikator koji razlikuje skup nivoa ili dve klase.
Na primer, razlikovanje između različitog voća ili životinja.
Generativni model
U generativnim modelima, smatra se da nasumični uzorci stvaraju nove, realistične slike. Uči se iz stvarnih slika nekih objekata ili živih bića kako bi se kreirale sopstvene realistične, ali imitirane ideje. Ovi modeli su dva tipa:
Varijacioni autoenkoderi: Koriste enkodere i dekodere koji su odvojene neuronske mreže. Funkcioniše tako što realna slika prolazi kroz enkoder, koji te slike predstavlja kao vektore u latentnom prostoru.
Zatim, dekoder se koristi za preuzimanje tih interpretacija i kreiranje realističnih kopija slika. U početku, kvalitet slike može biti loš, ali će se poboljšavati kako dekoder postaje potpuno funkcionalan, dok se koder može zanemariti.
Generativne protivničke mreže (GAN): Kao što je objašnjeno, GAN je duboka neuronska mreža koja generiše nove, slične podatke iz ulaznih podataka koji joj se dostavljaju. Spada u nenadgledano mašinsko učenje, jedan od tipova mašinskog učenja o kojima se govori u nastavku.
Nadzirano učenje
U nadziranom učenju, mašina se obučava koristeći dobro označene podatke. To znači da neki podaci već imaju tačan odgovor. U ovom procesu, mašina dobija neke podatke ili primere kako bi nadzirani algoritam za učenje analizirao podatke za trening i proizveo tačan rezultat iz označenih podataka.
Nenadgledano učenje
Nenadgledano učenje podrazumeva obučavanje mašine uz pomoć podataka koji nisu označeni ili klasifikovani. Ono omogućava algoritmu mašinskog učenja da radi sa tim podacima bez uputstva. U ovoj vrsti učenja, zadatak mašine je da kategorizuje nesortirane podatke na osnovu obrazaca, sličnosti i razlika bez prethodnog obučavanja o podacima.
Dakle, GAN-ovi su povezani sa nenadgledanim učenjem u ML. Imaju dva modela koja mogu automatski da otkriju i nauče obrasce iz ulaznih podataka. Ta dva modela su generator i diskriminator.
Pogledajmo detaljnije kako oni funkcionišu.
Delovi GAN-a
Termin „protivnički“ je deo naziva GAN jer ima dva dela – generator i diskriminator – koji se takmiče. Ovo se radi da bi se prepoznale, proučile i replikovale varijacije podataka u skupu podataka. Razumejmo ova dva dela GAN-a detaljnije.
Generator
Generator je neuronska mreža koja uči i generiše lažne podatke, kao što su slike i audio zapisi koji deluju realno. Koristi se tokom treninga i postaje sve bolji kroz kontinuirano učenje.
Podaci koje generiše generator koriste se kao negativan primer za drugi deo – diskriminator, koji ćemo razmotriti sledeće. Generator uzima nasumični vektor fiksne dužine kao ulaz da bi proizveo izlazni uzorak. Njegov cilj je da predstavi izlaz pred diskriminatorom kako bi on mogao da klasifikuje da li je izlaz stvaran ili lažan.
Generator se obučava pomoću sledećih komponenti:
- Ulazni vektori sa šumom
- Mreža generatora za transformisanje slučajnog ulaza u instancu podataka
- Diskriminatorska mreža za klasifikaciju generisanih podataka
- Gubitak generatora kao kazna za to što generator ne uspeva da prevari diskriminator
Generator radi kao prevarant koji replikuje i stvara realistične podatke kako bi prevario diskriminator. Cilj mu je da izbegne različite provere. Iako može imati loše rezultate u početnim fazama, nastavlja da se usavršava dok ne generiše realnije, kvalitetnije podatke i izbegne testove. Kada se postigne ova sposobnost, može se koristiti samo generator, bez potrebe za posebnim diskriminatorom.
Diskriminator
Diskriminator je takođe neuronska mreža koja razlikuje lažne i stvarne slike ili druge tipove podataka. Kao i generator, on ima važnu ulogu tokom faze treninga.
Ponaša se kao policija koja hvata lopova (lažne podatke generatora). Njegov zadatak je da otkrije lažne slike i nepravilnosti u instancama podataka.
Kao što je pomenuto, generator uči i nastavlja da se poboljšava dok ne postane siguran u svoju sposobnost da proizvodi kvalitetne slike koje ne zahtevaju diskriminator. Kada se kvalitetni podaci iz generatora proslede diskriminatoru, on više ne može da razlikuje stvarnu sliku od lažne. U tom slučaju, može se koristiti samo generator.
Kako funkcioniše GAN?
U generativnoj protivničkoj mreži (GAN), tri stvari su ključne:
- Generativni model koji opisuje kako se podaci generišu.
- Konkurentsko okruženje u kojem se model obučava.
- Duboke neuronske mreže kao AI algoritmi za trening.
Dve neuronske mreže u GAN-u – generator i diskriminator – se koriste za igru takmičenja. Generator uzima ulazne podatke, kao što su audio datoteke ili slike, da bi generisao sličnu instancu podataka, dok diskriminator potvrđuje autentičnost te instance. Ovaj drugi određuje da li je instanca podataka koju je pregledao stvarna ili nije.
Na primer, želite da proverite da li je data slika stvarna ili lažna. Možete koristiti ručno generisane ulaze podataka za generator. On će kreirati nove, replikovane slike kao izlaz.
Tokom ovog procesa, cilj generatora je da se sve slike koje generiše smatraju autentičnim, iako su lažne. Njegov zadatak je da stvori prihvatljive ishode, da obmanjuje i da ne bude uhvaćen.
Zatim, ovaj izlaz ide diskriminatoru zajedno sa skupom slika iz stvarnih podataka kako bi se otkrilo da li su slike autentične ili ne. Diskriminator deluje negativno na generator, bez obzira koliko se on trudi da imitira; pomaže u razlikovanju stvarnih od lažnih podataka.
Diskriminator uzima i lažne i stvarne podatke da bi vratio verovatnoću od 0 ili 1. Ovde, 1 predstavlja autentičnost, dok 0 predstavlja lažnu.
Postoje dve povratne petlje u ovom procesu:
- Generator spaja povratnu petlju sa diskriminatorom
- Diskriminator spaja drugu povratnu petlju sa skupom stvarnih slika
Trening GAN-a funkcioniše jer se i generator i diskriminator obučavaju. Generator uči neprestano prosleđujući lažne ulaze, dok diskriminator uči da poboljša detekciju. U ovom slučaju, oba su dinamična.
Diskriminator je konvoluciona mreža koja može da kategorizuje slike koje mu se dostavljaju. Radi kao binomni klasifikator za označavanje slika kao lažnih ili stvarnih.
Sa druge strane, generator je kao inverzna konvoluciona mreža koja uzima nasumične uzorke podataka da bi proizvela slike. Diskriminator verifikuje podatke pomoću tehnika smanjenja uzorkovanja, kao što je maksimalno udruživanje.
Obe mreže pokušavaju da optimizuju protivničku i različitu funkciju gubitka ili cilja u takmičarskoj igri. Njihovi gubici omogućavaju im da se još jače guraju jedan protiv drugog.
Vrste GAN-ova
Postoje različite vrste generativnih protivničkih mreža, zavisno od implementacije. Evo glavnih vrsta GAN-a koje se aktivno koriste:
- Uslovni GAN (CGAN): To je tehnika dubokog učenja koja uključuje specifične uslovne parametre koji pomažu u razlikovanju stvarnih i lažnih podataka. Takođe uključuje dodatni parametar – „y“ u fazi generatora za generisanje odgovarajućih podataka. Oznake se dodaju ovom ulazu i šalju diskriminatoru kako bi se omogućila provera autentičnosti podataka.
- Vanila GAN: To je jednostavan tip GAN-a gde su diskriminator i generator jednostavniji i višeslojni perceptroni. Njegovi algoritmi su jednostavni, optimizuju matematičku jednačinu pomoću stohastičkog gradijenta.
- Duboki konvolucioni GAN (DCGAN): Popularan je i smatra se najuspešnijom GAN implementacijom. DCGAN se sastoji od ConvNet-a, a ne od višeslojnih perceptrona. Ovi ConvNet-ovi se primenjuju bez upotrebe tehnika kao što je maksimalno grupisanje ili potpuno povezivanje slojeva.
- GAN sa super rezolucijom (SRGAN): To je GAN implementacija koja koristi duboku neuronsku mrežu zajedno sa protivničkom mrežom kako bi se stvorile slike visokog kvaliteta. SRGAN je posebno koristan za efikasno uvećanje originalnih slika niske rezolucije, pri čemu se detalji poboljšavaju i greške svode na minimum.
- Laplasova piramida GAN (LAPGAN): To je reverzibilna i linearna reprezentacija koja uključuje više propusnih slika koje su postavljene na osam razmaka sa niskofrekventnim ostacima. LAPGAN koristi nekoliko diskriminatorskih i generatorskih mreža i više nivoa Laplasove piramide.
LAPGAN se koristi često jer pruža vrhunski kvalitet slike. Slike se prvo smanjuju na svakom sloju piramide, a zatim se povećavaju na svakom sloju, gde se dodaje šum idejama dok ne dostignu originalnu veličinu.
Primene GAN-ova
Generativne protivničke mreže se koriste u različitim oblastima, kao što su:
Nauka
GAN-ovi mogu omogućiti precizan i brz način modelovanja formiranja visokoenergetskog mlaza i izvođenja fizičkih eksperimenata. Ove mreže mogu se obučiti i za procenu uskih grla u izvođenju simulacija za fiziku čestica koje zahtevaju velike resurse.
GAN-ovi mogu ubrzati simulaciju i poboljšati njenu vernost. Pored toga, GAN-ovi mogu pomoći u proučavanju tamne materije simulacijom gravitacionog sočiva i poboljšanjem astronomskih slika.
Video igre
Svet video igara takođe je iskoristio GAN kako bi unapredio 2D podatke niske rezolucije koji se koriste u starijim video igrama. Može vam pomoći da rekonstruišete takve podatke u 4K ili čak većim rezolucijama putem treninga slika. Zatim se podaci ili slike mogu smanjiti kako bi bili prilagođeni rezoluciji video igre.
Ako obezbedite odgovarajući trening svojim GAN modelima, oni mogu ponuditi oštrije i jasnije 2D slike impresivnog kvaliteta u poređenju sa originalnim podacima, uz zadržavanje detalja stvarne slike, kao što su boje.
Video igre koje su koristile GAN uključuju Resident Evil Remake, Final Fantasy VIII i IX i mnoge druge.
Umetnost i moda
GAN-ovi se mogu koristiti za generisanje umetnosti, kao što je kreiranje slika ljudi koji nikada nisu postojali, obrada fotografija, kreiranje slika nerealnih modnih modela i slično. Koriste se i u crtežima, gde se generišu virtuelne senke i skice.
Oglašavanje
Korišćenje GAN-ova za kreiranje i produkciju oglasa štedi vreme i resurse. Na primer, ako želite da prodate nakit, možete kreirati zamišljeni model koji izgleda kao stvaran čovek uz pomoć GAN-a.
Na taj način, možete prikazati model koji nosi vaš nakit i prezentuje ga kupcima. Tako se izbegava unajmljivanje pravog modela i plaćanje. Možete eliminisati i druge troškove, kao što su troškovi transporta, najma studija, angažovanja fotografa, šminkera itd.
Ovo je posebno korisno za firme koje rastu i ne mogu da priušte angažovanje modela ili nemaju infrastrukturu za snimanje reklama.
Audio sinteza
Audio datoteke se mogu kreirati iz skupa audio klipova uz pomoć GAN-ova. Ovo je poznato kao generativni zvuk. Nemojte ovo mešati sa Amazon Alexa, Apple Siri ili drugim AI glasovima gde se fragmenti govora spajaju i proizvode na zahtev.
Umesto toga, generativni audio koristi neuronske mreže za proučavanje statističkih svojstava izvora zvuka. Zatim, ta svojstva direktno reprodukuje u datom kontekstu. Ovde modeliranje predstavlja način na koji se govor menja nakon svake milisekunde.
Transferno učenje
Napredne studije transfernog učenja koriste GAN-ove za usklađivanje najnovijih prostora funkcija, kao što je učenje sa dubokim pojačanjem. Za ovo, izvorni i ciljni zadatak se šalju diskriminatoru da bi se utvrdio kontekst. Zatim se rezultat povratno propagira preko enkodera. Na taj način, model nastavlja da uči.
Ostale primene GAN-a uključuju:
- Dijagnozu potpunog ili delimičnog gubitka vida detekcijom glaukomatoznih slika
- Vizualizaciju industrijskog dizajna, dizajna enterijera, odevnih predmeta, cipela, torbi i slično
- Rekonstrukciju forenzičkih crteža lica
- Kreiranje 3D modela objekata sa slike, kreiranje novih objekata kao 3D oblaka tačaka, modelovanje obrazaca kretanja u video snimku
- Prikazivanje izgleda osobe sa promenljivim godinama
- Povećanje podataka, kao što je poboljšanje DNN klasifikatora
- Ucrtavanje nedostajuće oznake na mapi, poboljšavanje prikaza ulica, prenošenje stilova mapiranja i još mnogo toga
- Kreiranje slika, zamenu sistema za pretragu slika, itd.
- Generisanje kontrolnih ulaza za nelinearni dinamički sistem pomoću GAN varijacije
- Analizu efekata klimatskih promena na objekte
- Kreiranje lica osobe na osnovu glasa
- Kreiranje novih molekula za nekoliko meta proteina kod raka, fibroze i upale
- Animiranje GIF-ova sa obične slike
Postoji mnogo više primena GAN-ova u različitim oblastima, a njihova upotreba se i dalje širi. Međutim, postoje i mnogi slučajevi zloupotrebe. Ljudske slike kreirane pomoću GAN-ova korišćene su u zlonamernim situacijama, kao što je proizvodnja lažnih video snimaka i slika.
GAN-ovi se takođe mogu koristiti za kreiranje realističnih fotografija i profila ljudi na društvenim mrežama koji nikada nisu postojali. Druge zloupotrebe uključuju kreiranje lažne pornografije bez pristanka, distribuciju falsifikovanih video snimaka političkih kandidata i slično.
Iako GAN mogu biti korisni u mnogim oblastima, njihova zloupotreba može biti katastrofalna. Zbog toga se moraju primeniti odgovarajuće smernice za njihovu upotrebu.
Zaključak
GAN su izvanredan primer moderne tehnologije. Pružaju jedinstven i bolji način generisanja podataka i pomažu u funkcijama kao što su vizuelna dijagnoza, sinteza slika, istraživanje, povećanje količine podataka, umetnost, nauka i mnoge druge.
Možda će vas zanimati i platforme za mašinsko učenje sa niskim kodom i bez koda za kreiranje inovativnih aplikacija.