2016 m. gruodžio 11 d., sekmadienis

Kaip AI sapnavo lietuviškus vardus

2016-iems einant į pabaigą vienas svarbiausių statuso ženklų išlieka buvimas veganu. Kadangi man su veganizmu nesusiklostė, tai ieškojau, kuo kitu statusą galėčiau pakelti, o kas ieško tas randa! AI (kitaip dar dirbtinis intelektas) dabar laimi prieš veganizmą 1.6 karto (žr. http://www.googlefight.com/ai-vs-vegan.php).

Vienas įdomesnių AI potipių yra rekurentiniai neuroniniai tinklai su atmintimi (RNN LSTM). Dažnai žmonės juos maitina po vieną raidę, o tinklas bando nuspėti sekančią raidę. Kadangi tinklas turi atmintį, tai sugeba išmokti deklamuoti gana ilgus teksto fragmentus. Visa tai gan panašu į pradinuką "kalantį" Maironį, tik skirtumas toks, kad tinklas net nemoka toks kalbos, kuria kurinys parašytas. Šioje vietoje smalsuolius fantazija ir "užnešė".. Maitino tokiems tikslams ko netingėjo ir Shakespeare'ą, Linux kernelio kodą, mokslinius straipsnius ir t.t. O AI savo ruožtu kliedėjo tekstais panašiais į tuos kuriuos mokėsi, bet kažkiek kitokiais. Kuo tinklas ilgiau mokosi, tuo jis labiau artėja prie originalo, tačiau, didžiausias smagumas, kai tinklas dar ne visiškai apsimokęs ir kalba pusiau prasmingais sakiniais Shakespeare'o maniera :) Rekomenduotinas skaitinys: http://karpathy.github.io/2015/05/21/rnn-effectiveness/.

Savo ruožtu neatsispyriau ir aš, paėmiau kodą iš https://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/recurrent/character/GravesLSTMCharModellingExample.java, šiek modifikavau, ir sumaitinau jam Lietuvoje vartojamus vyrų ir moterų vardus (https://lt.wikipedia.org/wiki/Sąrašas:Lietuvoje_paplitę_vardai). Įdomu, kad tinklas apie lietuvių kalbą nieko nežino iš anksto, o jau po neilgo mokymosi sugeba vyriškus vardus užbaigti vyriškomis galūnėmis, o moteriškus moteriškomis. Bendrai tinklo susapnuoti vardai skamba šiek tiek kaip supermamų fantazijos vaisius, bet kartais sukuriami nauji vardai, kurie sutampa jau su esamais lietuvių kalbos žodžiais. Atrinkau šiokį tokį topą vardų, kurie man arba skambėjo juokingai, arba tiesiog įtikinamai:

Vyriški vardai
Moteriški vardai
Aimantas
Ala
Aironeogifas
Algytė
Audimas
Alitė
Auspis
Alvyra
Austinas
Alytė
Dūris
Antina
Girtridas
Aselė
Gondrius
Audronda
Ingimantas
Augudė
Itas
Aurorija
Karis
Aušulė
Kartas
Baibilė
Klaigeraldas
Donė
Kovys
Džiugilija
Kvigtardas
Enė
Laisvinas
Gabrielina
Mantis
Gadė
Maras
Galvyra
Mermantas
Gelė
Metodas
Gotūtaulė
Mikasduras
Ilutė
Montas
Ingiana
Muras
Jeismazeja
Naimutis
Jūrida
Narkas
Kazia
Rarbylas
Klaida
Raugiris
Konstantė
Ritūtas
Laila
Šautis
Mantana
Skaivimas
Marrrė
Vakcinas
Meta
Viloldtas
Migdė
Vopilvas
Nimimėkija
Žigaudas
Putija
Žydas
Raumintė
Žygūnas
Rimė

Rūtutė

Sabutė

Siutė

Statė

Tema

Trorijanija

Valdopulė

Varė

Vasalė

Vaustė

Verona

Vincelė

Vorlasūnė

Vytentė

Žeigija

Zynė



Tarp vyriškų vardų man nugalėjo Vakcinas (o tie, kurie prieš vakcinas, galėtų sūnų vadinti Antivakcinu), o moteriškų grupėje atkakli kova virė tarp vardų Klaida bei Algytė, bet, manau, Klaida nugalėjo :) O jei tektų džiaugsmas kada susilaukti dvynukių, būtinai pavadinčiau jas Rimė ir Siutė. Iš kitos pusės nemažai yra skambančių įtikinamai, kaip pavyzdžiui: Žygūnas, Žigaudas, Itas :), Vincelė, Sabutė, Rūtutė, Ala (nebuvo tokio apmokymo sąraše).

Svarbiausia šio mokslinio tyrimo išvada yra, kad vidutinei supermamai turėtų pakakti 3 sluoksnių po 200 neuronų.
Pilną sąrašą susapnuotų vardų (t.y. tokių, kurių nebuvo apmokymo medžiagoje) galima rasti čia: https://drive.google.com/open?id=0B-UqINxaJliza2V5dHBoTWNrZUU.