2019 m. rugsėjo 15 d., sekmadienis

Kaip AI veidologus paliks be darbo

Paskutinius 5-kerius metus dirbtinis intelektas buvo įkinkytas dirbti pačius įvairiausius darbus, vienas tokių įdomesnių, bet iš pirmo žvilgsnio beprasmiškų darbų - generuoti žmonių veidus. Jei pirmais metais AI piešti veidai atrodė kaip gedimai Matricoje, tai dabar dažnai sunku atskirti ar tai reali fotografija ar dirbtinis veidas. Šį progresą gerai iliustruoja šis paveikslėlis..
Šaltinis: https://twitter.com/goodfellow_ian/status/1084973596236144640
Kaip priversti neuroninį tinklą haliucinuoti tikrovišką realybę? Reikia ilgai ir atkakliai mokyti rodant į jo rezultatą čia gerai, o vat čia blogai. Deja niekas nenori mėnesius sėdėti  prie neuroninio tinklo ir aiškinti, kuris iš jo sugeneruotų pavyzdžių geras, o kuris ne. Šis progresas būtų neįmanomas be GAN (Generative Adversarial Network) neuroninių tinklų, kur iš tikrųjų mokomi du tinklai: vienas kaip gabus padirbinėtojas, o antrasis kaip gudrus policininkas, kuris turi atskirti tikrą vaizdą nuo padirbto. Paliekant juos vieną iš kito mokytis ir duodant tikrų veidų rinkinį kaip pavyzdį, neužilgo turime labai gerą rezultatą. Jei kas dar nebandėte pažiūrėkite https://thispersondoesnotexist.com (nepamirškite naršyklėje paspausti refresh ;)

Tiesa neuroninis tinklas generuoja veidus ne visiškai iš nieko, o iš atsitiktinių skaičių užuominos. Įdomu, tai, kad mokydamasis iš daugelio tikrų veidų, tinklas piešėjas pats pradeda susikurti kategorijas ir savybes būdingas veidams. Pvz. veido poza, šypsena, amžius, odos spalva, bendras apšvietimas, akinių nešiojimas ir t.t. Tad atidžiau patyrinėję kaip tinklas interpretuoja jam duodamus atsitiktinius skaičius, galima jo paprašyti platesnės šypsenos ar pan.
Kodėl nepabandžius to praktiškai ir nepaprašius tinklo sugeneruoti poros veidų? Va prašom du atsitiktiniai generuoti veidai:

Atsitiktinis veidas #1Atsitiktinis veidas #2
Pavadinkime juos veidu #1 ir veidu #2. Kadangi turime skaičių rinkinį iš kurio jie sugeneruoti, tai galime juo pamanipuliuoti taip, kad tarkime pakeistume šypsenos "stiprumą" nuo -3 iki +3 (3x stipriau nei įprasta):
Įdomu tai, kad "antišypsena" nėra liūdna ar pikta išraiška, o tiesiog labai stipriai sučiauptos lūpos. Taip pat aiškiai matosi, kad tinklą prašant persistengti rezultatas gaunamas nelabai tikroviškas ar estetiškas..
O kas jei pabandytume "pareguliuoti" amžių?

Panašu, kad AI mano, jog vyresnis amžius neatsiejamas nuo akinių. Taip pat prognozuoja, kad veidas #1 senatvėje įsisegs auskarus. Ką gali žinoti, neturiu priežasčių netikėti dirbtiniu intelektu.
Kai kurie veidologai teigia, kad veidas #2 yra veido #1 antipodas, bet pabandykime patikrinti ar tai tiesa, pasitelkdami dirbtinį intelektą. Tiesiog invertuojame veido #1 generuojančių skaičių seką ir žiūrime kaip atrodys antipodas..


Į veidą #2, deja, nepanašu, būna, kad ir geriausi veidologai klysta! O kas jei neuroninį tinklą paprašytume #1 paversti #2? Prašom, užtruko tik kokią sekundę.



Nežinau kaip jums, bet man atrodo, kad jie galėtų būti broliai.

P.S. Norite sužinoti daugiau? Žiūrėkit čia: https://www.youtube.com/watch?v=dCKbRCUyop8