škrbina Kaj so CNN (konvolucijske nevronske mreže)? - Združi se.AI
Povežite se z nami

AI 101

Kaj so CNN (konvolucijske nevronske mreže)?

mm
Posodobljeno on

Morda ste se spraševali, kako lahko Facebook ali Instagram samodejno prepoznata obraze na sliki ali kako vam Google omogoča iskanje podobnih fotografij v spletu samo tako, da naložite svojo fotografijo. Te funkcije so primeri računalniškega vida in jih poganja konvolucijske nevronske mreže (CNN). Toda kaj točno so konvolucijske nevronske mreže? Poglobimo se v arhitekturo CNN in razumemo, kako delujejo.

Kaj so nevronske mreže?

Preden začnemo govoriti o konvolucijskih nevronskih mrežah, si vzemimo trenutek za opredelitev navadne nevronske mreže. tam je še en članek na temo razpoložljivih nevronskih mrež, zato se ne bomo preveč poglabljali vanje. Vendar, če jih na kratko opredelimo, so računalniški modeli, ki so jih navdihnili človeški možgani. Nevronska mreža deluje tako, da zajema podatke in manipulira s podatki s prilagajanjem "uteži", ki so predpostavke o tem, kako so vhodne lastnosti povezane med seboj in z razredom predmeta. Ko se omrežje usposablja, se vrednosti uteži prilagajajo in upamo, da se bodo zbližale na uteži, ki natančno zajemajo razmerja med funkcijami.

Tako deluje povratna nevronska mreža, CNN pa so sestavljene iz dveh polovic: povratne nevronske mreže in skupine konvolucijskih plasti.

Kaj so konvolucijske nevronske mreže (CNN)?

Kakšni so "konvolucije", ki se dogajajo v konvolucijski nevronski mreži? Konvolucija je matematična operacija, ki ustvari nabor uteži, kar v bistvu ustvari predstavitev delov slike. Ta niz uteži se imenuje jedro ali filter. Filter, ki je ustvarjen, je manjši od celotne vhodne slike in pokriva samo pododdelek slike. Vrednosti v filtru so pomnožene z vrednostmi na sliki. Filter se nato premakne, da se oblikuje predstavitev novega dela slike, in postopek se ponavlja, dokler ni pokrita celotna slika.

Drug način razmišljanja o tem je, da si predstavljamo opečnato steno, pri čemer opeke predstavljajo piksle na vhodni sliki. Po steni se premika naprej in nazaj »okno«, ki je filter. Kocke, ki jih je mogoče videti skozi okno, so slikovne pike, katerih vrednost je pomnožena z vrednostmi v filtru. Zaradi tega se ta metoda ustvarjanja uteži s filtrom pogosto imenuje tehnika "drsnih oken".

Izhod filtrov, ki se premikajo po celotni vhodni sliki, je dvodimenzionalni niz, ki predstavlja celotno sliko. Ta niz se imenuje a "zemljevid funkcij".

Zakaj so konvolucije bistvene

Kaj je sploh namen ustvarjanja konvolucij? Konvolucije so potrebne, ker mora biti nevronska mreža sposobna interpretirati piksle na sliki kot številske vrednosti. Funkcija konvolucijskih plasti je pretvorba slike v številske vrednosti, ki jih lahko nevronska mreža interpretira in nato iz njih izlušči ustrezne vzorce. Naloga filtrov v konvolucijski mreži je ustvariti dvodimenzionalni niz vrednosti, ki se lahko prenesejo v kasnejše plasti nevronske mreže, tiste, ki se bodo naučile vzorcev na sliki.

Filtri in kanali

Fotografija: cecebur prek Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

CNN ne uporabljajo samo enega filtra za učenje vzorcev iz vhodnih slik. Uporablja se več filtrov, saj različni nizi, ustvarjeni z različnimi filtri, vodijo do bolj zapletene in bogate predstavitve vhodne slike. Običajne številke filtrov za CNN so 32, 64, 128 in 512. Več kot je filtrov, več možnosti ima CNN, da pregleda vhodne podatke in se iz njih uči.

CNN analizira razlike v vrednostih slikovnih pik, da bi določil meje predmetov. V sivinski sliki bi CNN opazoval samo razlike v črno-belem, svetlem in temnem izrazu. Kadar so slike barvne, CNN ne upošteva samo temne in svetle barve, ampak mora upoštevati tudi tri različne barvne kanale – rdečo, zeleno in modro. V tem primeru imajo filtri 3 kanale, tako kot jih ima sama slika. Število kanalov, ki jih ima filter, se imenuje njegova globina, število kanalov v filtru pa se mora ujemati s številom kanalov na sliki.

Konvolucijska nevronska mreža (CNN) Arhitektura

Oglejmo si celotno arhitekturo konvolucijska nevronska mreža. Konvolucijska plast se nahaja na začetku vsake konvolucijske mreže, saj je treba slikovne podatke pretvoriti v numerične nize. Vendar lahko konvolucijske plasti pridejo tudi za drugimi konvolucijskimi plastmi, kar pomeni, da je te plasti mogoče zložiti eno na drugo. Imeti več konvolucijskih plasti pomeni, da so lahko rezultati iz ene plasti podvrženi nadaljnjim konvolucijam in združeni v ustrezne vzorce. Praktično to pomeni, da ko slikovni podatki potekajo skozi konvolucijske plasti, začne omrežje »prepoznavati« bolj zapletene značilnosti slike.

Začetne plasti ConvNet so odgovorne za ekstrahiranje funkcij nizke ravni, kot so slikovne pike, ki sestavljajo preproste črte. Kasnejši sloji ConvNet bodo te črte združili v oblike. Ta proces prehoda od analize na površinski ravni k analizi na globoki ravni se nadaljuje, dokler ConvNet ne prepozna kompleksnih oblik, kot so živali, človeški obrazi in avtomobili.

Ko gredo podatki skozi vse konvolucijske plasti, se nadaljujejo v gosto povezan del CNN. Gosto povezane plasti so tisto, kar izgleda tradicionalno nevronsko omrežje s posredovanjem podatkov, vrsta vozlišč, razporejenih v plasti, ki so med seboj povezane. Podatki potekajo skozi te gosto povezane plasti, ki se naučijo vzorcev, ki so jih ekstrahirali konvolucijski sloji, in pri tem postane omrežje sposobno prepoznati objekte.