Dirbtinio intelekto neuroniniai tinklai

Kas tie neuroniniai tinklai iš tikrųjų?

Kai girdime apie dirbtinį intelektą, dažniausiai kalbama būtent apie neuroninius tinklus. Bet kas tai per technologija ir kodėl ji taip pakeitė mūsų gyvenimą? Paprasčiausiai tariant, neuroniniai tinklai yra kompiuterinės sistemos, kurios bando imituoti žmogaus smegenų veikimą. Tik vietoj biologinių neuronų čia naudojami matematiniai modeliai ir skaičiavimai.

Įsivaizduokite, kad norite išmokyti kompiuterį atpažinti katę nuotraukoje. Senais laikais programuotojai turėdavo surašyti dešimtis tūkstančių taisyklių: „jei turi ūsus”, „jei turi smailas ausis”, „jei turi keturias kojas” ir taip toliau. Problema ta, kad katės būna visokios – ilgaplaukės, trumpaplaukės, juodos, margos, gulėdamos, šokančios. Neįmanoma aprašyti visų variantų.

Neuroniniai tinklai sprendžia šią problemą visiškai kitaip. Jūs tiesiog parodote jiems tūkstančius katių nuotraukų ir pasakote „tai katė”, o paskui parodote šunų, paukščių ir kitų gyvūnų nuotraukas sakydami „tai ne katė”. Sistema pati išmoksta atpažinti, kas yra katė, be jokių griežtų taisyklių. Ji tiesiog „supranta” modelius ir dėsningumus, kurie skiria kates nuo kitų objektų.

Kaip visa tai prasidėjo

Idėja kurti sistemas, panašias į smegenis, nėra nauja. Dar 1943 metais mokslininkai Warren McCulloch ir Walter Pitts sukūrė pirmąjį dirbtinio neurono matematinį modelį. Bet tai buvo tik teorija ant popieriaus. Tikrasis proveržis įvyko 1958 metais, kai Frankas Rosenblatt sukūrė „Perceptroną” – pirmąją veikiančią neuroninę sistemą, kuri galėjo atpažinti paprastus vaizdinius modelius.

Tačiau po pradinio entuziazmo sekė nusivylimas. Paaiškėjo, kad paprastos neuroninės struktūros gali spręsti tik labai primityvias problemas. 1969 metais Marvin Minsky ir Seymour Papert paskelbė knygą, kurioje matematiškai įrodė perceptrono apribojimus. Tai taip atšaldė mokslininkų entuziazmą, kad dirbtinio intelekto srityje prasidėjo tai, kas dabar vadinama „AI žiema” – laikotarpis, kai finansavimas ir tyrimai beveik sustojo.

Renesansas prasidėjo aštuntajame dešimtmetyje, kai buvo išrastas „atgalinio sklidimo” algoritmas. Jis leido mokyti sudėtingesnius, daugiasluoksnius neuroninius tinklus. Bet tikroji revoliucija įvyko tik apie 2012 metus, kai kompiuteriai tapo pakankamai galingi, o duomenų – pakankamai daug, kad būtų galima mokyti tikrai giluminius neuroninius tinklus su dešimtimis ar net šimtais sluoksnių.

Iš ko susideda neuroniniai tinklai

Pabandykime suprasti, kaip visa tai veikia iš vidaus. Pagrindinis statybinis blokas yra dirbtinis neuronas – tai matematinė funkcija, kuri gauna kelis įvesties signalus, juos sudeda su tam tikrais svoriais ir išduoda vieną rezultatą. Panašiai kaip biologinis neuronas gauna signalus per dendritus ir siunčia signalą per aksoną, tik čia vietoj elektrocheminių procesų vyksta paprasti matematiniai veiksmai.

Šie neuronai sujungiami į sluoksnius. Paprastai būna įvesties sluoksnis, vienas ar daugiau paslėptųjų sluoksnių ir išvesties sluoksnis. Pavyzdžiui, jei kuriate sistemą, kuri atpažįsta rankraštį, įvesties sluoksnis gautų pikselių reikšmes iš nuotraukos, paslėptieji sluoksniai apdorotų šią informaciją vis labiau abstrahuodami (pirmasis galbūt atpažintų linijas, antrasis – raides dalis, trečiasis – visas raides), o išvesties sluoksnis pasakytų, koks skaitmuo ar raidė ten nupiešta.

Svarbiausia čia yra svoriai – skaičiai, kurie nusako, kiek svarbus vieno neurono signalas kitam neuronui. Iš pradžių šie svoriai būna atsitiktiniai, todėl tinklas duoda visiškai neteisingus atsakymus. Bet mokymosi procesas pamažu koreguoja šiuos svorius, kol sistema pradeda veikti teisingai.

Mokymosi procesas – kaip mašina tampa protinga

Mokymas yra pats įdomiausias dalykas. Yra keletas skirtingų mokymosi būdų, bet populiariausias vadinamas „prižiūrimu mokymusi”. Čia jūs turite didelį duomenų rinkinį su teisingais atsakymais – pavyzdžiui, tūkstančius nuotraukų, kur kiekvienoje pažymėta, kas ten pavaizduota.

Sistema ima pirmąją nuotrauką, praleidžia ją per visus sluoksnius ir išduoda atsakymą. Dažniausiai iš pradžių tas atsakymas būna visiškai neteisingas. Tada sistema palygina savo atsakymą su teisingu atsakymu ir apskaičiuoja klaidą. Štai čia ir prasideda magija – naudojant atgalinio sklidimo algoritmą, klaida „keliauja” atgal per visus sluoksnius, ir kiekvienas svoris šiek tiek pakoreguojamas taip, kad kitą kartą klaida būtų mažesnė.

Šis procesas kartojamas milijonus kartų su visomis mokymo nuotraukomis. Pamažu svoriai „nusistovi” į tokias reikšmes, kurios duoda gerus rezultatus. Tai primena vaiką, kuris mokosi atpažinti gyvūnus – iš pradžių jis gali pavadinti karvę šunimi, bet po daugelio pataisymų jis išmoksta skirti skirtingus gyvūnus.

Yra ir kitų mokymosi būdų. „Neprižiūrimas mokymasis” leidžia sistemai pačiai rasti dėsningumus duomenyse be teisingų atsakymų. „Sustiprinimo mokymasis” mokosi per bandymus ir klaidas, gaudamas atlyginimą už teisingus veiksmus – būtent taip buvo išmokytos sistemos, kurios nugali pasaulio čempionus šachmatų ar Go žaidimuose.

Giluminio mokymosi era

Apie 2012 metus prasidėjo tai, kas dabar vadinama giluminiu mokymusi (deep learning). Tai neuroniniai tinklai su labai daug sluoksnių – kartais šimtais. Kodėl tai taip svarbu? Kiekvienas papildomas sluoksnis leidžia sistemai suprasti vis sudėtingesnius ir abstraktesnius dalykus.

Įsivaizduokite, kad mokote sistemą atpažinti veidus. Pirmasis sluoksnis gali išmokti atpažinti paprastas linijas ir kraštus. Antrasis sluoksnis kombinuoja tas linijas į akių, nosies, burnos formas. Trečiasis sluoksnis supranta, kaip tos dalys sudaro veidą. Ketvirtasis gali atpažinti specifinius veidus ar net emocijas. Kuo daugiau sluoksnių, tuo sudėtingesnius dalykus sistema gali suprasti.

Proveržis įvyko, kai Geoffrey Hinton ir jo komanda 2012 metais ImageNet varžybose naudojo giluminį neuroninį tinklą vaizdo atpažinimui ir sutriuškino visus konkurentus. Jų sistema klydavo tik 15% atvejų, kai kitos sistemos klydavo 25-30%. Tai buvo akivaizdus įrodymas, kad giluminis mokymasis veikia.

Nuo tada technologija vystėsi eksponentiškai. Atsirado specializuoti neuroninių tinklų tipai skirtingoms užduotims. Konvoliuciniai neuroniniai tinklai (CNN) puikiai tinka vaizdo analizei. Rekurentiniai neuroniniai tinklai (RNN) ir jų patobulintos versijos LSTM gali dirbti su sekomis – tekstu, kalba, laiko eilutėmis. Transformeriai, kurie pasirodė 2017 metais, tapo pagrindu šiuolaikinėms kalbos modeliams kaip GPT.

Kur visa tai naudojama šiandien

Neuroniniai tinklai jau yra visur aplink mus, net jei to nepastebime. Kai naudojate Google paieškos sistemą, neuroniniai tinklai padeda suprasti, ko iš tikrųjų ieškote. Kai Facebook atpažįsta jūsų draugus nuotraukose – tai neuroniniai tinklai. Kai Netflix rekomenduoja jums filmą – vėlgi neuroniniai tinklai.

Medicinos srityje neuroniniai tinklai jau gali diagnozuoti tam tikras ligas iš rentgeno nuotraukų ar tomogramų geriau nei žmogus gydytojas. Jie gali aptikti vėžio požymius ankstyvose stadijose, kai žmogaus akiai jie dar nematomi. Tiesa, kol kas gydytojai naudoja juos kaip pagalbinę priemonę, o ne pakeitimą.

Autonominiai automobiliai – tai iš esmės neuroninių tinklų rinkinys ant ratų. Vienas tinklas atpažįsta kelio ženklus, kitas – pėsčiuosius, trečias – kitus automobilius, ketvirtas – kelio linijas. Visi jie dirba kartu, kad automobilis galėtų saugiai važiuoti.

Kalbos technologijose neuroniniai tinklai padarė didžiulę pažangą. Vertimo sistemos kaip Google Translate dabar naudoja neuroninius tinklus ir verčia daug geriau nei senais laikais. Balso asistentai kaip Siri ar Alexa naudoja neuroninius tinklus, kad suprastų, ką sakote, ir sugeneruotų atsakymus. O naujausi kalbos modeliai kaip ChatGPT gali rašyti tekstus, kuriuos sunku atskirti nuo žmogaus parašytų.

Problemos ir apribojimai

Nors neuroniniai tinklai atrodo kaip stebuklas, jie turi nemažai problemų. Pirmiausia, jiems reikia didžiulių duomenų kiekių. Jei norite išmokyti sistemą atpažinti kates, jums reikės ne kelių šimtų, o kelių dešimčių ar net šimtų tūkstančių katių nuotraukų. Ir tos nuotraukos turi būti įvairios – skirtingų veislių katės, skirtingose pozose, skirtingame apšvietime.

Antra problema – skaičiavimo galia. Dideli neuroniniai tinklai reikalauja milžiniškų skaičiavimo resursų. Šiuolaikiniai kalbos modeliai mokomi naudojant tūkstančius galingų grafinių procesorių savaites ar net mėnesius. Tai kainuoja milijonus dolerių ir sunaudoja didžiulius kiekius elektros energijos.

Trečia problema – „juodosios dėžės” efektas. Kai neuroninį tinklą su milijonais parametrų išmokote atpažinti kažką, jūs negalite pasakyti, kodėl jis priima tokį ar kitokį sprendimą. Sistema tiesiog „žino”, bet negali paaiškinti. Tai kelia problemų, ypač tokiose srityse kaip medicina ar teisė, kur svarbu suprasti sprendimo priežastis.

Dar viena problema – šališkumas. Jei mokymo duomenyse yra šališkumo, sistema jį perims ir net sustiprins. Buvo atvejų, kai veido atpažinimo sistemos blogiau atpažindavo tamsios odos žmones, nes mokymo duomenyse jų buvo mažiau. Arba kai darbo kandidatų atrankos sistema diskriminavo moteris, nes buvo mokoma istoriniais duomenimis, kur dauguma sėkmingų kandidatų buvo vyrai.

Ką ateitis žada

Neuroninių tinklų technologija toliau sparčiai vystosi. Viena įdomių krypčių yra „transfer learning” – galimybė paimti jau išmokytą tinklą ir greitai pritaikyti jį naujai užduočiai. Pavyzdžiui, sistemą, kuri išmoko atpažinti objektus milijonuose nuotraukų, galima greitai permokyti atpažinti specifinius medicininius vaizdus su daug mažesniu duomenų kiekiu.

Kita svarbi kryptis – efektyvumo didinimas. Mokslininkai kuria vis efektyvesnes neuroninių tinklų architektūras, kurioms reikia mažiau skaičiavimo galios ir energijos. Kai kurie tinklai jau gali veikti net išmaniuosiuose telefonuose, nors dar prieš kelerius metus tam būtų reikėję galingų serverių.

Yra ir visiškai naujų idėjų. „Neuromorphic computing” bando kurti kompiuterių aparatinę įrangą, kuri fiziškai veiktų panašiai kaip smegenys, o ne tiesiog simuliuotų jų veikimą programiškai. Tai galėtų būti daug efektyviau.

Kvantiniai kompiuteriai, kai jie taps praktiški, gali suteikti neuroninių tinklų mokymui visiškai naują galią. Nors dar anksti kalbėti apie konkrečius rezultatus, teoriškai kvantiniai kompiuteriai galėtų mokytis tam tikrus neuroninius tinklus eksponentiškai greičiau nei įprasti kompiuteriai.

Kaip pradėti eksperimentuoti patiems

Gera žinia ta, kad nebereikia būti didelės korporacijos ar turėti doktorantūros, kad galėtumėte eksperimentuoti su neuroniniais tinklais. Yra daug nemokamų įrankių ir išteklių.

Populiariausios bibliotekos yra TensorFlow (Google) ir PyTorch (Facebook/Meta). Abi yra nemokamos ir atvirojo kodo. PyTorch dažnai laikomas draugiškesniu pradedantiesiems, nes jo kodas intuityvesnis. TensorFlow turi daugiau dokumentacijos ir pavyzdžių.

Jei nenorite rašyti kodo nuo nulio, galite naudoti aukštesnio lygio įrankius kaip Keras (dabar integruotas į TensorFlow) ar fastai. Jie leidžia sukurti ir išmokyti neuroninius tinklus su keliais kodo eilutėmis.

Skaičiavimo galiai nebūtinai reikia pirkti brangius kompiuterius. Google Colab suteikia nemokamą prieigą prie galingų GPU serverių. Tiesa, su apribojimais, bet pradžiai daugiau nei pakanka. Alternatyvos – Kaggle Notebooks ar Paperspace Gradient.

Mokytis galima iš daugybės nemokamų kursų. Fast.ai kursas „Practical Deep Learning for Coders” yra puikus, nes pradeda nuo praktikos ir tik paskui eina į teoriją. Andrew Ng kursai Coursera platformoje yra labiau akademiški, bet labai išsamūs. YouTube pilnas gerų paaiškinimų – kanalai kaip 3Blue1Brown turi puikių vaizdinių neuroninių tinklų paaiškinimų.

Pradėkite nuo paprastų projektų. Pavyzdžiui, MNIST duomenų rinkinys su rankraščio skaitmenimis yra klasikinis pirmasis projektas. Arba bandykite klasifikuoti gėles pagal nuotraukas naudojant Iris duomenų rinkinį. Kai įgausite pasitikėjimo, galite pereiti prie sudėtingesnių dalykų.

Kai technologija tampa realybe

Neuroniniai tinklai per pastaruosius dešimt metų transformavosi iš akademinės smalsumo į technologiją, kuri keičia beveik kiekvieną pramonės šaką. Tai, kas dar neseniai atrodė kaip mokslinė fantastika – kompiuteriai, kurie mato, girdi ir supranta kalbą – dabar yra kasdienybė.

Bet svarbu suprasti, kad tai vis dar tik įrankis. Neuroniniai tinklai nėra tikras intelektas – jie tiesiog labai gerai atpažįsta modelius ir daro prognozes pagal tuos modelius. Jie nesupranta, ką daro, taip kaip supranta žmogus. Jie neturi sąmonės, intuicijos ar tikro supratimo.

Vis dėlto jų galimybės stulbinančios ir toliau auga. Kiekvienas mėnuo atneša naujų proveržių – geresnius vaizdo generavimo modelius, tikslesnius medicininius diagnostikos įrankius, efektyvesnius vertimo algoritmus. Technologija tampa vis prieinamesnė ir lengviau naudojama.

Ar tai reiškia, kad neuroniniai tinklai greitai pakeis žmones daugelyje darbų? Tikėtina, kad kai kurie darbai pasikeis ar išnyks, bet atsirado ir naujų profesijų. Reikia žmonių, kurie mokytų šias sistemas, prižiūrėtų jas, aiškintų jų sprendimus, užtikrintų, kad jos veiktų etiškai ir teisingai.

Galiausiai neuroniniai tinklai yra tiesiog labai galingas įrankis žmogaus rankose. Kaip ir bet kuris įrankis, jie gali būti naudojami ir gerai, ir blogai. Mūsų atsakomybė – užtikrinti, kad ši technologija tarnautų žmonijai, o ne atvirkščiai.

Поделиться: XFacebookPinterestLinkedin