stubs Kas ir ģeneratīvais pretrunīgais tīkls (GAN)? - Apvienojieties.AI
Savienoties ar mums
AI meistarklase:

AI 101

Kas ir ģeneratīvais pretrunīgais tīkls (GAN)?

mm
Atjaunināts on

Ģeneratīvie pretrunīgie tīkli (GAN) ir neironu tīklu arhitektūras veidi spēj ģenerēt jaunus datus kas atbilst apgūtajiem modeļiem. GAN var izmantot, lai ģenerētu cilvēku seju vai citu objektu attēlus, veiktu teksta pārtulkošanu attēlā, pārveidotu viena veida attēlus citā un uzlabotu attēlu izšķirtspēju (super izšķirtspēju) citu lietojumprogrammu starpā. Tā kā GAN var ģenerēt pilnīgi jaunus datus, tie ir daudzu visprogresīvāko AI sistēmu, lietojumprogrammu un pētījumu priekšgalā. Bet kā tieši GAN darbojas? Izpētīsim, kā darbojas GAN, un apskatīsim dažus to galvenos lietojumus.

Ģeneratīvo modeļu un GAN definēšana

GAN ir ģeneratīvā modeļa piemērs. Lielāko daļu AI modeļu var iedalīt vienā no divām kategorijām: uzraudzītie un neuzraudzītie modeļi. Uzraudzīti mācību modeļi parasti tiek izmantoti, lai atšķirtu dažādas ievades kategorijas, lai klasificētu. Turpretim neuzraudzītus modeļus parasti izmanto, lai apkopotu datu sadalījumu, bieži vien mācoties datu Gausa sadalījums. Tā kā viņi apgūst datu kopas sadalījumu, viņi var iegūt paraugus no šī apgūtā sadalījuma un ģenerēt jaunus datus.

Dažādiem ģeneratīvajiem modeļiem ir dažādas datu ģenerēšanas un varbūtības sadalījuma aprēķināšanas metodes. Piemēram, Naivai Beijesa modele darbojas, aprēķinot varbūtības sadalījumu dažādām ievades pazīmēm un ģeneratīvajai klasei. Kad Naive Bayes modelis sniedz prognozi, tas aprēķina visticamāko klasi, ņemot dažādu mainīgo varbūtību un apvienojot tos kopā. Citi nedziļās mācīšanās ģeneratīvie modeļi ietver Gausa maisījumu modeļus un latento dirihleta piešķiršanu (LDA). Uz dziļu noslieci balstīti ģeneratīvie modeļi ietvert Ierobežotās Boltzmann mašīnas (RBM), Variācijas autokodētāji (VAE)un, protams, GAN.

Ģeneratīvie pretrunīgie tīkli bija pirmo reizi ierosināja Ian Goodfellow 2014. gadā, un 2015. gadā tos uzlaboja Alecs Redfords un citi pētnieki, kā rezultātā tika izveidota standartizēta GAN arhitektūra. GAN faktiski ir divi dažādi tīkli, kas savienoti kopā. GAN ir sastāv no divām daļām: paaudzes modelis un diskriminācijas modelis, ko dēvē arī par ģeneratoru un diskriminatoru.

GAN arhitektūra

Ģeneratīvie pretrunīgie tīkli ir veidota no ģeneratora modeļa un diskriminatora modeļa kopā. Ģeneratora modeļa uzdevums ir izveidot jaunus datu piemērus, pamatojoties uz modeļiem, ko modelis ir iemācījies no apmācības datiem. Diskriminatora modeļa uzdevums ir analizēt attēlus (pieņemot, ka tas ir apmācīts attēliem) un noteikt, vai attēli ir ģenerēti/vilti vai īsti.

Abi modeļi ir novietoti viens pret otru, apmācīti spēles teorētiskā veidā. Ģeneratora modeļa mērķis ir radīt attēlus, kas maldina tā pretinieku – diskriminatora modeli. Tikmēr diskriminējošā modeļa uzdevums ir pārvarēt savu pretinieku, ģeneratora modeli, un noķert viltotos attēlus, ko ģenerators rada. Fakts, ka modeļi atrodas viens pret otru, izraisa bruņošanās sacensību, kurā abi modeļi uzlabojas. Diskriminators saņem atgriezenisko saiti par to, kuri attēli bija īsti un kurus attēlus ir izveidojis ģenerators, savukārt ģenerators saņem informāciju par to, kurus attēlus diskriminētājs atzīmējis kā nepatiesu. Abi modeļi tiek uzlaboti apmācības laikā, lai apmācītu paaudzes modeli, kas var radīt viltus datus, kas būtībā nav atšķirami no reāliem, patiesiem datiem.

Kad apmācības laikā ir izveidots datu Gausa sadalījums, var izmantot ģeneratīvo modeli. Ģeneratora modelim sākotnēji tiek ievadīts nejaušs vektors, kuru tas pārveido, pamatojoties uz Gausa sadalījumu. Citiem vārdiem sakot, vektors rada paaudzi. Kad modelis ir apmācīts, vektoru telpa būs datu Gausa sadalījuma saspiesta versija vai attēlojums. Datu izplatīšanas saspiestā versija tiek saukta par latento telpu vai latentiem mainīgajiem. Vēlāk GAN modelis var ņemt latentās telpas attēlojumu un no tā iegūt punktus, kurus var piešķirt ģenerēšanas modelim un izmantot jaunu datu ģenerēšanai, kas ir ļoti līdzīgi apmācības datiem.

Diskriminatora modelim tiek ievadīti piemēri no visa apmācības domēna, kas sastāv gan no reāliem, gan no ģenerētiem datu piemēriem. Reālie piemēri ir ietverti apmācības datu kopā, savukārt viltus datus rada ģeneratīvais modelis. Diskriminatora modeļa apmācības process ir tieši tāds pats kā pamata, binārās klasifikācijas modeļa apmācība.

GAN apmācības process

Apskatīsim visu treniņš process hipotētiska attēla ģenerēšanas uzdevumam.

Sākumā GAN tiek apmācīts, izmantojot īstus, reālus attēlus kā daļu no apmācības datu kopas. Tādējādi tiek iestatīts diskriminatora modelis, lai atšķirtu ģenerētos attēlus no reāliem attēliem. Tas arī rada datu sadalījumu, ko ģenerators izmantos jaunu datu iegūšanai.

Ģenerators uzņem nejaušu skaitlisku datu vektoru un pārveido tos, pamatojoties uz Gausa sadalījumu, atgriežot attēlu. Šie ģenerētie attēli kopā ar dažiem oriģināliem attēliem no apmācības datu kopas tiek ievadīti diskriminatora modelī. Diskriminators sniegs varbūtības prognozi par saņemto attēlu raksturu, izvadot vērtību no 0 līdz 1, kur 1 parasti ir autentiski attēli un 0 ir viltots attēls.

Tiek izmantota dubultā atgriezeniskā saite, jo zemes diskriminatoram tiek ievadīta attēlu patiesība, bet ģeneratoram tiek sniegta atgriezeniskā saite par tā veiktspēju.

Ģeneratīvie un diskriminācijas modeļi spēlē viens ar otru nulles summas spēli. Nulles summas spēle ir spēle, kurā vienas puses ieguvumi tiek rēķināti uz otras puses rēķina (summa ir tāda, ka abas darbības ir nulle ex). Kad diskriminatora modelis spēj sekmīgi atšķirt īstos un viltus piemērus, diskriminatora parametros netiek veiktas nekādas izmaiņas. Tomēr modeļa parametros tiek veikti lieli atjauninājumi, ja tas nespēj atšķirt reālus un viltus attēlus. Apgrieztais ir ģeneratīvajam modelim, tas tiek sodīts (un tā parametri tiek atjaunināti), ja tas nespēj apmānīt diskriminējošo modeli, bet pretējā gadījumā tā parametri nemainās (vai tas tiek apbalvots).

Ideālā gadījumā ģenerators spēj uzlabot savu veiktspēju līdz tādam līmenim, ka diskriminētājs nevar atšķirt viltotus un īstos attēlus. Tas nozīmē, ka diskriminators vienmēr atveidos %50 reālus un viltus attēlus, kas nozīmē, ka ģenerētajiem attēliem jābūt neatšķiramiem no oriģinālajiem attēliem. Praksē GAN parasti nesasniegs šo punktu. Tomēr ģeneratīvajam modelim nav jāizveido pilnīgi līdzīgi attēli, lai tas joprojām būtu noderīgs daudzajiem uzdevumiem, ko izmanto GAN.

GAN lietojumprogrammas

GAN ir vairākas dažādas lietojumprogrammas, lielākā daļa no tām ir saistītas ar attēlu un attēlu komponentu ģenerēšanu. GAN parasti izmanto uzdevumos, kur trūkst nepieciešamo attēla datu vai to ietilpība ir ierobežota, kā nepieciešamo datu ģenerēšanas metodi. Apskatīsim dažus izplatītākos GAN lietošanas gadījumus.

Jaunu datu kopu piemēru ģenerēšana

GAN var izmantot, lai ģenerētu jaunus piemērus vienkāršām attēlu datu kopām. Ja jums ir tikai daži apmācības piemēri un to vajag vairāk, GAN var izmantot, lai ģenerētu jaunus apmācības datus attēlu klasifikatoram, ģenerējot jaunus apmācības piemērus dažādās orientācijās un leņķos.

Unikālu cilvēku seju ģenerēšana

Šajā fotoattēlā redzamā sieviete neeksistē. Attēlu ģenerēja StyleGAN. Foto: Owlsmcgee, izmantojot Wikimedia Commons, publiskais domēns (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Ja GAN ir pietiekami apmācīts, tos var izmantot rada ārkārtīgi reālistiskus cilvēku seju attēlus. Šos ģenerētos attēlus var izmantot, lai apmācītu sejas atpazīšanas sistēmas.

Tulkošana no attēla uz attēlu

GAN izcils attēlu tulkošanā. GAN var izmantot, lai iekrāsotu melnbaltus attēlus, tulkotu skices vai zīmējumus fotogrāfiskos attēlos vai pārvērstu attēlus no dienas uz nakti.

Tulkošana no teksta uz attēlu

Tulkošana no teksta uz attēlu ir iespējams, izmantojot GAN. Ja tiek nodrošināts teksts, kas apraksta attēlu un pievienoto attēlu, GAN var jāapmāca izveidot jaunu tēlu kad tiek nodrošināts vēlamā attēla apraksts.

Attēlu rediģēšana un labošana

GAN var izmantot, lai rediģētu esošās fotogrāfijas. GAN noņemiet tādus elementus kā lietus vai sniegs no attēla, bet tos var arī izmantot labot vecus, bojātus attēlus vai bojātus attēlus. 

Super izšķirtspēja

Superizšķirtspēja ir process, kurā tiek uzņemts zemas izšķirtspējas attēls un attēlā tiek ievietots vairāk pikseļu, uzlabojot šī attēla izšķirtspēju. GAN var apmācīt uzņemt attēlu un ģenerēt šī attēla augstākas izšķirtspējas versiju. 

Emuāru autors un programmētājs ar specialitātēm Mašīnu mācīšana un Dziļa mācīšanās tēmas. Daniels cer palīdzēt citiem izmantot mākslīgā intelekta spēku sociālā labuma gūšanai.