Pređi na sadržaj

Konvolucijske neuronske mreže

S Vikipedije, slobodne enciklopedije

Konvolucijske neuronske mreže su veoma slične običnim neuronskim mrežama. Ove mreže se mogu svrtstati u duboke neuronske mreže za koje se vezuje pojam dubokog učenja. Konvolucijske neuronske mreže su bioliška inspirisana verzija višeslojnog perceptrona. Mreža je bazirana da simulira stvaran proces prepoznavanja i zaključivanja koji koriste ljudi, zbog toga, glavni element od koga je sačinjena mreža jeste neuron.

Karakteristike mreže[uredi | uredi izvor]

Mreža je dobila ime po konvoluciji, operatoru koji se primenjuje u obradi slike i signala. U okviru ove mrže se koriste konvolucioni filtri koji se koriste za izoštravanje i zamućenje slika, kao i za detektovanje ivica. Veoma bitna stavka jeste detektovanje ivica pomoću kojih se otkrivaju objekti na slici. Kao pretpostavka se uzima da se na ulaz mreže dovode slike,

odnosno proces se odvija samo na slikama. Još jedna od razlika jeste povezanost među slojevima. Ako se na ulaz potpuno povezane mreže dovede slika dimenzija to za posledicu ima 10000 neurona na ulaznom sloju, što je poprilično veliki broj, pored toga treba dodati kada se radi sa slikama u boji da postoje 3 kanala, što za posledicu ima 30000 neurona na ulazu, za sliku sa ne tako velikim dimenzijama je to veliki broj, na osnovu toga treniranje mreže sa potpuno povezanim slojem bi bili skoro nemoguće, zbog toga konvolucijske mreže ne sadrže potpuno povezane slojeve do samog kraja. Najčešće ove mreže sadrže veći broj slojeva kako bi se otkrile bitne osobine. Tako da je uloga konvolucionih filtara da se kreiraju mape karakteristika . Za neke probleme je potebno imati značajne hardverske karakteristike.

Koncepti mreže[uredi | uredi izvor]

Ulazni podaci[uredi | uredi izvor]

Kao što je napomenuto ove mreže se najčešće primenjuju na slike, koje su sačinjene od matrica piksela i predstavljene su širinom, visinom i vrednostima piksela.[1] Kada se govori o slikama u boji, potrebno je napomenuti da sadrže 3 kanala i da se vrednosti piksela kreću u opsegu od 0-255, to je uobičajena predstava.

Filteri[uredi | uredi izvor]

Još jedno ime koje se može koristiti za konvolucione filtre jete konvolucioni kernel. Filter je predstavljen dvodimenzionalnom matricom, manjih dimenzija u poređenju sa dimenzijom slike na koju se primenjuje. Konvolucioni filtri se primenjuju u konvolucionom sloju, postupak primene se naziva konvolucija. U zavisnosti od filtra se mogu dobiti različiti rezultati.[2]

Receptivno polje[uredi | uredi izvor]

Pojam receptivno polje potiče iz medicinskih nauka i ima uticaj na kreirnje ovih mreža. Ideja je da se oponaša način funkcionisanja mozga životinje (mačke). Istraživanja koja su sprovedena ukazuju na to da se vizuelni korteks mačke sastoji od kompleksno raspoređenih ćelija. Ove ćelije su osetljive na male pod-regione vidnog polja, koji se nazivaju receptivna polja, koji su poređani tako da prekrivaju vidno polje. Umesto da svaki neuron u nekom sloju bude povezan sa svim neuronima u susednom sloju, neuroni se raspoređuju u trodimenzijalnu strukturu (visina*širina*dubina), gde se svaki neuron povezuje sa određenim regionom (receptivnim poljem). Povezivanje svih neurona sa svim mogućim regionima ulazne zapremine nije praktično, jer za posledicu ima preveliki broj težina za treniranje, što implicira veliku kompleksnost pri izračunavanju.

Arhitektura mreže[uredi | uredi izvor]

Opšti oblik[uredi | uredi izvor]

Svaka mreža sadrži tri osnovne komponente, a to su:

  • konvolucioni sloj
  • sloj sažimanja
  • potpuno povezan sloj

Primer takve mreže jetse LeNet-5. Reč je o eksperimentalnom modelu koji se sastoji od sedam slojeva, ne uključujući ulazni sloj. Pored ulaznog sloja, mrežu čine i tri konvoluciona sloja, između kojih se nalazi po jedan sloj sažimanja (ukupno dva sloja) i dva sloja koja su potpuno povezana sloja. LeNet-5 je nastala sa ciljem prepoznavanja rukom napisanih karaktera.

Slojevi mreže[uredi | uredi izvor]

Ulazni sloj[uredi | uredi izvor]

Ulazni sloj je prisutan kod svake neurnske mreže. U okviru ovog sloja se podaci uvode u mrežu. Konkretno se kod konvolucionih mreža na ulaz dovode slike.

Sloj konvolucije[uredi | uredi izvor]

Sloj konvolucije je navažniji sloj u okviru konvolucionih mreža, ako se može izdvojiti, jer je svaki sloj bitan, mada na ovom sloju je bazirana mreža. Na osnovu ovog sloja mreža je dobila naziv. Glavni proces koji se relaizuje jetse konvolucija. U okviru ovog sloja se vrši obučavanje mreže. Pomenuti sloj se od filtra (kernela) čije su dimenzije manje nego dimenzije slike na koju se primenjuje. U okviru ovog sloja se sporvodi iterativni proces koji se sprovodi ne sledeći način, filter se postavlja na početak slike, zatim se putem matričnog množenja množe odgovarajuće vrednosti piksela sa odgovarajućim vrednostima u filtru koje ih preklapaju i sve te vrednosti se sabiraju i upisuju u matricu, nakon toga se filtar pomera za određeni korak i taj proces se ponavlja sve dok se ne dođe do kraja slike. Veza između slojeva nije potpuna, što znači da se ne dovodi svaki izlaz iz jednog sloja na ulaz drugog sloja, kao što je već objašnjeno. Nakon primene filtra dimnzije slike će se promeniti, dimenzije se mogu odrediti pomoću jednačine:



W - dimenzija ulazne slike, F - dimenzije filtra, P - proširivanje nulama, S - korak za pomeranje filtra;

Sloj sažimanja[uredi | uredi izvor]

Sloj sažimanja je sloj koji se periodično javlja. Uloga ovog sloja jeste smanjivanje dimenzija slike, pri čemu se ovim procesom smanjuje broj parameta koji za posledicu ima olakšavanje računskih operacija.

Postoje dve opcije koje se mogu izabrati u okviru ovog sloja:

  • sažimanje maksimumom
  • sažimanje pomoću srednje vrednosti

Poslednjih godina primat je preuzela opcija sažimanja maksimumom, dok je pre opcija srednjih vrednosti bila dominantnija.

Sažimanje maksimumom[uredi | uredi izvor]

se sprovodi na sledeći način. Definiše se okvir određenih dimenzija, najčešće je dimanzija 2*2, postavlja se na sliku i od četiri vrednosti koje su obuhvaćene sa ovim okvirom se bira maksimalna vrednost, nakon toga filtar se pomera tako da obuhvati sledeće četiri vrednosti, tako da ne dođe do preklapanja, taj proces se ponavlja sve do kraja slike. Ako je dimanzija slike pre primene ovog procesa 24*24*n i koristi se okvir dimenzija 2*2 nakon primene ovog procesa dimenzije slike biće 12*12*n. Ovim postupkom se olakšava proces računanja, kao i kontrolisanje da ne dođe do preobučavanja.

Sažimanje srednjom vrednošću[uredi | uredi izvor]

se sprovodi na način koji je sličan načinu sažimanja maksimumom. Takođe se definiše okvir određenih dimenzija (najčešće 2*2), postavlja se na sliku i sada se umesto određivanja maksimalne vrednosti računa srednja vrenost. Takođe, ako su dimenzije slike 24*24*n i dimenzije okvira 2*2, dimenzije slike će biti 12*12*n.

Sloj aktivacione funkcije[uredi | uredi izvor]

Sloj aktivacione funkcije je sloj koji se u novijim arhitekturama mreže javlja odmah nakon konvolucijskih slojeva. Aktivaciona funkcija se koristi za poboljšavanje performanse mreže. Jedna od najkorišćenijih funkcija jeste ReLU koja je predstavljena sledećom jednačinom:



Potpuno povezan sloj[uredi | uredi izvor]

Kao što je već napomenuto, povezanost između neurona tokom većeg dela mreže nije potpuna. Zbog obimnosti računskih operacija, broja parametara. Tako da se potpuno povezan sloj javlja u završnim slojevima mreže, to nije pravilo ali se u najvećem broju slučajeva realizuje na taj način, zbog toga što su dimenzije slike na ulazu u taj sloj znatno manje, što za posledicu ima manji broj parametara.

Hiper-parametri[uredi | uredi izvor]

U okviru sloja konvolcije spomenuto je:

  • proširivanje nulama
  • pomeraj filtra
  • dimenzije filtra


Te vrednosti jesu hiper-parametri koji su veoma bitni pri realizaciji mreže.

Proširivanje nulama[uredi | uredi izvor]

je proces kada se slika koja je dovedena na ulaz proširuje za određen broj vrsta i kolona, te vrste i kolone mogu sadžati nule (najčešće i sadrže), a postoji i mogućnost ponavljanja ivičnih piksela. Ovaj postupak se sprovodi zbog toga da bi slika nakon primene procesa konvolucije zadržala bitne informacije, odnosno neće doći odmah do smanjivanja dimenzije slike. Kada se ne bi koristila ova metoda nakon primene konvolucije slika bi bila zamućena i određene informacije bi se izgubile, što bi za posledicu imalo greške na izlazu iz mreže.

Pomeraj filtra[uredi | uredi izvor]

je sledeći parametar. Ovim parametrom se određuje pomeraj filtra. Kada je pomeraj 1, filtar se pomera za jedan piksel, kada je 2 (može biti i više, nije praktično) filtar se pomera za dva piksela (korak od 2 je karkterističan za sloj sažimanja). Ovim se smanjuje dimenzija na izlazu iz trenutnog sloja. [3]

Dimenzije filtra[uredi | uredi izvor]

su najčešće neparni brojevi (3*3, 5*5, 7*7), to je zbog toga što se kod filtra čije su dimenzije jednake neparnim brojevima lako može odrediti centralni piksel, dok se kod filtra čije su dimenzije parni brojevi ne može odrediti centralni piksel.

Dubina[uredi | uredi izvor]

Još jedan hiper-parametaj jeste definisanje dubine, odnosno taj parametar korenspodira ka broju filtra koji će se primenjivati u okviru sloja. Na osnovu toga se može izvršiti grupacija piksela sa određenim karakteristkama.

Funkcija na izlazu mreže[uredi | uredi izvor]

Pre konačnog rešenja mreže, na izlaz se dovodi niz koji predstavlja kategorije kojima može pripadati slika (kada se govori o problemu klasifikacije). Tako da taj niz sadrži verovatnoće pripadanja svakoj kategoriji. Kategorija koja ima najveću vrednost se bira za kategoriju koja će se dodeliti slici. Funkcija koja se koristi u tom procesu jeste softmax, zbog toga što se radi o više-klasnom odabiru.


Primena[uredi | uredi izvor]

Primenu nalazi u mnogim oblastima, neke od tih su:

  • klasifikacija slika
  • procesiranje jezika
  • predviđanje prognoze

Klasifikacija slika[uredi | uredi izvor]

Prvi značajnini uspeh je ostvaren 2012, kada je postignuta vrednost greške od 0.23% na MNIST skupu podataka. Cilj jeste izvršiti klasifikaciju slika, odnosno svrstati u određenu kategoriju.

Procesiranje jezika[uredi | uredi izvor]

Primenu su našle i u procesiranju jezika. U okviru čega se vrši klasifikacija, predikcija i modelovanje rečenica.

Predviđanje prognoze[uredi | uredi izvor]

Rekurentne mreže ovde imaju primat, ali su konvolucione zadovoljile i postigle rezultate koji je u rangu sa rekurentnim, tako se mogu koristiti i u ovom pogledu.

ImageNet Large Scale Visual Recognition Challenge (ILSVRC)[uredi | uredi izvor]

Je takmičenje koje organizovano sa ciljem da se predstave algoritmi koji se koriste prilikom detekkcije objekata, klasifikacije slika. Prilika koja dopušta istraživačima širom sveta da predstave svoje rezultate u okviru ovog polja. Kao rezultat jeste nastajenje i ImageNet-a. To je baza slika koja broji više od 14 miliona slika koje se koriste prilikom razvoja datih algoritama.

Primeri koji su doprineli razvoju[uredi | uredi izvor]

LeNet[uredi | uredi izvor]

Je prva uspešna aplikacija iz konvolucijskih mreža , razvijena od strane Yann LeCun-a 1990-tih. Korišćena je za čitanje poštanskih kodova, cifara, itd.

AlexNet[uredi | uredi izvor]

Prvi rad koji je popularizovao konvolucijske mreže u okviru Kompjuterske vizije, kreirana od strane Alex Krizhevsky, IIya Sutskever i Geoff Hinton. Realizovana je 2012 na takkmičenju ImageNet ILSVRC challenge . Na tom takmičenju je ostvarila pobedu, gde je greška ostvarena na test skupu iznosila 15.4%, dok je prva sledeća mreža imala 26.2%. Mreža se sastoji od 60 miliona parametara, 650000 hiljada neurona, a čine je 8 slojeva, od kojih 5 konvolucijskih, gde sa nakon svih konvolucijskih slojeva nalaze slojevi sažimanja i to korišćenjem maksimuma i 3 sloja koja su potpuno povezana.

ZF Net[uredi | uredi izvor]

Jeste pobednik za 2013 godinu. Kreirana je od strane Matthew Zeiler-a i Rob Fergus-a. Pedstavljala je napredak u odnosu na AlexNet. Vrednost greške koja je ostvarena na test skupu je 13.5%, struktura mreže je slična strukturi AlexNet mreže, 8 slojeva, razlika je što je korišćena ReLU funkcija, sažimanje i normalizovanje nakon svih 5 slojeva, što je imalo za posledicu smanjivanje parametara.

GoogLeNet[uredi | uredi izvor]

Pobednik 2014 godine, mreža je kreirana od strane Googla. Glavni doprinos jeste smanjivanje broja parametara na 4 miliona sa 60 miliona koliko je imala AlexNet mreža. Vrednost koja je ostvarena za grešku na test skupu je itnosila 6.7%. Sačinjena je od 22 sloja (27, ako se razunaju slojevi sažimanja), karatkeristika koja je prisutna jeste modul započinjanja, pomoću kojeg se značajno smanjuje broj parametara u mreži, sastoji se od 9 modula koji su integrisani u mrežu i ponašaju se kao mreža u mreži, umesto potpuno povezanog sloja korišćeno je sažimanje srednjom vrednošću.

VGGNet[uredi | uredi izvor]

Je mreža koja je podelila prvo mesto sa GoogleNet 2014 godine. Rezulatat koji je postignut je iznosio 7.4% greške na test skupu. Kreatori mreže su Karen Simonyan i Andrew Zisserman. Mreža se ističe dubinom i jednostavnošću. Čini je 19 slojeva, gde se primenjuju filtri dimenzija 3*3, pri čemu je vršeno proširivanje za 1, kao i pomeraj filtra, u okviru sažimanja je korićena funkcija maksimuma sa okvirom veličine 2*2, gde je pomeraj iznosio 2. Ovom mrežom je pokazano da dubina ima značajan uticaj na postizanje dobrih rezultata. Takođe sadrži deo koji je već istreniran.

Reference[uredi | uredi izvor]

  1. ^ Dabović Marko, Tartalja Igor (08. 06. 2017). „Duboke konvolucijske neuronske mreže – koncepti i aktuelna istraživanja” (PDF). Pristupljeno 31. 01. 2021. 
  2. ^ Dabović Marko, Tartalja Igor (08. 06. 2017). „Duboke konvolucijske neuronske mreže – koncepti i aktuelna istraživanja” (PDF). Pristupljeno 31. 01. 2020. 
  3. ^ „Convolutional Neural Networks (CNNs / ConvNets)”. Pristupljeno 31. 01. 2021.