Kas iš tikrųjų slepiasi už šių dviejų žodžių?
Jei paklausti žmogaus gatvėje, kas yra mašininis mokymasis, dauguma arba gūžtels pečiais, arba pradės kalbėti apie robotus ir Terminatorių. Realybė – kiek kitokia ir, tiesą sakant, daug įdomesnė nei bet koks filmas.
Mašininis mokymasis (angliškai – machine learning) yra dirbtinio intelekto šaka, kuri leidžia kompiuteriams mokytis iš duomenų – be to, kad kažkas jiems tiesiogiai pasakytų, ką daryti kiekvienu atveju. Skamba abstrakčiai? Gerai, pabandykime kitaip.
Įsivaizduok, kad turi draugą, kuris niekada anksčiau nematė katės. Tu jam parodi tūkstantį katės nuotraukų ir sakai: „Tai – katė.” Po to parodi tūkstantį šunų nuotraukų ir sakai: „Tai – ne katė.” Po kurio laiko tas draugas, pamatęs naują gyvūną, gali pats nuspręsti – katė ar ne. Jis išmoko atpažinti, nors niekas jam nepaaiškino, kad katės turi ūsus, vertikalias vyzdžių plyšelius ar tam tikrą kūno formą. Jis pats tai „suprato” iš pavyzdžių. Lygiai taip veikia ir mašininis mokymasis.
Kaip kompiuteris iš tikrųjų „mokosi”?
Čia prasideda įdomiausia dalis. Tradicinis programavimas veikia taip: programuotojas parašo taisykles, kompiuteris jas vykdo. Nori, kad programa atskirtų šlamštą nuo normalių el. laiškų? Rašai: „Jei laiške yra žodis ‘laimėjai’, žymėk kaip šlamštą.” Problema – šlamšto siuntėjai greitai prisitaiko ir pradeda rašyti „l4imėjai” arba „l-a-i-m-ė-j-a-i”. Taisyklės nebegalioja.
Mašininis mokymasis sprendžia šią problemą kitaip. Vietoj taisyklių – duomenys ir algoritmai, kurie patys ieško dėsningumų. Procesas atrodo maždaug taip:
- Duomenys – tai „maistas” modeliui. Kuo daugiau, tuo geriau (nors ne visada – apie tai vėliau).
- Modelis – matematinė struktūra, kuri mokosi iš tų duomenų. Galima galvoti kaip apie labai sudėtingą lygtį su tūkstančiais ar milijonais kintamųjų.
- Apmokymas – procesas, kurio metu modelis „žiūri” į duomenis, daro spėjimus, klysta, koreguoja save ir vėl bando.
- Įvertinimas – tikriname, ar modelis tikrai išmoko kažką naudingo, ar tik įsiminė mokymo duomenis kaip papūga.
Tas „klysta ir koreguoja save” – tai ir yra esmė. Techniškai tai vadinama optimizacija. Modelis turi klaidos funkciją (angl. loss function), kuri matuoja, kiek jo spėjimai skiriasi nuo teisingų atsakymų. Tikslas – minimizuoti tą klaidą. Tai daroma per algoritmą, vadinamą gradientų nusileidimo metodu (gradient descent) – kompiuteris tarsi rieda nuo kalno žemyn, ieškodamas žemiausio taško.
Trys pagrindiniai mokymosi būdai – ir kodėl jie skiriasi
Ne visi mašininio mokymosi metodai veikia vienodai. Yra trys pagrindinės kategorijos, ir kiekviena tinka skirtingoms situacijoms.
Mokymasis su mokytoju (supervised learning) – tai labiausiai paplitęs metodas. Čia modelis gauna duomenis su atsakymais. Pavyzdžiui: tūkstančiai namų su kainomis. Modelis mokosi, kaip plotas, vieta, aukštas ir kiti parametrai veikia kainą. Po apmokymo gali prognozuoti naujo namo kainą. Naudojama: el. pašto filtravimui, medicininei diagnostikai, kreditų vertinimui.
Mokymasis be mokytojo (unsupervised learning) – čia modelis gauna duomenis be atsakymų ir turi pats rasti struktūrą. Tarsi duodi vaikui dėžę su įvairiais daiktais ir sakai: „Surūšiuok.” Jis pats nusprendžia, pagal ką grupuoti. Naudojama: klientų segmentavimui, anomalijų aptikimui, rekomendacijų sistemoms.
Mokymasis per pastiprinimą (reinforcement learning) – čia modelis mokosi per bandymus ir klaidas, gaudamas atlygį už gerus veiksmus ir baudą už blogus. Lygiai kaip moko šunį: padarė teisingai – skanėstas, padarė blogai – nieko. Šiuo metodu išmokyti žaisti šachmatais ir „Go” žaidimą geriau nei bet kuris žmogus pasaulyje veikiantys modeliai.
Neuroniniai tinklai – smegenų imitacija ar tik metafora?
Tikriausiai girdėjai apie neuroninius tinklus. Jie dažnai pristatomi kaip „dirbtinės smegenys”, bet tai šiek tiek perdėta. Tiksliau sakant – tai matematinė struktūra, įkvėpta to, kaip veikia biologiniai neuronai, bet toli gražu ne jų kopija.
Biologinis neuronas gauna signalus iš kitų neuronų, juos apdoroja ir perduoda toliau – arba ne, priklausomai nuo signalo stiprumo. Dirbtinis neuronas daro tą patį skaičiais: gauna įvestis, padaugina jas iš svorių (kurie keičiasi mokymosi metu), sudeda ir nusprendžia, ar „suaktyvėti”.
Kai tokius neuronus sudedi į sluoksnius – gauname neuroninį tinklą. Pirmasis sluoksnis gauna žalius duomenis (pvz., pikselius iš nuotraukos). Viduriniai sluoksniai mokosi vis sudėtingesnių požymių – pirmiausia kraštai, tada formos, tada objektų dalys, galiausiai – patys objektai. Paskutinis sluoksnis duoda atsakymą.
Gilieji neuroniniai tinklai (deep neural networks) – tai tiesiog tinklai su daug vidurinių sluoksnių. Žodis „gilus” reiškia ne kokybę, o kiekį. Ir būtent šie tinklai per pastarąjį dešimtmetį sukėlė tikrą revoliuciją – nuo vaizdų atpažinimo iki kalbos generavimo.
Kur mašininis mokymasis gyvena tavo kasdienybėje?
Čia daugelis nustemba. Mašininis mokymasis nėra kažkas tolimo ar futuristinio – jis jau dabar veikia fone, kol tu skrolini telefoną.
Kai „Spotify” rekomenduoja dainą, kurią tu dar nepažįsti, bet ji tobulai atitinka tavo nuotaiką – tai mašininis mokymasis. Kai „Gmail” automatiškai rūšiuoja laiškus į „Pirminiai”, „Socialiniai” ir „Reklama” – tai mašininis mokymasis. Kai „Face ID” atrakina telefoną tavo veidu net ir tada, kai tu esi su akiniais ar šiek tiek pasikeitęs – mašininis mokymasis. Kai „YouTube” žino, ką rodyti toliau, kad tu liktum žiūrėti dar valandą – taip pat.
Medicinoje mašininio mokymosi modeliai jau dabar aptinka vėžinius darinius rentgeno nuotraukose tiksliau nei vidutinis radiologas. Bankuose algoritmai per milisekundes nusprendžia, ar konkreti kortelės operacija atrodo įtartina. Automobiliuose – padeda išlaikyti juostą, atpažinti kelio ženklus, reaguoti į pėsčiuosius.
Ir, žinoma, ChatGPT, Gemini, Claude ir panašūs įrankiai – tai didžiuliai kalbos modeliai (large language models), apmokyti ant šimtų milijardų teksto fragmentų. Jie „išmoko” kalbą taip, kaip mes išmokome – per daugybę pavyzdžių, kol pradėjo suprasti kontekstą, gramatiką, faktus ir net humoro jausmą.
Kai viskas eina ne taip – šališkumas, klaidos ir ribos
Čia reikia kalbėti atvirai, nes mašininis mokymasis nėra tobulas, ir tai svarbu suprasti.
Didžiausia problema – duomenų šališkumas (bias). Jei modelį apmokai ant šališkų duomenų, gausite šališką modelį. Garsiausias pavyzdys: veido atpažinimo sistemos, apmokytos daugiausia ant baltaodžių vyrų nuotraukų, daug blogiau atpažindavo tamsesnės odos moteris. Tai ne koks nors atsitiktinis techninis gedimas – tai tiesioginė mokymo duomenų kokybės pasekmė.
Kita problema – overfitting, arba permokymas. Tai kai modelis per gerai išmoksta mokymo duomenis ir tampa bevertis su naujais. Tarsi studentas, kuris atmintinai išmoksta visus egzamino klausimus iš praėjusių metų, bet negali atsakyti į nė vieną naują klausimą.
Yra ir interpretavimo problema. Dažnai net patys kūrėjai negali paaiškinti, kodėl modelis priėmė konkretų sprendimą. Tai vadinama „juodosios dėžės” problema (black box). Medicinoje ar teisėje tai kelia rimtų etinių klausimų – ar galima pasitikėti sprendimu, kurio niekas negali paaiškinti?
Praktinis patarimas: kai naudoji bet kokį AI įrankį, visada klausk savęs – ant kokių duomenų jis buvo apmokytas? Ar tie duomenys reprezentuoja mano situaciją? Ar rezultatas turi būti patikrintas žmogaus?
Kaip pradėti – jei nori suprasti daugiau nei tik paviršių
Gera žinia: mašininio mokymosi pagrindams suprasti nereikia būti matematikos genijumi. Bloga žinia: reikia šiek tiek pastangų. Bet štai konkretus kelias:
Pradedantiesiems (be programavimo patirties):
- „Google” kursas „Machine Learning Crash Course” – nemokamas, lietuviškai nėra, bet anglų kalba prieinama ir suprantama.
- Platforma „Kaggle” turi nemokamų mini-kursų, kurie moko Python ir mašininio mokymosi pagrindų vienu metu.
- Knyga „Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow” – klasika, kuri veda nuo nulio iki pažengusio lygio.
Jei jau moki Python:
- Biblioteka
scikit-learn– geriausia vieta pradėti. Kelios kodo eilutės ir jau gali apmokyti savo pirmą modelį. - „Fast.ai” kursas – priešingas tradiciniam mokymui. Pradeda nuo praktikos, teorija ateina vėliau. Labai efektyvus.
- Kaggle varžybos – realūs duomenys, realios problemos, aktyvi bendruomenė.
Konceptualiam supratimui be kodo:
- „3Blue1Brown” YouTube kanalas turi nuostabią seriją apie neuroninius tinklus – vizualiai ir intuityviai.
- Podcastas „Lex Fridman Podcast” – ilgi pokalbiai su mašininio mokymosi pionieriais.
Tai ne magija – bet tai tikrai keičia pasaulį
Geriausias būdas galvoti apie mašininį mokymąsi – tai ne kažkoks superintelektas, kuris viską žino ir viską gali. Tai labai galingas statistinis įrankis, kuris puikiai atpažįsta dėsningumus dideliuose duomenų kiekiuose. Jis gali būti neįtikėtinai tikslus tose srityse, kur yra daug duomenų ir aiški struktūra. Bet jis taip pat gali klysti absurdiškai ten, kur žmogus klaidos net nepadarytų.
Suprasti mašininį mokymąsi šiandien – tai ne tik techninis įgūdis. Tai savotiškas raštingumas. Kaip prieš šimtą metų buvo svarbu mokėti skaityti ir rašyti, šiandien vis svarbiau suprasti, kaip veikia algoritmai, kurie priima sprendimus apie tavo kreditą, sveikatos draudimą, socialinių tinklų turinį ar darbo paieškos rezultatus.
Ir svarbiausia – mašininis mokymasis nėra kažkas, kas vyksta „ten, kažkur”. Jis vyksta dabar, tavo telefone, tavo banko programėlėje, tavo muzikos srautinio perdavimo platformoje. Kuo anksčiau suprasi, kaip tai veikia, tuo geriau galėsi naudotis šiais įrankiais sąmoningai – o ne tiesiog leistis nešamam jų srovės.






