Mākslīgais neironu tīkls

**Mākslīgais neironu tīkls**, **MNT** (, *ANN*) ir datorsistēma, kas veidota, iedvesmojoties no neironu tīkla, kāds ir dzīvnieku smadzenēs. Mākslīgais neironu tīkls pats par sevi nav algoritms, bet gan daudzu dažādu mašīnmācīšanās algoritmu ietvars, kur kopdarbā tiek apstrādāti sarežģīti ievades dati. Šādas sistēmas "iemācās" veikt uzdevumus pēc apmācības piemēriem; parasti netiekot programmētas ar uzdevumam specifiskiem noteikumiem.

[thumb|220px|Mākslīgais neironu tīkls ir savstarpēji saistītu mezglu grupa, kas līdzinās plašam [neirons|neironu tīklam smadzenēs. Šeit katrs apļveida mezgls apzīmē mākslīgo neironu, un bulta apzīmē savienojumu no viena mākslīgā neirona izejas uz cita ieeju]]

Piemēram, attēlu atpazīšanā MNT var iemācīties identificēt attēlus, kas satur kaķus, analizējot piemēra attēlus, kas manuāli apzīmēti kā "ir kaķis" vai "nav kaķa", un, izmantojot apmācības rezultātus, spētu identificēt kaķus citos attēlos ar augstu varbūtību. Mākslīgie neironu tīkli to dara bez jebkādām iepriekšējām zināšanām par kaķiem, piemēram, par to, ka tiem ir kažoks, aste, ūsas un kaķiem līdzīgas sejas. Tā vietā tie automātiski ģenerē identificējošās pazīmes no mācību materiāla, ko tie apstrādā.

Mākslīgo neironu tīklu pamatā ir savienotu vienību jeb mezglu, sauktu par mākslīgajiem neironiem, kopums, kas vienkāršoti modelē neironus bioloģiskajās smadzenēs. Katrs savienojums, līdzīgi kā dzīvnieku smadzeņu sinapses, var pārraidīt signālu no viena neirona uz citu. Mākslīgais neirons, kas saņem signālu, var to apstrādāt un pēc tam nodot signālu papildu mākslīgajiem neironiem, kas tam pievienoti.

MNT vispārējās realizācijās signāls savienojumā starp mākslīgajiem neironiem ir reāls skaitlis, un katra mākslīgā neirona izvade tiek aprēķināta pēc kādas nelineāras funkcijas no tā ievades summas. Savienojumus starp mākslīgajiem neironiem sauc par "šķautnēm" (*edges*). Mākslīgajiem neironiem un šķautnēm parasti ir svars, kas piemērojas, mācoties. Svars palielina vai samazina signāla stiprumu savienojumā. Mākslīgajiem neironiem var būt tāds slieksnis, ka signāls tiek nosūtīts tikai tad, ja kopsummas signāls šķērso šo slieksni. Parasti mākslīgie neironi tiek sakopoti slāņos. Dažādi slāņi var veikt dažāda veida transformācijas ar to ievadēm. Signāli pārvietojas no pirmā slāņa (ievades slāņa) uz pēdējo slāni (izvades slāni), iespējams, pēc tam caur slāņiem var pārvietoties vairākas reizes.

Mākslīgo neironu tīklu pieejas sākotnējais mērķis bija atrisināt problēmas tādā pašā veidā, kā to darītu cilvēka smadzenes. Laika gaitā tomēr uzmanība tika pievērsta konkrētu uzdevumu veikšanai, novirzoties no bioloģijas. Mākslīgie nervu tīkli tiek izmantoti dažādos uzdevumos, tostarp datorredze, runas atpazīšana, mašīntulkošana, sociālo tīklu filtrēšana, galda un datorspēļu spēlēšana un medicīniskā diagnostika.

## Modeļi
		
### Komponenti
#### Neironi
Neirons ar apzīmējumu j, kas saņem ievadi p_j(t) no priekšgājēju neironiem, sastāv no šādiem komponentiem:
* **aktivizācija** a_j(t), neirona stāvoklis, atkarībā no diskrēta laika parametra,
* iespējams, **slieksnis** \theta_j, kas paliek nemainīgs, ja vien to nemaina mācīšanas funkcija,
* **aktivizācijas funkcija** f, kas aprēķina jauno aktivizāciju dotajā laikā t+1 no a_j(t), \theta_j un tīkla ievade p_j(t), kas rada attiecību
:  a_j(t+1) = f(a_j(t), p_j(t), \theta_j) ,
* **izvades funkcija** f_{out}, aprēķina izvadi no aktivizācijas
:  o_j(t) = f_{out}(a_j(t)) .

Bieži izvades funkcija ir tikai identiskā funkcija.

**Ievades neironam** nav priekšteča, bet tas kalpo kā visa tīkla ievades saskarne. Līdzīgi **izvades neironam** nav pēcteča un tādējādi kalpo kā visa tīkla izvades saskarne.

#### Savienojumi, svari un nobīdes
**Tīkls** sastāv no savienojumiem, katrs savienojums pārvieto neirona i izvadi uz neirona j ievadi. Šajā nozīmē i ir j priekštecis, un j ir i pēctecis. Katram savienojumam tiek piešķirts svars w_{ij}. Dažreiz ievades vērtību kopējai svērtajai summai tiek pievienota **nobīde**, kas kalpo par slieksni, lai mainītu aktivizācijas funkciju.

#### Izplatīšanas funkcija
Izplatīšanas funkcija izskaitļo ievadi p_j(t) neironam j no priekšteču neironu izvades o_i(t) un parasti ir formā
:  p_j(t) = \sum_{i} o_i(t) w_{ij} .

Ja funkcijai tiek pievienota nobīdes vērtība, iepriekšminētā forma mainās uz šādu
:  p_j(t) = \sum_{i} o_i(t) w_{ij}+  w_{0j}  , kur w_{0j} ir nobīde.

#### Mācīšanās noteikums
Mācīšanās noteikums ir noteikums vai algoritms, kas maina neironu tīkla parametrus, lai dotā ievade tīklā radītu vēlamo izvadi. Šī mācīšanā apstrādā parasti vērtības, lai mainītu tīkla mainīgo lielumu svarus un sliekšņus.

### Neironu tīkli kā funkcijas
[thumb|right|150px|MNT atkarības [grafs]]
[thumb|right|120px|[rekurentais neironu tīkls|Rekurentā MNT atkarības grafa divi atsevišķi attēlojumi]]
Neironu tīkla modeļus var skatīt kā vienkāršus matemātiskus modeļus, kas definē funkciju \textstyle f : X \rightarrow Y  vai sadalījumu virs \textstyle X vai gan \textstyle X gan \textstyle Y. Dažkārt modeļi ir cieši saistīti ar daļējiem mācīšanās noteikumiem. Bieži lietojama frāze "MNT modelis" patiesībā ir šādu funkciju **klases** definīcija (kur klases elementi tiek iegūti ar dažādiem parametriem, savienojuma svariem vai arhitektūras specifikām, piemēram, neironu skaitu vai to savienojamību).

Matemātiski neironu tīkla funkcija \textstyle f(x) ir definēta kā citu funkciju kompozīcija \textstyle g_i(x), ko tālāk var sadalīt citās funkcijās. To var ērti attēlot kā tīkla struktūru ar bultiņām, kas attēlo atkarību starp funkcijām. Plaši lietotais kompozīcijas tips ir **nelineāri svērta summa**, kur \textstyle f (x) = K \left(\sum_i w_i g_i(x)\right) , kur \textstyle K (parasti attiecināts kā aktivācijas funkcija) ir kāda iepriekšdefinēta funkcoija, piemēram, Hiperboliskais tangenss, signoīda funkcija, ''softmax'' funkcija vai taisngrieža funkcija. Aktivācijas funkcijas svarīga iezīme ir tā, ka, mainoties ievades vērtībām, tā nodrošina vienmērīgu pāreju, t.i., nelielas izmaiņas ievadē rada nelielas izmaiņas izvadē. Šī funkcija attiecas uz funkciju kolekciju \textstyle g_i kā vektoru \textstyle g = (g_1, g_2, \ldots, g_n).

Zīmējumā pa labi ir attēlota šāda \textstyle f dekompozīcija ar atkarībām starp mainīgajiem, kas apzīmēti ar bultiņām. Tos var interpretēt divējādi.

Pirmais skats ir funkcionālais skats: ievade \textstyle x ir pārveidota par trīsdimensiju vektoru \textstyle h, kas pēc tam tiek pārveidots par divdimensiju vektoru \textstyle g, kas visbeidzot pārveidots par \textstyle f. Šis skats visbiežāk sastopams optimizācijas kontekstā.

Otrais skats ir varbūtiskais skats: gadījuma mainīgais \textstyle F = f(G)  ir atkarīgs no gadījuma mainīgā \textstyle G = g(H), kas ir atkarīgs no \textstyle H=h(X), kas ir atkarīgs no gadījuma mainīgā \textstyle X. Šis skats visbiežāk sastopams grafu modeļa kontekstā.

Abi skati lielākoties ir līdzvērtīgi. Jebkurā gadījumā šai konkrētajai arhitektūrai atsevišķu slāņu komponenti ir neatkarīgi viens no otra (piemēram, \textstyle g komponenti ir neatkarīgi viens no otra, ņemot vērā to ievades \textstyle h). Sistēmas realizācijā tas dabiskā veidā dod iespēju īstenot paralēlismu.

Tādus tīklus kā iepriekšējais parasti sauc par apsteidzošajiem, jo to grafs ir virzīts aciklisks grafs. Tīklus ar cikliem parasti sauc par rekurentajiem. Šādi tīkli parasti tiek attēloti tā, kā parādīts attēla augšpusē, kur \textstyle f tiek parādīts kā atkarīgs pats no sevis. Tomēr netieša īslaicīga atkarība netiek parādīta.

## Atsauces