Daugiasluoksniai neuroniniai tinklai: struktūra, veikimas ir pritaikymas

Dirbtinis neuroninis tinklas - informacijos apdorojimo struktūra, imituojanti kai kuriuos gyvųjų organizmų smegenyse vykstančius informacijos perdavimo procesus. Neuroninis tinklas sudaromas iš daugelio tarpusavyje sujungtų labai paprastų skaičiavimo elementų (dirbtinių neuronų). Šie elementai, sujungti įvairaus stiprumo jungtimis, yra apytikslis biologinių neuronų modelis. Dirbtiniu neuroniniu tinklu siekiama emuliuoti kai kurias biologinių sistemų savybes, pvz., biologinių sistemų gebėjimą mokytis, prisitaikyti ir adaptuotis.

Dirbtinio neuroninio tinklo matematinį modelį 1943 m. sukūrė Warrenas Sturgisas McCullochas ir Walteris Harryʼis Pittsas. 1949 m. buvo sukurtas neuroninio tinklo mokymo metodas, o 1958 m. išrastas perceptronas - dirbtinė apmokoma neuroninė sistema, modeliuojanti atpažinimo procesą.

Dirbtiniai neuroniniai tinklai yra tam tikros struktūros matematinės funkcijos, kurios naudojamos kaip funkcijų aproksimatoriai. Dirbtinis neuronas - biologinio neurono abstrakcija, pagrindinis dirbtinių neuroninių tinklų komponentas. Dirbtinis neuronas turi keletą įėjimo signalų (x0, x1, x2, …, xn), su jais susietus svorius (w0, w1, w2, …, wn) ir vieną išėjimo vertę (y). Dažniausiai išėjimo reikšmė skaičiuojama sudedant įėjimo verčių ir atitinkamų svorių sandaugas, ir pritaikant aktyvacijos funkciją. Aktyvacijos funkcija yra būtina, nes be jos visas tinklas supaprastėja į tiesinę regresiją. Toks tinklas negali išmokti daugelio akivaizdžių užduočių, pavyzdžiui, pasakyti, ar dvi reikšmės lygios tarpusavyje. Sakoma, jog tinklas apribotas tik tiesiškai atskiriamomis (angl. linearly separable) užduotimis - vien tuo, ką ir tiesinė regresija gali padaryti.

Yra įvairių rūšių aktyvacijos funkcijų, tokių kaip žingsninė funkcija, „lygintuvo“ funkcija (angl. Rectified Linear Unit (ReLU)), sigmoidinė funkcija, kuri „suploja“ įėjimą į intervalą , ir hiperbolinio tangento funkcija. Taip pat egzistuoja minkštojo maksimumo (angl. softmax) funkcija, kuri paverčia visas išėjimo komponentes į tikimybes, t. y. sunormuoja išėjimo vektorių į . Ji daugiausia naudojama tinkluose, kurie ką nors klasifikuoja.

Dirbtinio neurono schema

Dirbtiniame neuroniniame tinkle neuronus įprasta grupuoti į atskirus sluoksnius. Neuronų įėjimo signalai sudaro įėjimo sluoksnį, kuris nėra skaičiavimo neuronų sluoksnis, o įveda įėjimo kintamųjų vertes į neuroninį tinklą. Prieš duomenų apdorojimą neuroniniu tinklu dažnai atliekamas pirminis jų apdorojimas, pvz., normavimas, centravimas. Po to paeiliui apskaičiuojamos paslėptųjų sluoksnių neuronų išėjimo vertės, galiausiai - išėjimo sluoksnio neuronų išėjimo vertės, kurios laikomos neuroninio tinklo išėjimo vertėmis. Vieno sluoksnio neuronai turi tą pačią perdavimo funkciją. Konkrečiam uždaviniui spręsti reikalingas paslėptųjų neuronų skaičius randamas eksperimentiniu būdu. Praktikoje dažniausiai naudojamas vienas paslėptųjų neuronų sluoksnis.

Neuronai gali būti jungiami įvairiai. Jei signalai sklinda iš kiekvieno neurono įėjimo per visus paslėptuosius elementus ir pasiekia išėjimo neuronus, toks tinklas vadinamas tiesioginio sklidimo tinklu. Šio tinklo neuronų signalai sudaro įėjimo vektorių x, o neuronų išėjimo signalai - vektorių y. Tokia struktūra yra stabili. Jei neuroninis tinklas yra rekurentinis su atgalinėmis jungtimis iš vėlesniųjų neuronų į ankstesniuosius, jis gali būti nestabilus ir dažniausiai turi sudėtingą dinamiką.

Tiesioginio sklidimo ir rekurentinio neuroninių tinklų schemos

Dirbtinio neuroninio tinklo mokymas būna dvejopas: su mokytoju (prižiūrimas mokymas) ir be mokytojo (neprižiūrimas mokymas, arba savimoka). Mokant su mokytoju žinomos ne tik įėjimo, bet ir atitinkamos išėjimo vertės, dar vadinamos užduoties vertėmis, kurias pateikia mokytojas. Mokymo metu minimizuojama tam tikra klaidos funkcija. Labai dažnai tai būna neuroninio tinklo išėjimo y ir užduoties d tarpusavio skirtumo funkcija. Populiarią suminės kvadratinės klaidos funkciją nusako formulė:

E(w)=½∑k=1N∑j=1Q(yjk(x,w)−djk)2

Čia w - vektorius, sudarytas iš visų neuroninio tinklo neuronų svorių, N - mokymo duomenų skaičius, Q - neuroninio tinklo išėjimų skaičius, yjk(x,w) - neuroninio tinklo išėjimo signalas, djk - užduoties vertė neuroninio tinklo j išėjime, kai neuroninio tinklo įėjime veikia duomenų taškas k. Mokymo metu neuronų svoriai keičiami taip, kad E(w) vertė mažėtų - neuroninio tinklo išėjimo vertės artėtų prie norimų verčių. Mokoma naudojant pasirinktą duomenų rinkinį, vadinamą duomenų imtimi. Savimokos atveju pats neuroninis tinklas nustato savo būseną. Apmokyto neuroninio tinklo neuronų svoriai paprastai būna fiksuoti. Informacija, reikalinga konkrečiam uždaviniui spręsti, kaupiama neuronų svorių vertėse.

Neuroninis tinklas per 5 minutes | Kas yra neuroninis tinklas? | Kaip veikia neuroniniai tinklai | Simplilearn

Dirbtiniai neuroniniai tinklai yra viena naujausių informacijos apdorojimo priemonių, taikomų įvairiose žmogaus veiklos srityse. Jie naudojami įvairiems signalams atpažinti, duomenims klasifikuoti, analizuoti, įvairiems reiškiniams prognozuoti, kontroliuoti, techninėms sistemoms modeliuoti, optimizuoti ir kitur. Pavyzdžiui, bioinformatikoje jie naudojami dalinai kintančių, tačiau biologiškai reikšmingų nukleotidų bei aminorūgščių sekų fragmentų paieškai.

Istoriškai pirmi neuroniniai tinklai buvo vienasluoksniai perceptronai. Tačiau šiuolaikiniai daugiasluoksniai neuroniniai tinklai, turintys keletą paslėptųjų sluoksnių, geba spręsti daug sudėtingesnius uždavinius ir aproksimuoti sudėtingas funkcijas.

Pavyzdžiai, kur naudojami neuroniniai tinklai

tags: #daugiasluoksniai #neuroniniai #tinklai