Dauguma šiuo metu sukurtų dirbtiniu intelektu grįstų metodų, sprendžiančių konkrečius uždavinius, yra priskiriami prie specifinio intelekto. Gebėjimas kurti laikomas aukščiausiu intelekto lygmeniu, kurio ne vienerius metus siekia dirbtinio intelekto sistemų kūrėjai, o algoritmai, kurie sugeba kurti, tik per žingsnį atsilieka nuo bendrojo dirbtinio intelekto, imituojančio žmogiškąjį intelektą.
Būtent šią dirbtiniam intelektui svarbią savybę suteikia naujos kartos dirbtiniai generatyviniai besivaržantieji tinklai (angl. Generative Adversarial Networks, GANs). Kol kas jie yra daugiausia taikomi vaizdams generuoti. Pavyzdžiui, neuroninis tinklas, pasitelkus tikrų žmonių nuotraukas, apmokomas taip, kad gebėtų generuoti neegzistuojančių žmonių veidus.
Tačiau šio tipo neuroniniai tinklai taikomi ir kitiems, daug sudėtingesniems uždaviniams spręsti. Pavyzdžiui, apmokius tinklą magnetinio rezonanso vaizdais, vėliau jis geba generuoti to paties organo kompiuterinės tomografijos vaizdus.
Tinklo dalys konkuruoja tarpusavyje
Generatyvinis besivaržantysis tinklas – tai giliųjų neuroninių tinklų architektūra, sudaryta iš dviejų besivaržančių / konkuruojančių tinklų. Kaip 2016 m. teigė Facebook'o dirbtinio intelekto tyrimų direktorius Yannas LeCunas, tai įdomiausia idėja per pastaruosius 10 metų mašininio mokymosi srityje. Neuroninio tinklo modelyje sujungiami du tinklai: generatorius ir diskriminatorius.
Į diskriminatorių pateikiami tikri vaizdai, pavyzdžiui, žmonių nuotraukos. Į generatorių pateikiamas vadinamasis triukšmas, t. y. matrica, kurios elementai yra atsitiktiniai skaičiai. Iš triukšmo generatorius pagamina netikrus vaizdus, jie pateikiami į diskriminatorių, į kurį pateikiami ir tikri vaizdai. Diskriminatorius turi nustatyti, ar pateiktas vaizdas yra tikras, ar ne. Neuroninio tinklo mokymo metu siekiama, kad generatorius generuotų tokius netikrus vaizdus, kurie būtų kuo tikroviškesni, t. y. diskriminatorius sunkiai atskirtų netikrą vaizdą nuo tikro.
Tinklo mokymo metu keičiami tiek diskriminatoriaus, tiek generatoriaus svoriai, minimizuojant tam tikras nuostolių funkcijas. Apmokius tokį tinklą, generatorius gali kurti vaizdus, kurie atrodytų labai tikroviškai. Dėl to tinklai vadinami besivaržančiaisiais, nes konkuruoja dvi jų dalys – diskriminatorius ir generatorius. Generatorius nori sukurti tokį netikrą vaizdą, kad suklaidintų diskriminatorių ir šis „pagalvotų“, jog tai tikras vaizdas.
Generatyvinio besivaržančiojo tinklo schema / Žurnalas „Spectrum“
Dėl savo savybių generatyviniai besivaržantieji tinklai gali „išmokti“ imituoti bet kokį duomenų pasiskirstymą. Dažniausiai šio tipo neuroniniai tinklai mokomi taikant neprižiūrimo mokymosi strategiją, kadangi jiems nereikia mokymo duomenų su trokštamomis išvestimis, kaip yra sprendžiant klasifikavimo ar prognozavimo uždavinius, kai būtina žinoti klasės ar požymio, kurį norime prognozuoti, reikšmes.
Generatyviniai besivaržantieji tinklai gali daryti labai panašius dalykus, kokius sugeba daryti žmogus – kurti muziką, piešti paveikslus, sintezuoti šneką ir kt. Pirmasis generatyvinio besivaržančiojo tinklo sukurtas paveikslas – portretas „Edmond de Belamy“ – 2018 m. aukcione buvo parduotas už 432 tūkst. JAV dolerių. Dirbtinio intelekto sukurti meno kūriniai parduodami ir specialiose internetinėse galerijose.
Atkartojamas garsių dailininkų stilius
Platų pritaikymo spektrą rado vadinamieji sąlyginiai generatyviniai besivaržantieji tinklai, kuriems pateikiama papildoma informacija, pavyzdžiui, tam tikra žymė. Tačiau šiuo atveju tinklai mokomi taikant prižiūrimo mokymosi strategiją. Sąlyginiai generatyviniai besivaržantieji tinklai sėkmingai naudojami įvairiose srityse. Juos pasitelkus galima iš tam tikromis savybėmis pasižyminčio vaizdo sukurti kitą vaizdą, t. y. vieną vaizdą transformuoti į kitą, pasinaudojus sąlygose nurodytomis savybėmis.
Turint dieną fotografuotos aplinkos vaizdus, galima sukurti tos pačios aplinkos nakties vaizdus arba tos pačios aplinkos vasaros vaizdą paversti žiemos vaizdu. Be to, turint tam tikro objekto kontūrą / trafaretą, galima sukurti realų vaizdą arba, apmokius neuroninį tinklą zebrų nuotraukomis, generuoti žirgų nuotraukas, apelsinų nuotraukas pakeisti obuolių nuotraukomis. Panašų principą galimą taikyti veidams redaguoti. Pavyzdžiui, sukurti nuotrauką, kurioje žmogus šypsotųsi, arba pakeisti jo plaukų spalvą; sukurti nuotrauką, kurioje žmogus būtų su akiniais ar su barzda, nors originalioje nuotraukoje jis buvo be jų.
Dar vienas įdomus taikymas – neuroninis tinklas išmokomas įprastą vaizdą pakeisti taip, kad jame išliktų tie patys objektai, bet vaizdas atrodytų kaip gerai žinomo dailininko stiliumi pieštas paveikslas. Pirmame stulpelyje pateikti trys įprasti vaizdai, kituose stulpeliuose – tie patys vaizdai, tačiau pakeistas jų stilius. Vaizdai atrodo kaip Claude'o Monet, Vincento van Gogho ar Paulio Cezanne'o paveikslai.
Pradinio vaizdo stiliaus pakeitimas taikant besivaržantįjį neuroninį tinklą. Nuo kairės: pradinis vaizdas, C.Monet stilius, V.van Gogho stilius Cézanne'o stilius ir P. / Adaptuota iš J. Y. Zhu, T. Park, P. Isola ir A. A. Efros, „Nesuporuotas vaizdo pakeitimas naudojant neuroninį generatyvinį tinklą“, 2017 m. IEEE tarptautinės kompiuterinės regos konferencijos medžiagos, p. 2223-2232
Pagal tekstą generuojami vaizdai
Dar vienas būdingas generatyvinių besivaržančiųjų tinklų taikymo pavyzdys – vaizdo generavimas pagal trumpą tekstą, kuriame aprašyta tai, kas pavaizduota. Tam yra sukurtas StackGAN neuroninis tinklas, kuris priklauso sąlyginių besivaržančiųjų neuroninių tinklų klasei.
Tinklo architektūrą sudaro du tinklai, dar vadinami I ir II etapo. I etape tinklas pagal pateiktą tekstą generuoja mažos skiriamosios gebos vaizdus, t. y. sugeneruojamos pagrindinės būdingosios vaizdo savybės. II etape StackGAN mokymosi metu naudoja sąlyginį tekstą ir I etape sugeneruotus mažos skiriamosios gebos vaizdus. Siekiant pagerinti vaizdo kokybę, jis papildomas būtinomis smulkesnėmis detalėmis (3 pav.). Į neuroninį tinklą pateikiamas viršuje užrašytas tekstas, tinklas sugeneruoja paveiksliukus, kurie aprašomi pateiktame tekste. Matyti, kad geriausios kokybės rezultatus generuoja StackGAN tinklas.
Generatyviniai besivaržantieji tinklai gali būti taikomi vaizdų skiriamajai gebai padidinti. Problema iškyla tuomet, kai turime anksčiau darytus vaizdus, kurių skiriamoji geba dėl tuo metu egzistavusių technologijų yra gana žema, o dabar norime matyti aukštos skiriamosios gebos vaizdus. Ši funkcija gali būti naudinga senoms fotografijoms restauruoti arba padidintų vaizdų kokybei pagerinti. Tai gali padaryti vadinamasis SRGAN tinklas.
Jo mokymo pradžioje aukštos skiriamosios gebos vaizdas sumažinamas iki mažos skiriamosios gebos vaizdo. Tinklo generatoriaus tikslas – padidinti mažos skiriamosios gebos vaizdų gebą iki vadinamosios super skiriamosios gebos.
Tinklo diskriminatoriaus tikslas – atskirti originalius aukštos skiriamosios gebos vaizdus nuo super skiriamosios gebos vaizdų. Kaip įprasta generatyviniuose tinkluose, abi dalys varžosi tarpusavyje, kol diskriminatorius nebesugeba atskirti, ar tai originalus aukštos skiriamosios gebos vaizdas, ar generatoriaus sukurtas super skiriamosios gebos vaizdas. Taip apmokyto tinklo generatorius galės generuoti aukštos skiriamosios gebos vaizdus, kurie atrodys tikroviškesni, nei taikant kitus super skiriamosios gebos vaizdų kūrimo metodus.
Neuroniniai tinklai taikomi ir medicininiams vaizdams generuoti
Prieš tai aptarti generatyvinių besivaržančiųjų tinklų taikymai susiję su įprastų vaizdų (nuotraukų) analize, tačiau jie sėkmingai taikomi ir medicininiams vaizdams generuoti. Dažna medicininių vaizdų analizės problema – duomenų trūkumas, kadangi medicininių vaizdų surinkimas ir paruošimas analizei reikalauja daug laiko, be to, tai atlikti turi aukštos kompetencijos medicinos specialistai, kurie dažnai yra apkrauti savo tiesioginiais darbais.
Kaip žinoma, norint gerai išmokyti mašininio mokymosi algoritmus, būtina turėti didelius duomenų kiekius. Ypač tai aktualu, jei taikomi giliojo mokymosi algoritmai. Be to, gali būti situacijų, kai daug vaizdų surinkti tiesiog neįmanoma, pavyzdžiui, siekiant identifikuoti labai retas ligas. Tokiu atveju į pagalba ateina generatyviniai besivaržantieji tinklai, kurie gali sugeneruoti neegzistuojančių pacientų kompiuterinės tomografijos, magnetinio rezonanso, rentgeno ar kitus medicininius vaizdus. Šio tipo neuroniniai tinklai taip pat gali būti taikomi triukšmui mažos spinduliuotės dozės kompiuterinės tomografijos vaizduose panaikinti arba tarpiniams magnetinio rezonanso vaizdams generuoti.
Dirbtinis intelektas / Redos Tomingas iliustracija
Generatyviniai besivaržantieji tinklai puikiai tinka daugiamodalių medicininių vaizdų sintezei. Apmokius tinklą magnetinio rezonanso vaizdais, vėliau jis geba generuoti to paties organo kompiuterinės tomografijos vaizdus. Šių dviejų tipų vaizdai yra vertingi tam tikrų ligų diagnostikai, kadangi vienuose vaizduose geriau išryškėja vieni dalykai, kituose – kiti.
Gali praversti ir kibernetinio sukčiavimo prevencijai
Generatyviniai besivaržantieji tinklai gali generuoti ne tik vaizdus, bet ir kito tipo duomenis, pavyzdžiui, netikrus puslapio adresus internete (angl. Uniform Resource Locators, URL), kurie naudojami tinklui apmokyti. Toks tinklas turėtų gebėti atskirti sukčiavimui skirtus URL adresus (angl. phishing) nuo tikrų URL adresų. Generatyviniai besivaržantieji tinklai sėkmingai taikomi ir kitiems tikslams. Pavyzdžiui, Guidžou universiteto (Kinija) mokslininkas Yabo Danas pasiūlė veiksmingą generatyvinio besivaržančiojo tinklo modelį, skirtą naujoms hipotetinėms neorganinėms medžiagoms generuoti.
Be naudingų dalykų, kuriuos gali sukurti generatyviniai besivaržantieji tinklai, jie gali sukelti ir tam tikrų grėsmingų situacijų. Tikriausiai nė vienas iš mūsų nenorėtų, kad jo nuotrauka atsidurtų tokioje aplinkoje, kurioje mes nesame buvę ir kuri gali kelti socialinę, o galbūt net ir finansinę grėsmę. Tačiau šios grėsmės neturėtų užgožti ir stabdyti generatyvinių besivaržančiųjų tinklų pažangos.