**Tehisnärvivõrk** on bioloogilise aju eeskujul ehitatud arvutuslik arhitektuur. Närvivõrgud koosnevad omavahel ühendatud elementidest, mida kutsutakse sõlmedeks (vahel ka neuroniteks (tehisneuron)). Närvivõrkudel puudub selge esitlus nendes olevatest teadmistest, selle asemel on teadmised kujutatud mustritena, mis omavahel mõjutavad võrgu komponente. Kõige tuntum versioon tehisnärvivõrgust on pärilevivõrk, milles kõik ühendused sõlmede vahel liiguvad sisenditest väljundite suunas. Tehisnärvivõrkude üks suur eelis on, et neile ei pea suuri ja keerulisi protsesse kirjeldama konkreetses matemaatilises formaadis. Närvivõrku saab vaadelda kui universaalset musta kasti, mis suudab leida peaaegu iga süsteemi jaoks ligikaudse lahenduse või ennustuse. Erinevad tehisintellekti programmid kasutavad tehisnärvivõrke.

Närvivõrgu mudel
----------------

Tehisnärvivõrgu struktuur koosneb tavaliselt omavahel ühendatud kihtidest. Kõige tähtsamad kihid närvivõrgus on sisendkiht, varjatud kiht ja väljundkiht. Iga kiht sisaldab sõlmesid oma sisendite ja väljunditega, millel on aktivatsioonifunktsioonid. Kihtides olevate sõlmede ja varjatud kihtide arv sõltuvad närvivõrgu lahendatavast probleemist. Klassikalisel närvivõrgul on lisaks sisend-, väljund- ja varjatud sõlmedele ka vabaliikme sõlmed, mis jooksevad väljund- ja peidetud kihtidesse. Üksikute sõlmede vahelistel ühendustel on kaalud ja need määravad, kui suur osa ühe sõlme väljundist jõuab teise sõlme sisendisse.

Tehisnärvivõrk koosneb omavahel ühendatud sõlmedest, mida kutsutakse ka neuroniteks. Sellel pildil on kujutatud ringikestena üksikud sõlmed ja nooltega nendevahelised ühendused.
### Sisendkiht

Sisendkiht koosneb ühest või enamast sisendsõlmest. Sisendkihi sõlmed väljastavad normaliseeritud arvväärtused järgnevatele kihtidele. Väljundi normaliseerimiseks rakendatakse tavaliselt sama aktivatsioonifunktsiooni kui varjatud kihtidel.

### Varjatud kihid

Varjatud kiht võib sisaldada üht või enamat varjatud sõlme, mis võtavad sisse endast kõrgemal asuvate sõlmede ja vabaliikme sõlmede väljundi korrutatuna läbi ühenduse kaaluga. Sõltuvalt närvivõrgust võib varjatud kiht närvivõrgust puududa. Klassikaliselt ühe varjatud kihi sõlme väljund leitakse valemiga

{\displaystyle \sigma \left(\sum \_{j=1}^{N}V\_{ij}x\_{j}+T\_{i}^{hid}\right),}

kus *σ*() kutsutakse aktivatsioonifunktsiooniks, *N* on sisendsõlmede arv, *Vij* on kaalud, *xj* on sisendid sisendsõlmedele ja *Tihid* on vabaliige, mis määrab varjatud sõlme lävendi .
Aktivatsioonifunktsiooni eesmärk on piirata sõlme väljundit ette määratud vahemikku, et selle väljund ei üleküllastaks järgnevaid sõlmi. Tihti rakendatakse käivitusfunktsioonina kas lineaarseid, sigmoid või Gaussi jaotusel põhinevaid funktsioone.
Kaalud määravad, kui suur mõju on igal sisendil sõlme lõppväljundi arvutamisel. Närvivõrgu treenimise käigus muudetakse ainult kaalude väärtuseid.

### Väljundkiht

Väljundkiht koosneb ühest või enamast väljundsõlmest, mille tulem ei pea olema normaliseeritud. Väljundkihis olevate sõlmede tulemid loetakse närvivõrgu vastusteks. Sõltuvalt rakendusest võib üks väljundsõlm määrata kuuluvusklassi või on selle asemel mitu sõlme, mis kõik määravad oma klassi kuuluvuse tõenäosust.

### Vabaliikmed

Vabaliikmeid kutsutakse ka negatiivseks lävendiks. Vabaliikmed saadavad oma väärtuse peidetud sõlmede ja väljundsõlmede sisenditesse konstantidena. Vabaliikmed hoiavad endas numbrilist väärtust (vaikimisi 1), mis ei muutu õppimisprotsessi käigus, aga selle kaal võib muutuda. Vabaliikmed suurendavad närvivõrgu võimekust, kuna nad toovad sisse konstandid, mis ei sõltu sisendist.

Õppimine
--------

Tehisnärvivõrkude üks erilisemaid omadusi võrreldes teiste arvutuslike arhitektuuridega on selle õppimisvõime. Kui närvivõrgule on määratud kindel ülesanne, funktsioonide hulk, mida ta rakendab ja vaatluste hulk oodatud tulemustest, siis suudab närvivõrk leida kaalud, mille puhul on võimalik teha ennustusi mingi veaga.

### Juhendamata õpe

Juhendamata õppe käigus ei anta tehisnärvivõrgule tahetud lõppvastuseid treeningu ajal, selle asemel moodustuvad süsteemid, mis kategoriseerivad peamisi mustreid sisendandmetes. Juhendamiseta õppimismeetodit rakendatakse tihti andmete klasterdamiseks, servade eristamiseks, sarnasuste tuvastamiseks ja olukordades, kus ei ole ette määratud, mis omaduste järgi andmed peaksid jagatud olema.

### Juhendatud õpe

Juhendatud õppe käigus on olemas sisendandmete kõrval ka väljundandmed ning lisaks kontrollmaterjalid sarnases formaadis. Tehisnärvivõrk töötleb sisendit ja toodab oma pakutud väljundi, mida võrreldakse soovitud väljundiga. Iga võrdluse käigus leitud viga saadetakse närvivõrgule tagasi ja toimub kaalude uuendamine. Juhendamisega õpet kasutatakse enamasti mustrite tuvastamiseks ja regressioonis, kus klassikaliste meetodite rakendamine on liiga kulukas või keeruline. Kolm kõige tuntumat meetodit, mida rakendatakse juhendamisega õppel, on tagasilevi, simuleeritud lõõmutamine ja geneetilised algoritmid.

#### Vea arvutus

Närvivõrgu genereeritud väljundit võrreldakse soovutatakse väljundiga ja arvutatakse viga valemiga

{\displaystyle E=\sum \_{P}\sum \_{p}(y\_{i}-t\_{i})^{2},}

kus *ti* on soovitud väljundi väärtus, *yi* on närvivõrgu genereeritud väljund, *p* on väljundsõlmede arv ja *P* on treeningpunktide arv. Iga iteratsiooniga liigub viga närvivõrgus tagurpidi tagasi ja selle abil muudetakse kaalude väärtuseid.

#### Tagasilevi

Gradientlaskumine, et leida madalaim punkt
Tagasilevi algoritmi rakendatakse pärilevivõrkude treeningul. Tagasilevi algoritm kasutab igal iteratsioonil leitud viga ja liigub närvivõrgus tagurpidi üles. Iga sõlme läbimisel leitakse kaalude muudatused ning kihtide kaupa leitakse ka uued vead järgnevate sõlmede kaalude muudatuste jaoks. Seda korratakse kuni närvivõrk on tagurpidi läbitud ja kaalud muudetud. Iga sõlme raskuse muudatus leitakse, kui

{\displaystyle \Delta \_{w\_{ij\_{m}}}=\epsilon \delta \_{j\_{p}}\alpha \_{i\_{q}}{\begin{cases}\delta \_{j\_{p}}=\alpha \_{j\_{q}}(1-\alpha \_{j\_{q}})(t\_{j\_{q}}-\alpha \_{j\_{q}}){\text{ kui on väljundneuron}}\\\delta \_{j\_{p}}=\alpha \_{j\_{q}}(1-\alpha \_{j\_{q}})\sum \_{x=0}^{n}\delta \_{k\_{x}}w\_{jk\_{x}}{\text{ kui on peidetud neuron}}\end{cases}},}

kus *i* on eelnev sõlm, *j* on järgnev sõlm, *k* on kihtide arv, mis järgnevad sõlmele *j*; *ij* on kaal sõlmede *i* ja *j* vahel, *jk* on kaal sõlmede *j* ja *k* vahel, *w* on kaalud, *α* on sõlmede aktivatsioonid ja *ε* on õpisamm. Kuna tagasilevi parandab kaalusid lähtudes gradiendist, siis see on äärmiselt tundlik lokaalsete miinimumide suhtes ja ei lähene alati globaalsele miinimumile.

#### Simuleeritud lõõmutamine

Simuleeritud lõõmutamismeetodi kasutamine globaalse maksmumi leidmiseks
Simuleeritud lõõmutamine on analoogne lõõmutamisele, mis on füüsikaline protsess, kus teras kuumutatakse üle kriitilise punkti ja siis aeglaselt jahutamise käigus moodustub kristalne struktuur. Simuleeritud lõõmutamise käigus algoritm alustab tegevust kõrgel temperatuuril (*T*) ja iga iteratsiooniga *T* langeb ette määratud miinimumini. Iga *T* juures määratakse uued suvalised kaalud ja parimad tulemused jäetakse alles. Alternatiivina seotakse *T* juhusliku sammu pikkusega ja algoritm astub järjest väiksema sammuga juhuslikus suunas. Lokaalsete miinimumide vältimiseks valib simuleeritud lõõmutamise algoritm ette määratud tõenäosusega ka halvemaid juhtumeid, kuid seni läbitud juhtumite seast parimad jäetakse ikkagi alles. Simuleeritud lõõmutamise suur eelis teiste otsingumeetodite ees on selle suur juhuslik otsinguruum, mille tõttu jääb see palju harvem lokaalsete miinimumide taha kinni.

#### Geneetiline algoritm

Geneetilise algoritmi rakendus uue generatsiooni loomisel. Toimub kahe elemendi ristumine, et luua järglasi, mis on kombinatsioonid varasema populatsiooni liikmetest
Geneetiline algoritm on globaalne otsingumeetod, mis otsib seoseid ühest punktide populatsioonist teiseni. Kuna see algoritm valib pidevalt parameetrite ruumist uusi punkte, siis selle otsing on alati suunatud parimatele tulemustele. Kõigepealt luuakse punktidest algne populatsioon ja arvutatakse iga punkti jaoks tema viga. Sõltuvalt vigadest luuakse uus populatsioon, kus vanast populatsioonist parimatel punktidel on suurem tõenäosus sattuda uude populatsiooni. Uue populatsiooni punktid paaritakse suvaliselt ja iga punkti puhul leitakse nende kombineeritud järglased koos mutatsioonidega. See tulem täidab uue populatsiooni ning tsüklit korratakse, kuni jõutakse optimaalseima lahenduseni või määratud iteratsioonide arv saab täis. Korduvalt on väidetud, et geneetiline algoritm on tõhusam kui muud traditsioonilised otsingumeetodid, kuna see ei jää lokaalsete miinimumide taha kinni nagu tagurpidi levik ja on rohkem suunatud kui simuleeritud lõõmutamine.

### Stiimulõpe

Stiimulõpe eeldab, et agendid toimivad keskkonnas, tunnetavad oma olukorda, keskkonna olukorda ja valivad oma tegevused vastavalt vastastikusele mõjule. Tähtis element stiimulõppes on agentide eesmärk, mis tavaliselt on tasu signaali maksimeerimine. Keskkonnas otsuste tegemine mõjutab tasu signaali ja seega ka eesmärki. Stiimulõppes jagatakse probleem metoodikaks, tasufunktsiooniks, väärtusfunktsiooniks ja keskkonnamudeliks.

Viited
------

1. 1 2 3  Bishop, C.M. 1995a. Neural Networks for Pattern Recognition. Oxford University Press, New York.
2. 1 2 3 4 5  David Leverington , 2009 , A Basic Introduction to Feedforward Backpropagation Neural Networks. Texsas Tech University department of Geosciences.
3. 1 2 3 4  M. Mohan Raju, R. K. Srivastava, Dinesh C. S. Bisht, H. C. Sharma, and Anil Kumar, "Development of Artificial Neural-Network-Based Models for the Simulation of Spring Discharge," Advances in Artificial Intelligence, vol. 2011, Artikkel ID 686258, 11 lehekülge, 2011. doi:10.1155/2011/686258.
4. ↑  2016 , A Basic Introduction To Neural Networks, University of Wisconsin Madison,
5. ↑  Wang, S. C. (2003). Artificial neural network. In Interdisciplinary Computing in Java Programming (lk. 81–100). Springer US.
6. ↑  Karlik, B. & Olgac, A. V. (2011). Performance analysis of various activation functions in generalized MLP architectures of neural networks. International Journal of Artificial Intelligence and Expert Systems, 1(4), 111–122.
7. ↑  Melin, P. & Castillo, O. (2005). Unsupervised Learning Neural Networks. InHybrid Intelligent Systems for Pattern Recognition Using Soft Computing(lk. 85–107). Springer Berlin Heidelberg.
8. ↑  2016, Supervised learning ,
9. ↑  Cios, K. J. Swiniarski, R. W. Pedrycz, W. & Kurgan, L. A. (2007). Supervised Learning: Neural Networks. In Data Mining (lk. 419–451). Springer US.
10. 1 2 3  Subhendu Sekhar Behera, Subhagata Chattopadhyay, 2012, A Comparative Study of Back Propagation and Simulated Annealing Algorithms for Neural Net Classifier Optimization
11. 1 2  Randall S. Sexton , Optimization of Neural Networks: A Comparative Analysis of the Genetic Algorithm and Simulated Annealing, Ball State University
12. ↑  Sutton, R. S. & Barto, A. G. (1998). Reinforcement learning: An introduction (Vol. 1, No. 1). Cambridge: MIT press.