Konvolutsiooniline närvivõrk

**Konvolutsiooniline närvivõrk** (CNN) on mitmekihiline tehisnärvivõrkude klass, mis võib koosneda eri tüüpi kihtidest. Konvolutsioonilised närvivõrgud leiavad peamiselt rakendust pildi- ja videotuvastuses (sh näotuvastus), piltide klassifitseerimises, meditsiinis ja loomuliku keele töötluses.

## Ajalugu
Konvolutsioonilised võrgud on inspireeritud bioloogilistest protsessidest, täpsemini nendes võrkudes sisalduvate tehisneuronite vaheliste ühenduste mustrid meenutavad loomade nägemiskeskuse (visuaalse ajukoore) organisatsioonilist struktuuri, mille avastasid 1950. ja 1960. aastatel Nobeli auhinna laureaatidest neuroteadlased David Hubel ja Torsten Wiesel.

Nimetatud neuroteadlaste tööst inspireerituna tutvustas Kunihiko Fukushima 1980. aastal esimest konvolutsioonidel põhinevat neurovõrku, mille ta nimetas *neocognitron*'iks.

Konvolutsioonilised võrgud jõudsid laiema tähelepanu alla 2012. aastal, kui Krizhevsky juhitud uurimisrühm võitis ImageNet esemete äratundmise võistluse.

## Arhitektuur
Konvolutsioonilised närvivõrgud koosnevad sisendkihist, ühest või rohkemast konvolutsioonikihist, millele järgneb, sarnaselt tavalisele mitmekihilisele tehisnärvivõrgule, üks või mitu omavahel täielikult ühendatud peidetud kihti, ning väljundkihist. CNN-s kasutatakse tüüpiliselt aktivatsioonifunktsioonina mittenegatiivset lineaarfunktsiooni (ReLU) ning normalisatsiooni- ja ahenduskihte. Viimane konvolutsioonikiht sisaldab tavaliselt tagasilevi, et anda lõpptulemusele täpsemad kaalud.

Tüüpiline konvolutsioonilise võrgu kiht koosneb kolmest etapist. Esimeses etapis vaatluse all olevas kihis rakendatakse paralleelselt mitmeid konvolutsioone, mille tulemuseks on lineaarsete aktivatsioonide hulk. Teises etapis igale lineaarsele aktivatsioonile rakendatakse mittenegatiivne lineaarfunktsioon (ingl *rectified linear unit*). Kolmandas etapis rakendatakse eelmiste etappide tulemusele ahendus (ingl *pooling*).

Järgnevalt kirjeldatakse konvolutsioonivõrgu arhitektuuri tähtsamaid osi.

### Konvolutsioonikiht
Mõiste konvolutsiooniline närvivõrk tuleneb sellest, et seda tüüpi võrkudes kasutatakse matemaatilist operatsiooni, mida kutsutakse konvolutsiooniks ehk konvolutsioonteisenduseks, ning vähemalt ühes peidetud kihis kasutatakse tavapärase maatriksite korrutamise asemel konvolutsioonteisendust. Kuigi neid kihte nimetatakse konvolutsioonilisteks, siis matemaatilises mõistes on tehniliselt tegemist ristkorrelatsiooniga.

Konvolutsioonivõrgu kontekstis nimetatakse konvolutsioonteisenduse esimest argumenti sisendiks ja teist argumenti konvolutsiooni suuruseks. Väljundit nimetatakse enamasti tunnuste kaardiks.[6]

### Mittenegatiivse lineaarfunktsiooni (ReLU) kiht
Mittenegatiivseks lineaarfunktsiooniks nimetatakse funktsiooni

f(x)=\max(0,x).

Selle funktsiooni rakendamine sisendile eemaldab negatiivsed väärtused aktivatsioonikaardilt, andes neile väärtuseks 0, ning efektiivselt tõstab otsustusfunktsiooni ja ülejäänud närvivõrgu mittelineaarseid omadusi.

### Ahendus
Ahenduse idee seisneb selles, et suvalise tunnuse täpne asukoht pole sama tähtis kui selle ligikaudne asukoht relatiivselt teiste seda ümbritsevate tunnustega. Ahenduse tulemusel asendatakse võrgu väljund mingis neuronis kokkuvõttega selle neuroni naabrite väljunditest. Levinumaid ahenduse funktsioone on maksimaalne ahendus (ingl *max pooling*).

## Rakendused
Konvolutsiooniliste närvivõrkude rakenduste hulka kuuluvad:

* loomuliku keele töötlus (NLP);
* näotuvastus;
* videoanalüüs;
* pildituvastus;
* kõnetuvastus;
* aegridade ennustamine;
* uute ravimite väljatöötamine;
* ajulainete klassifitseerimine.
* lauamängude kabe ja go arvutiprogrammid.

## Viited