Dirbtinis neuroninis tinklas

**Dirbtinis neuroninis tinklas** – informacijos apdorojimo struktūra, sudaryta iš tarpusavyje sujungtų dirbtinių neuronų. Šis modelis mėgdžioja žmogaus ir gyvūnų galvos smegenų darbą, neuronų veikimą.

Dirbtiniai neuroniniai tinklai yra tam tikros struktūros matematinės funkcijos, kurios naudojamos kaip funkcijų aproksimatoriai. Tai reiškia, jog neuroniniam tinklui suteikiant pavyzdinę informaciją (funkcijos įvestį ir rezultatą), jis geba išmokti imituoti pavyzdinę funkciją.

## Dirbtinis neuronas

**Dirbtinis neuronas** – biologinio neurono abstrakcija, pagrindinis dirbtinių neuroninių tinklų komponentas. 

Dirbtinis neuronas turi keletą įėjimo signalų (*x<sub>0</sub>*, *x<sub>1</sub>*, *x<sub>2</sub>*, …, *x<sub>n</sub>*), su jais susietus svorius (*w<sub>0</sub>*, *w<sub>1</sub>*, *w<sub>2</sub>*, …, *w<sub>n</sub>*) 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ą. Neuroniniai tinklai tapo tinkami naudoti praktiškai, suradus efektyvius algoritmus šiems svorio koeficientams surasti.

Išėjimo reikšmė gaunama pagal formulę:

: y =  \varphi \left( \sum_{j=0}^n w_{j} x_j \right)

Koeficientai w vadinami įėjimų svoriais, o funkcija \varphi – aktyvacijos funkcija.

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 () užduotimis – vien tuo, ką ir tiesinė regresija gali padaryti. 

Dažni aktyvacijos funkcijų pasirinkimai yra šie:

\varphi(x) = \begin{cases} 0 & x \leq 0, \\ 1 & x > 0 \end{cases} – žingsninė funkcija. Ši funkcija naudota ankstyvojoje dirbtinių neuroninių tinklų stadijoje bet dabar ji mažai naudojama.

\varphi(x) = \begin{cases} 0 & x \leq 0, \\ x & x > 0 \end{cases} – vadinamoji „lygintuvo“ funkcija (). Apie 2016 metus buvo viena dažniausiai naudojamų.

\varphi(x) = \frac{1}{1+e^{-x}} – vadinamoji sigmoidė, kuri „suploja“ įėjimą į intervalą [0;1]. Tai yra lyg tam tikra visur diferencijuojama žingsninė funkcija. Praeityje atrodė labai svarbu, jog funkcija visur būtų diferencijuojama, bet vėliau buvo patebėta, jog tai nėra būtina.

\varphi(x) = \tanh(x) – hiperbolinio tangento funkcija. Tai – ta pati sigmoidė, tačiau išvedamos reikšmės intervale [-1;1].

\varphi(x)_i = \frac{e^{x_i}}{\sum_n e^{x_n}} – minkštojo maksimumo () funkcija. Ji paverčia visas išėjimo komponentes į tikimybes, t. y. sunormuoja išėjimo vektorių į 1. Ji daugiausia naudojama tinkluose, kurie ką nors klasifikuoja. Tuomet \varphi(x)_i kiekvienai komponentei priskirs klasės tikimybę.

## Neuroninių tinklų klasifikacija

Esama įvairių rūšių neuroninių tinklų. Vieni iš jų apmokomi su mokytoju (žinant reikiamas tinklo išėjimų reikšmes), kiti – be mokytojo. Istoriškai pirmi neuroniniai tinklai buvo vienasluoksniai perceptronai. Šiuo metu plačiausiai taikomi konvoliuciniai neuroniniai tinklai, ypač su vaizdo aprodojimu susijusiose užduotyse.

## Taikymas

Dirbtiniai neuroniniai tinklai taikomi šiose srityse:
* grafinių vaizdų atpažinimas;
* bioinformatikoje – dalinai kintančių, tačiau biologiškai reikšmingų nukleotidų bei aminorūgščių sekų fragmentų paieška. Sistema apmokoma naudojant žinomų sekų rinkinį ir randa naujas, panašiai atrodančias sekas.
* finansuose – analizuojant ir prognozuojant akcijų kitimo kursus;
* procesams modeliuoti ir valdyti: fizinės sistemos neuroninių tinklų modelis taikomas geriausiems valdymo parametrams nustatyti;
* mašinų diagnostikai: stebi mašiną ir jai sugedus įspėja sistemą;
* taikiniui atpažinti: karinėse programose padeda apdoroti paprastą arba infraraudonųjų spindulių vaizdą priešo taikiniui nustatyti.
* medicininei diagnozei: analizuodami simptomus ir vaizdo duomenis, pavyzdžiui, rentgeno nuotraukas, tinklai padeda gydytojams nustatyti diagnozę.

## Šaltiniai