Przejdź do treści
Strona główna " IT ir technologijos " Kaip veikia mašininis mokymasis

Kaip veikia mašininis mokymasis

Kai kompiuteris pradeda mokytis pats

Prisiminkite, kaip mokėtės atpažinti šunis. Niekas jums nesakė: “Šuo turi keturias kojas, uodegą ir šlapsčią nosį”. Tiesiog matėte daugybę šunų, ir jūsų smegenys pačios suprato, kas yra šuo. Mašininis mokymasis veikia labai panašiai – tik čia mokosi ne žmogus, o kompiuteris.

Skirtingai nei tradicinės programos, kuriose programuotojas nurašo kiekvieną žingsnį (“jei vartotojas paspaudė mygtuką A, daryk B”), mašininio mokymosi sistemoms duodami pavyzdžiai ir leidžiama pačioms atrasti dėsningumus. Tai tarsi mokytumėte vaiką dviratį – galite paaiškinti teoriją, bet tikrasis mokymasis vyksta praktikuojant ir klystant.

Šiandien mašininis mokymasis yra visur: kai Netflix rekomenduoja filmą, kai bankas nusprendžia, ar duoti jums paskolą, kai telefonas atpažįsta jūsų veidą. Bet kaip tai iš tikrųjų veikia? Pasinerkime į šią technologiją be bereikalingų techninių terminų.

Trys pagrindiniai mokymosi būdai

Mašininis mokymasis nėra viena konkreti technologija – tai visas būdų rinkinys. Galima išskirti tris pagrindinius mokymosi tipus, ir kiekvienas iš jų tinka skirtingoms problemoms spręsti.

Mokymasis su mokytoju – tai kaip mokykloje. Turite mokytoją (duomenis su atsakymais), kuris rodo teisingus atsakymus. Pavyzdžiui, duodate kompiuteriui 10,000 nuotraukų su užrašais “katė” arba “šuo”, ir sistema mokosi atpažinti skirtumus. Kai vėliau parodote naują nuotrauką, ji gali pasakyti, kas ten pavaizduota. Šis metodas puikiai veikia, kai turite daug pavyzdžių su žinomais atsakymais.

Mokymasis be mokytojo – čia niekas nepasakoja teisingų atsakymų. Sistema pati ieško dėsningumų duomenyse. Įsivaizduokite, kad turite milijoną pirkėjų duomenų ir norite juos sugrupuoti. Mašininio mokymosi algoritmas gali pats pastebėti, kad vieni žmonės perka daug sporto prekių, kiti – knygų, treti – vaikų žaislų. Jis nesugalvos grupių pavadinimų, bet pastebės, kad egzistuoja skirtingi pirkėjų tipai.

Mokymasis su pastiprinimais – tai kaip dresūra. Sistema gauna “skanėstą” už gerus sprendimus ir “bausmę” už blogus. Būtent taip buvo išmokytas AlphaGo žaisti Go žaidimą geriau už pasaulio čempionus. Programa žaidė milijonus kartų prieš save, kiekvieną kartą mokydamasi iš pergalių ir pralaimėjimų.

Neuronų tinklai – kai kompiuteris mėgdžioja smegenis

Viena populiariausių mašininio mokymosi technologijų yra dirbtiniai neuroniniai tinklai. Pavadinimas skamba bauginančiai, bet idėja gana paprasta.

Žmogaus smegenyse yra apie 86 milijardai neuronų – mažyčių ląstelių, kurios perduoda signalus viena kitai. Kai matote katę, vieni neuronai reaguoja į spalvas, kiti – į formas, dar kiti – į judėjimą. Visa tai kartu sudaro supratimą “tai katė”.

Dirbtinis neuroninis tinklas veikia panašiai, tik daug paprasčiau. Jis susideda iš sluoksnių, kuriuose yra “dirbtiniai neuronai” – iš esmės matematinės funkcijos. Pirmasis sluoksnis gauna duomenis (pavyzdžiui, nuotraukos pikselius), apdoroja juos ir perduoda rezultatus kitam sluoksniui. Tas vėl apdoroja ir perduoda toliau. Paskutinis sluoksnis išspjauna atsakymą.

Štai konkretus pavyzdys: norite, kad sistema atpažintų rankraštį. Pirmasis sluoksnis gali aptikti paprastas linijas ir kraštus. Antrasis sluoksnis iš tų linijų sudeda sudėtingesnes formas – ratus, kampus. Trečiasis sluoksnis iš tų formų atpažįsta raides. Kiekvienas sluoksnis mokosi vis sudėtingesnių dalykų.

Bet kaip tinklas “mokosi”? Pradžioje jis nežino nieko – jo atsakymai visiškai atsitiktiniai. Parodote jam raidę “A” ir jis atsako “Z”. Tada sakote “ne, tai A”, ir tinklas šiek tiek pakoreguoja savo vidinius parametrus. Po milijonų tokių pataisymų jis pradeda atpažinti raides tiksliai.

Duomenys – tai naujas auksas

Galite turėti genialiausią mašininio mokymosi algoritmą pasaulyje, bet be duomenų jis nenaudingas. Tai kaip turėti puikų mokytoją, bet nė vienos knygos.

Kodėl Google, Facebook ir Amazon yra tokie galingi dirbtinio intelekto srityje? Ne todėl, kad jų algoritmai yra slaptieji ginklai (dauguma algoritmų yra viešai prieinami), bet todėl, kad jie turi neįtikėtinus kiekius duomenų. Google žino, ką milijardai žmonių ieško internete. Facebook žino, ką žmonės mėgsta ir su kuo bendrauja. Amazon žino, ką žmonės perka.

Kuo daugiau duomenų, tuo geriau sistema gali išmokti. Bet ne bet kokie duomenys tinka. Jei norite išmokyti sistemą atpažinti vėžio ląsteles, o 99% jūsų duomenų yra sveikos ląstelės, sistema išmoks tiesiog visada atsakyti “sveika” – ir bus teisi 99% atvejų, bet visiškai nenaudinga.

Duomenų kokybė irgi svarbi. Jei jūsų mokymo duomenyse yra klaidų, sistema išmoks tų klaidų. Buvo atvejis, kai sistema, mokyta atpažinti vilkus, iš tikrųjų išmoko atpažinti sniegą fone – nes dauguma vilkų nuotraukų buvo žiemą darytose. Ji puikiai “atpažino” vilkus, bet iš tikrųjų tik ieškojo balto fono.

Kodėl dabar mašininis mokymasis tapo toks populiarus

Mašininio mokymosi idėjos nėra naujos. Pirmieji neuroniniai tinklai buvo sukurti dar 1950-aisiais. Bet tik pastarąjį dešimtmetį technologija tikrai suklestėjo. Kodėl?

Pirma, kompiuteriai tapo neįtikėtinai galingi. Mašininio mokymosi algoritmai reikalauja daug skaičiavimų – kartais milijardų operacijų. Ypač vaizdo plokštės (GPU) pasirodė esančios idealios šiems skaičiavimams, nes jos gali atlikti tūkstančius paprastų operacijų vienu metu.

Antra, atsirado milžiniški duomenų kiekiai. Kiekvienas mūsų kasmet generuoja gigabaitus duomenų – nuotraukas, tekstus, paspaudimus. Visa tai yra potenciali mokymo medžiaga.

Trečia, atsirado galingos ir nemokamos priemonės. Bibliotekos kaip TensorFlow ar PyTorch leidžia bet kam kurti mašininio mokymosi sistemas be reikalo rašyti viską nuo nulio. Tai kaip turėti gatavą konstruktorių vietoj to, kad pačiam gamintumėte plytą.

Ketvirta, bendruomenė ir žinių dalijimasis. Mokslininkai dabar aktyviai skelbia savo tyrimus ir net kodus. Tai pagreitina pažangą neįtikėtinai.

Kur mašininis mokymasis jau keičia mūsų gyvenimus

Galite nė nežinoti, bet tikriausiai šiandien jau bent kartą sąveikaujote su mašininio mokymosi sistema.

Medicinos diagnostika – sistemos jau gali aptikti tam tikrus vėžio tipus iš nuotraukų tiksliau nei žmogus gydytojas. Ne todėl, kad jos protingesnės, bet todėl, kad jos gali “pamatyti” milijoną pavyzdžių, kai gydytojas per visą karjerą galbūt mato kelis tūkstančius.

Kalbos atpažinimas – kai kalbate su Siri, Alexa ar Google Assistant, jūsų balsas virsta tekstu naudojant mašininį mokymąsi. Prieš dešimtmetį tokios sistemos buvo beveik nenaudojamos. Dabar jos supranta net akcentus ir dialektus.

Automobilių vairavimas – savivaldžiai automobiliai naudoja mašininį mokymąsi atpažinti pėsčiuosius, kitus automobilius, kelio ženklus. Sistema mokoma milijonais valandų vairavimo duomenų.

Finansai – bankai naudoja mašininį mokymąsi aptikti sukčiavimą. Jei jūsų kortelė staiga panaudojama kitame žemyne, sistema tai pastebi kaip neįprastą elgesį ir gali užblokuoti kortelę.

Vertimas – Google Translate pastaraisiais metais tapo neįtikėtinai geresnis. Anksčiau jis versdavo žodis po žodžio. Dabar jis naudoja neuroninį tinklą, kuris “supranta” visos sakinio prasmę ir verčia natūraliau.

Turinio rekomendacijos – YouTube, Netflix, Spotify – visi jie naudoja mašininį mokymąsi spėti, kas jums patiks. Jie analizuoja, ką žiūrėjote anksčiau, ką žiūri panašūs žmonės, net kokiu paros metu linkę žiūrėti skirtingą turinį.

Problemos ir apribojimai, apie kuriuos reikia žinoti

Mašininis mokymasis nėra magija, ir jis turi rimtų apribojimų.

Juodoji dėžė problema – dažnai nežinome, kodėl sistema priėmė konkretų sprendimą. Neuroninis tinklas su milijonais parametrų yra per sudėtingas žmogui suprasti. Tai problema, kai sprendimai svarbūs – pavyzdžiui, medicinos diagnozėje ar teisingumo sistemoje.

Šališkumas – jei mokymo duomenys yra šališki, sistema bus šališka. Buvo atvejų, kai veido atpažinimo sistemos blogiau atpažindavo tamsesnės odos žmones, nes mokymo duomenyse buvo daugiau šviesiaodžių. Kai Amazon bandė sukurti sistemą vertinti darbo kandidatus, ji išmoko diskriminuoti moteris, nes istoriniai duomenys rodė, kad daugiau vyrų buvo samdomą.

Trūkstamas kontekstas – sistema mato tik tai, ką jai parodote. Ji neturi bendro pasaulio supratimo. Gali būti sistema, kuri puikiai atpažįsta katės nuotrauką, bet visiškai nesupras, kad katė yra gyvas padaras, kuris valgo, miega ir mėgsta dėžes.

Duomenų privatumas – kad sistema veiktų gerai, reikia daug duomenų, dažnai asmeninių. Tai kelia privatumo klausimus. Ar norite, kad jūsų sveikatos duomenys būtų naudojami mokymui, net jei tai padėtų kitiems žmonėms?

Energijos sąnaudos – didelių neuroninių tinklų mokymas sunaudoja milžinišką kiekį energijos. Kai kurie dideli modeliai mokymo metu išskiria tiek anglies dioksido, kiek penki automobiliai per visą savo gyvavimo laiką.

Ką ateitis žada ir kaip galite pradėti

Mašininis mokymasis tik pradeda keisti pasaulį. Artimiausiais metais tikėtina, kad matysime dar daugiau pritaikymų – nuo personalizuotos medicinos iki klimato kaitos modeliavimo.

Jei norite patys išbandyti mašininį mokymąsi, nereikia būti programavimo genijumi. Yra daug nemokamų kursų internete – Coursera, edX, Fast.ai. Pradėti galite su Python programavimo kalba ir bibliotekomis kaip scikit-learn paprastesniems projektams.

Praktinis patarimas: pradėkite nuo mažų projektų. Bandykite sukurti sistemą, kuri atpažintų jūsų rankraštį, arba prognozuotų oro temperatūrą. Nesistenkite iš karto kurti kažko revoliucinio – mokymasis vyksta per praktiką.

Net jei nenorite tapti specialistu, verta suprasti pagrindus. Mašininis mokymasis vis labiau formuoja mūsų pasaulį – nuo to, kokias naujienas matome, iki to, ar gauname paskolą. Suprasdami, kaip tai veikia, galite būti sąmoningesni vartotojai ir piliečiai.

Technologija pati savaime nėra nei gera, nei bloga – viskas priklauso nuo to, kaip ją naudojame. Mašininis mokymasis gali padėti diagnozuoti ligas anksčiau, sumažinti eismo įvykius, išversti kalbas ir sujungti žmones. Bet jis taip pat gali būti naudojamas stebėjimui, manipuliacijai ir diskriminacijai. Mūsų, kaip visuomenės, užduotis – užtikrinti, kad ši galinga technologija būtų naudojama atsakingai ir visiems žmonėms naudingai.