Prepoznavanje uzoraka pomoću neuronskih mreža. Temeljna istraživanja

Uvod

Tema ovog istraživanja je razvoj sustava za prepoznavanje slike temeljenog na umjetnim neuronskim mrežama. Zadatak prepoznavanja slika vrlo je važan, budući da mogućnost automatskog prepoznavanja slika pomoću računala donosi brojne nove mogućnosti u razvoju znanosti i tehnologije, poput razvoja sustava za traženje lica i drugih objekata na fotografijama, kontrole kvalitete proizvedeni proizvodi bez ljudske intervencije, automatska kontrola transporta i mnogi drugi.

Što se tiče umjetnih neuronskih mreža, posljednjih se godina ovaj dio strojnog učenja sve više razvija zbog značajnog povećanja računalne snage postojećih računala i raširene uporabe grafičkih kartica za računalstvo, što omogućuje treniranje neuronskih mreža velikog broja veću dubinu i složeniju strukturu nego prije, što zauzvrat pokazuje znatno bolje rezultate u usporedbi s drugim algoritmima za mnoge zadatke, posebice prepoznavanje slike. Ovaj smjer razvoja neuronskih mreža naziva se duboko učenje i jedan je od najuspješnijih i najbrže razvijajućih se danas. Na primjer, prema rezultatima godišnjeg natjecanja u prepoznavanju slika ImageNet-2014, velika većina uspješnih algoritama koristila je duboke konvolucijske mreže.

Budući da je problem prepoznavanja slike vrlo opsežan iu većini slučajeva zahtijeva poseban pristup za različite vrste slika, gotovo je nemoguće problem prepoznavanja slike razmatrati kao cjelinu u okviru jednog istraživanja, pa je odlučeno da se razmotri , kao primjer, zasebno takav podzadatak prepoznavanja slike kao što je prepoznavanje prometnih znakova.

Stoga je glavni cilj ovog istraživanja bio razviti sustav za prepoznavanje slika temeljen na umjetnim neuronskim mrežama za slike prometnih znakova. Za postizanje ovog cilja formulirani su sljedeći zadaci:

Izvršiti analitički pregled literature na temu umjetnih neuronskih mreža i njihove primjene u problemima prepoznavanja slika

Razvoj algoritma za prepoznavanje prometnih znakova korištenjem umjetnih neuronskih mreža

Razvoj prototipa sustava za prepoznavanje slike na temelju razvijenog algoritma. Rezultat ovog zadatka trebao bi biti programski paket, omogućujući korisniku da prenese sliku i dobije predviđanje klase te slike

Provođenje eksperimentalnih studija. Potrebno je provesti istraživanje i ocijeniti točnost dobivenog algoritma.

Tijekom studija izvršeni su svi zadani zadaci. Konkretni rezultati za svaku od njih bit će opisani u glavnom dijelu rada.

1. Pregled literature

.1 Strojno učenje

Neuronske mreže, o kojima se u ovom radu detaljno govori, jedna su od vrsta algoritama strojnog učenja, odnosno strojnog učenja. Strojno učenje jedno je od potpodručja umjetne inteligencije. Glavno svojstvo algoritama strojnog učenja je njihova sposobnost učenja tijekom rada. Na primjer, algoritam za konstruiranje stabla odlučivanja, bez ikakvih preliminarnih informacija o tome što su podaci i koji uzorci postoje u njima, već samo određeni ulazni skup objekata i vrijednosti nekih značajki za svaki od njih, uz s oznakom klase, u procesu konstruiranja samo stablo otkriva skrivene uzorke, odnosno uči, a nakon treninga je u stanju predvidjeti klasu za nove objekte koje dosad nije vidjelo.

Postoje dvije glavne vrste strojnog učenja: nadzirano učenje i nenadzirano učenje. Nadzirano učenje podrazumijeva da se algoritmu, osim samih izvornih podataka, dodaju i neke dodatne informacije o njemu, koje kasnije može koristiti za obuku. Neki od najpopularnijih problema za nadzirano učenje uključuju probleme klasifikacije i regresije. Na primjer, problem klasifikacije može se formulirati na sljedeći način: za određeni skup objekata, od kojih svaki pripada jednoj od nekoliko klasa, potrebno je odrediti koja od tih klasa pripada novi objekt. Zadatak prepoznavanja prometnih znakova, koji je razmatran u ovom radu, tipičan je tip problema klasifikacije: postoji više vrsta prometnih znakova - klasa, a zadatak algoritma je "prepoznati" znak, tj. dodijelite ga jednoj od postojećih klasa.

Učenje bez nadzora razlikuje se od učenja pod nadzorom po tome što algoritam ne dobiva nikakve dodatne informacije osim samog izvornog skupa podataka. Najpopularniji primjer problema učenja bez nadzora je problem klasteriranja. Suština problema klasteriranja je sljedeća: ulaz u algoritam je određeni broj objekata koji pripadaju različitim klasama (ali nije poznato koja klasa pripada kojem objektu, sam broj klasa također može biti nepoznat), a cilj algoritma je podijeliti ovaj skup objekata u podskupove "sličnih" objekata, koji pripadaju istoj klasi.

Među svim algoritmima strojnog učenja postoji nekoliko glavnih obitelji. Kada je riječ o problemima klasifikacije, najpopularnije takve obitelji uključuju, na primjer:

· Klasifikatori temeljeni na pravilima - glavna ideja takvih klasifikatora je traženje pravila za dodjelu objekata određenoj klasi u obliku "AKO - ONDA". Za pronalaženje takvih pravila obično se koriste neke statističke metrike, a uobičajena je i konstrukcija pravila temeljena na stablu odlučivanja.

· Logistička regresija - glavna ideja je pronaći linearnu ravninu koja najtočnije dijeli prostor na dva poluprostora tako da objekti različitih klasa pripadaju različitim poluprostorima. U ovom slučaju, jednadžba ciljne ravnine se traži u obliku linearne kombinacije ulaznih parametara. Za obuku takvog klasifikatora, na primjer, može se koristiti metoda gradijentnog spuštanja.

· Bayesov klasifikator - kao što naziv govori, klasifikator se temelji na Bayesovom teoremu koji je napisan u obliku

strojno učenje neuronske mreže

Ideja klasifikatora u u ovom slučaju je pronaći klasu s najvećom posteriornom vjerojatnošću, pod uvjetom da svi parametri imaju vrijednosti koje imaju za instancu koja se klasificira. U opći slučaj ovaj zadatak pretpostavlja prethodno znanje o vrlo velikom broju uvjetnih vjerojatnosti i, sukladno tome, veliku veličinu uzorka za obuku i visoku računsku složenost, stoga se u praksi najčešće koristi tip Bayesovog klasifikatora koji se naziva Naivni Bayesov klasifikator, u kojem se pretpostavlja da su svi parametri neovisni jedni o drugima, odnosno formula ima mnogo jednostavniji oblik i da biste je koristili trebate znati samo mali broj uvjetnih vjerojatnosti.


Iako je ova pretpostavka obično daleko od stvarnosti, naivni Bayesov klasifikator često daje dobre rezultate.

· Stabla odlučivanja – u pojednostavljenom obliku, ovaj algoritam se sastoji od konstruiranja stabla u kojem svaki čvor odgovara nekom testu koji se provodi na parametrima objekta, a listovi su konačne klase. Postoje mnoge vrste stabala odlučivanja i algoritama za njihovu konstrukciju. Na primjer, jedan od najpopularnijih algoritama je C4.5.

· Neuronske mreže su model predstavljen kao skupovi elemenata (neurona) i veza između njih, koji općenito mogu biti usmjereni ili neusmjereni i imaju određene težine. Tijekom rada neuronske mreže, dio njenih neurona, koji se naziva ulaz, prima signal (ulazni podaci), koji se na neki način distribuira i transformira, a na izlazu mreže (izlazni neuroni) možete vidjeti rezultat rad mreže, na primjer, vjerojatnosti pojedinih klasa. O neuronskim mrežama će se u ovom radu detaljnije raspravljati u sljedećem odjeljku.

· Potporni vektorski strojevi - koncept algoritma je isti kao u slučaju logističke regresije, u traženju razdjelne ravnine (ili više ravnina), međutim metoda traženja zadane ravnine u ovom slučaju je drugačija - a ravnina se pretražuje tako da udaljenost od nje do najbližih točaka bude što je moguće više predstavnika obje klase, za što se obično koriste metode kvadratne optimizacije.

· Lijeni učenici su posebna vrsta klasifikacijskih algoritama koji se, umjesto da prvo izgrade model i potom na temelju njega donesu odluke o dodjeli objekta određenoj klasi, temelje na ideji da slični objekti najčešće imaju istu istu klasu. Kada takav algoritam primi objekt za klasifikaciju kao ulaz, on traži objekte slične njemu među prethodno pregledanim objektima i, koristeći podatke o njihovim klasama, formira svoje predviđanje u vezi s klasom ciljanog objekta.

Može se vidjeti da algoritmi klasifikacije mogu imati vrlo različite ideje u svojoj srži i, naravno, pokazati različitu učinkovitost za različite vrste problema. Dakle, za probleme s malim brojem ulaznih značajki, sustavi temeljeni na pravilima mogu biti korisni ako za ulazne objekte možete brzo i praktično izračunati neku metriku sličnosti - lijeni klasifikatori, ali ako govorimo o problemima s vrlo velikim brojem parametara , koje je također teško identificirati ili protumačiti, kao što je prepoznavanje slike ili govora, neuronske mreže postaju najprikladnija metoda klasifikacije.

1.2 Neuronske mreže

Umjetne neuronske mreže jedan su od široko poznatih i korištenih modela strojnog učenja. Ideja umjetnih neuronskih mreža temelji se na simulaciji živčanog sustava životinja i ljudi.

Pojednostavljeni model životinjskog živčanog sustava predstavljen je kao sustav stanica, od kojih svaka ima tijelo i grane dvije vrste: dendrite i aksone. U određenom trenutku stanica prima signale od drugih stanica preko dendrita i, ako su ti signali dovoljno jaki, ona se pobuđuje i prenosi to uzbuđenje na druge stanice s kojima je povezana preko aksona. Tako se signal (uzbuđenje) širi cijelim živčanim sustavom. Model neuronske mreže je strukturiran na sličan način. Neuronska mreža se sastoji od neurona i usmjerenih veza između njih, pri čemu svaka veza ima određenu težinu. U ovom slučaju, neki od neurona su ulazni - oni primaju podatke iz vanjskog okruženja. Zatim, u svakom koraku, neuron prima signal od svih ulaznih neurona, izračunava ponderirani zbroj signala, primjenjuje neku funkciju na njega i prosljeđuje rezultat svakom od svojih izlaza. Mreža također ima niz izlaznih neurona koji tvore rezultat mreže. Dakle, za zadatak klasifikacije, izlazne vrijednosti ovih neurona mogu značiti predviđene vjerojatnosti svake od klasa za ulazni objekt. Sukladno tome, obuka neuronske mreže sastoji se od odabira takvih težina za veze između neurona tako da izlazne vrijednosti za sve ulazne podatke budu što bliže stvarnim.

Postoji nekoliko glavnih tipova arhitektura neuronskih mreža:

· Feed-forward mreža - podrazumijeva da neuroni i veze između njih tvore aciklički graf, gdje se signali šire u samo jednom smjeru. Upravo su te mreže najpopularnije i najproučavanije, a njihovo osposobljavanje predstavlja najmanje poteškoća.

· Rekurentne neuronske mreže - u takvim mrežama, za razliku od feedforward mreža, signali se mogu prenositi u oba smjera, te mogu stići do istog neurona više puta tijekom obrade jedne ulazne vrijednosti. Posebna vrsta rekurentnih neuronskih mreža je, na primjer, Boltzmannov stroj. Glavna poteškoća u radu s takvim mrežama je njihova obuka, budući da je stvaranje učinkovitog algoritma za to u općem slučaju težak zadatak i još uvijek nema univerzalno rješenje.

· Samoorganizirajuće Kohonenove karte - neuronska mreža dizajnirana prvenstveno za klasteriranje i vizualizaciju podataka.

U povijesti razvoja neuronskih mreža postoje 3 glavna razdoblja rasta. Prva istraživanja na području umjetnih neuronskih mreža datiraju iz 40-ih godina 20. stoljeća. Godine 1954. J. McCulloch i W. Pitts objavili su rad "Logical Calculus of Ideas Relating to Nervous Activity", koji je ocrtao osnovna načela za konstruiranje umjetnih neuronskih mreža. Godine 1949. objavljena je knjiga D. Hebba "Organizacija ponašanja", u kojoj je autor ispitivao teorijske temelje treniranja neuronskih mreža i po prvi put formulirao koncept treniranja neuronskih mreža kao prilagodbe težine između neurona. Godine 1954. W. Clark napravio je prvi pokušaj implementacije analoga Hebbove mreže pomoću računala. Godine 1958. F. Rosenblatt je predložio model perceptrona, koji je u biti bio neuronska mreža s jednim skrivenim slojem. Glavni pogled na Rosenblatt perceptron prikazan je na slici 1.

Slika 1. Rosenblatt Perceptron

Ovaj model obučen je pomoću metode ispravljanja pogrešaka, koja se sastojala u tome da težine ostaju nepromijenjene sve dok je izlazna vrijednost perceptrona ispravna, ali u slučaju pogreške, težina veze mijenja se za 1 u smjeru suprotnom od predznaka greške koja se dogodila. Ovaj algoritam, kao što je dokazao Rosenblatt, uvijek konvergira. Koristeći takav model, bilo je moguće napraviti računalo koje je prepoznavalo neka slova latinične abecede, što je nesumnjivo bio veliki uspjeh u to vrijeme.

Međutim, interes za neuronske mreže značajno je opao nakon objavljivanja knjige “Perceptroni” M. Minskyja i S. Papert 1969. godine, gdje su opisali značajna ograničenja koja model perceptrona ima, posebice nemogućnost predstavljanja isključivih ili funkciju, a također je istaknuo da su zahtjevi za potrebnom računalnom snagom računala za obuku neuronskih mreža previsoki. Budući da su ti znanstvenici imali vrlo visok autoritet u znanstvenoj zajednici, neuronske mreže su neko vrijeme bile prepoznate kao tehnologija koja ne obećava. Situacija se promijenila tek nakon stvaranja algoritma povratne propagacije 1974. godine.

Algoritam povratnog širenja predložila su 1974. godine istovremeno i neovisno dva znanstvenika, P. Verbos i A. Galushkin. Ovaj se algoritam temelji na metodi gradijentnog spuštanja. Glavna ideja algoritma je propagirati informacije o pogrešci od mrežnih izlaza do njenih ulaza, odnosno u suprotnom smjeru u odnosu na standardni pristup. U ovom slučaju, težine veza se prilagođavaju na temelju informacija o pogrešci koje su do njih stigle. Glavni zahtjev koji ovaj algoritam nameće je da aktivacijska funkcija neurona mora biti diferencijabilna, budući da se metoda gradijentnog spuštanja, što nije iznenađujuće, izračunava na temelju gradijenta.

Algoritam povratnog širenja olakšava treniranje mreže koja ima nekoliko skrivenih slojeva, što vam omogućuje da zaobiđete ograničenja perceptrona koja su prethodno blokirala razvoj ove industrije. S matematičke točke gledišta, ovaj se algoritam svodi na sekvencijalno množenje matrica - što je prilično dobro proučen i optimiziran problem. Osim toga, ovaj je algoritam vrlo paralelan, što može značajno ubrzati vrijeme obuke mreže. Sve to zajedno dovelo je do novog procvata neuronskih mreža i brojnih aktivnih istraživanja u tom smjeru.

Algoritam povratnog širenja, u isto vrijeme, ima niz problema. Dakle, korištenje gradijentnog spuštanja uključuje rizik konvergencije na lokalni minimum. Drugi važan problem je dugo vrijeme obuke algoritma u prisutnosti velikog broja slojeva, budući da se pogreška u procesu širenja unatrag sve više smanjuje kako se približava početku mreže; sukladno tome, obuka početnih slojeva mreže odvijat će se iznimno sporo. Još jedan nedostatak svojstven neuronskim mrežama općenito je teškoća u tumačenju rezultata njihova rada. Uvježbani model neuronske mreže nešto je poput crne kutije, čiji je ulaz objekt, a izlaz prognoza, no određivanje koje su značajke ulaznog objekta uzete u obzir i koji je neuron odgovoran za ono što je obično prilično problematično. To čini neuronske mreže na mnoge načine manje privlačnima u usporedbi s, na primjer, stablima odlučivanja, u kojima obučeni model sam po sebi predstavlja neku suštinu znanja o predmetnom području koje se razmatra i istraživaču je lako razumjeti zašto je određeni objekt dodijeljen određenom razredu.

Ovi nedostaci, u kombinaciji s činjenicom da iako su neuronske mreže pokazale dobre rezultate, ti su rezultati bili usporedivi s rezultatima drugih klasifikatora, na primjer, sve popularnijih strojeva za potporne vektore, dok je rezultate potonjih bilo puno lakše interpretirati i zahtijevala je obuku manje vremena, dovela je do još jednog pada u razvoju neuronskih mreža.

Taj pad je prestao tek 2000-ih godina 21. stoljeća, kada se pojavio i počeo širiti koncept dubokog učenja, odnosno dubokog učenja. Oživljavanje neuronskih mreža olakšano je pojavom novih arhitektura, kao što su konvolucijske mreže, ograničeni bolzmanovi strojevi, naslagani autokoderi itd., što je omogućilo postizanje znatno boljih rezultata u područjima strojnog učenja kao što je prepoznavanje slike i govora. Značajan čimbenik za njihov razvoj bila je i pojava i širenje moćnih video kartica i njihova uporaba za računalne zadatke. Video kartice, sa znatno većim brojem jezgri u usporedbi s procesorom, iako svaka manje snage, idealne su za obuku neuronskih mreža. Ovo, u kombinaciji s nedavnim značajnim povećanjem performansi računala općenito i proliferacijom računalnih klastera, omogućilo je treniranje znatno složenijih i dubljih arhitektura neuronskih mreža nego prije.

1.3 Dubokoučenje

Jedan od najvažnijih problema s kojima se susreću pri korištenju algoritama strojnog učenja je problem odabira pravih značajki na kojima će se trenirati. Ovaj problem postaje posebno značajan kada se razmatraju zadaci kao što su prepoznavanje slike, prepoznavanje govora, obrada prirodnog jezika i slično, odnosno oni gdje ne postoji očit skup značajki koje se mogu koristiti za obuku. Tipično, izbor skupa značajki za obuku provodi sam istraživač kroz neke analitički rad, a odabrani skup značajki uvelike određuje uspjeh algoritma. Dakle, za zadatak prepoznavanja slike, takve značajke mogu biti prevladavajuća boja na slici, stupanj njezine promjene, prisutnost jasnih granica na slici ili nešto drugo. O pitanju prepoznavanja slike i odabiru pravih značajki za to detaljnije će se raspravljati u odgovarajućem poglavlju.

Međutim, ovaj pristup ima značajne nedostatke. Prvo, ovaj pristup uključuje značajnu količinu rada na identificiranju značajki, a taj posao istraživač obavlja ručno i može oduzimati puno vremena. Drugo, identificiranje značajki na temelju kojih se može dobiti visokokvalitetni algoritam u ovom slučaju postaje uglavnom nasumično; štoviše, malo je vjerojatno da će značajke koje mogu imati važan utjecaj na unutarnju strukturu slike biti uzete u obzir, ali to ljudima nije očito. Stoga ideja o automatskom identificiranju značajki koje se kasnije mogu koristiti za upravljanje algoritmima strojnog učenja izgleda posebno privlačno. A upravo je to prilika koju pruža pristup dubokog učenja.

Sa stajališta teorije strojnog učenja, dubinsko učenje je podskup takozvanog reprezentativnog učenja. Glavni koncept učenja predstavljanja je upravo automatsko traženje obilježja na temelju kojih će neki algoritam, na primjer, klasifikacija, raditi u budućnosti.

S druge strane, još jedan važan problem s kojim se treba suočiti pri korištenju strojnog učenja je prisutnost faktora varijacije koji mogu imati značajan utjecaj na izgled izvornih podataka, ali nisu povezani s njihovom samom suštinom, što je istraživaču pokušavajući analizirati. Stoga, u zadatku prepoznavanja slike, takvi faktori mogu biti kut pod kojim je objekt na slici okrenut prema promatraču, doba dana, osvjetljenje itd. Dakle, ovisno o kutu gledanja i vremenu, crveni automobil može imati drugačiju nijansu i oblik na fotografiji. Stoga, za zadatke kao što je identificiranje objekta na fotografiji, čini se razumnim uzeti u obzir ne specifične činjenice niske razine, kao što je boja određenog piksela, već značajke apstrakcije više razine, kao što je prisutnost kotača. Međutim, očito je da je utvrđivanje, na temelju izvorne slike, ima li kotače, netrivijalan zadatak, a izravno rješavanje može biti vrlo teško. Štoviše, prisutnost kotača samo je jedna od ogromnog broja mogućih značajki, a identificirati ih sve i napisati algoritme za provjeru njihove prisutnosti na slici ne čini se baš realnim. Ovdje istraživači mogu u potpunosti iskoristiti pristup dubokog učenja. Duboko učenje temelji se na pružanju izvornog objekta u obliku hijerarhijske strukture značajki, na način da se svaka sljedeća razina značajki gradi na temelju elemenata prethodne razine. Dakle, ako govorimo o slikama, najniža razina će biti izvorni pikseli slike, sljedeća razina će biti segmenti koji se mogu razlikovati među tim pikselima, zatim kutovi i drugi geometrijski oblici u koje se dodaju segmenti. Na sljedećoj razini njihovih figura formiraju se objekti koji su već prepoznatljivi ljudima, na primjer, kotači, i konačno, posljednja razina hijerarhije odgovorna je za određene objekte na slici, na primjer, automobil.

Za implementaciju pristupa dubokog učenja u modernoj znanosti koriste se višeslojne neuronske mreže različitih arhitektura. Neuronske mreže idealne su za rješavanje problema identifikacije iz podataka i konstruiranja hijerarhijskog skupa značajki, budući da je, u biti, neuronska mreža skup neurona od kojih se svaki aktivira samo ako ulazni podaci zadovoljavaju određene kriterije – tj. , predstavlja određenu značajku, dok se pravila za aktivaciju neurona - ono što određuje tu značajku - uče automatski. U isto vrijeme, neuronske mreže u svom najčešćem obliku same po sebi predstavljaju hijerarhijsku strukturu, gdje svaki sljedeći sloj neurona koristi izlaze neurona prethodnog sloja kao svoj ulaz - ili, drugim riječima, značajke više razine su formirana na temelju značajki niže razine.

Širenje ovog pristupa i, s tim u vezi, sljedeći procvat neuronskih mreža, bilo je zbog tri međusobno povezana razloga:

· Pojava novih arhitektura neuronskih mreža skrojenih za rješavanje specifičnih problema (konvolucijske mreže, Boltzmannovi strojevi, itd.)

· Razvoj i dostupnost računalstva korištenjem gpu-a i paralelnog računalstva općenito

· Pojava i širenje sloj-po-slojnog pristupa treniranju za neuronske mreže, u kojem se svaki sloj posebno trenira pomoću standardnog algoritma povratnog širenja (obično na neoznačenim podacima, odnosno, u biti, trenira se autokoder), što čini moguće je identificirati značajne značajke na danoj razini, a zatim se svi slojevi kombiniraju u jednu mrežu i mreža se dalje obučava korištenjem označenih podataka za rješavanje specifičnog problema (fino podešavanje). Ovaj pristup ima dvije značajne prednosti. Prvo, na ovaj način značajno se povećava učinkovitost mrežnog treninga, budući da se u svakom trenutku ne trenira duboka struktura, već mreža s jednim skrivenim slojem - kao rezultat, problemi sa smanjenjem vrijednosti pogreške kao dubina mreže se povećava i odgovarajuće smanjenje stope učenja nestaje. I drugo, ovaj pristup mrežnoj obuci omogućuje vam korištenje neoznačenih podataka prilikom obuke, što je obično puno više od označenih podataka - što mrežnu obuku čini jednostavnijom i pristupačnijom za istraživače. Označeni podaci u ovom pristupu potrebni su tek na samom kraju za fino podešavanje mreže za rješavanje specifičnog problema klasifikacije, au isto vrijeme, budući da je opća struktura značajki koje opisuju podatke već stvorena u procesu prethodnih obuku, potrebno je znatno manje podataka za fino podešavanje mreže nego za početnu obuku kako bi se identificirali znakovi. Osim smanjenja potrebne količine označenih podataka, korištenje ovog pristupa omogućuje vam jednokratno treniranje mreže korištenjem velike količine neoznačenih podataka i zatim korištenje dobivene strukture značajki za rješavanje raznih problema klasifikacije, pročišćavanje mreže korištenjem različitih skupova podataka - u puno manje vremena nego što bi bilo potrebno u slučaju potpunog treniranja mreže svaki put.

Pogledajmo malo detaljnije osnovne arhitekture neuronskih mreža koje se obično koriste u kontekstu dubokog učenja.

· Višeslojni perceptron – pravilna je potpuno povezana neuronska mreža s velikim brojem slojeva. Pitanje koliko se slojeva smatra dovoljno velikim nema jasan odgovor, ali obično se mreže s 5-7 slojeva već smatraju "dubokim". Ovakva arhitektura neuronskih mreža, iako nema bitnih razlika od mreža koje su se ranije koristile prije širenja koncepta dubokog učenja, može se pokazati vrlo učinkovitom ako se uspješno riješi problem njezinog osposobljavanja, što je bio glavni problem prethodnog rada s takvim mrežama. Trenutačno je ovaj problem riješen korištenjem grafičkih kartica za treniranje mreže, što omogućuje brže treniranje i shodno tome veći broj iteracija treninga, odnosno već spomenuto sloj-po-sloj treniranje mreže. Tako su 2012. Ciresan i suradnici objavili članak “Deep big multilayer perceptron for digit recognition”, u kojem su iznijeli pretpostavku da višeslojni perceptron s velikim brojem slojeva, u slučaju dovoljno vremena za obuku (što se postiže u razumno vrijeme korištenjem paralelnog računanja na GPU-u) i dovoljna količina podataka za obuku (što se postiže primjenom različitih nasumičnih transformacija na izvorni skup podataka) može pokazati izvedbu ništa lošiju od ostalih, složenijih modela. Njihov model, koji je neuronska mreža s 5 skrivenih slojeva, pokazao je stopu pogreške od 0,35 pri klasificiranju brojeva iz skupa podataka MNIST-a, što je bolje od prethodno objavljenih rezultata složenijih modela. Također, spajanjem nekoliko ovako obučenih mreža u jedan model, uspjeli su smanjiti stopu pogreške na 0,31%. Stoga je, unatoč prividnoj jednostavnosti, višeslojni perceptron prilično uspješan predstavnik algoritama dubokog učenja.

· Složeni autokoder (složeni autokoder) - ovaj model je usko povezan s višeslojnim perceptronom i, općenito, sa zadatkom treniranja dubokih neuronskih mreža. Korištenjem autoenkodera stoga provodi se sloj-po-sloj obuka dubokih mreža. Međutim, ovaj model se ne koristi samo za potrebe obuke drugih modela, već često sam po sebi ima veliki praktični značaj. Da bismo opisali bit autokodera snopa, prvo razmotrimo koncept običnog autokodera. Autokoder je algoritam za učenje bez nadzora u kojem su očekivane izlazne vrijednosti neuronske mreže njezine vlastite ulazne vrijednosti. Model autoenkodera shematski je prikazan na slici 2:

Slika 2. Klasični autokoder

Očito, zadatak treniranja takvog modela ima trivijalno rješenje ako je broj neurona u skrivenom sloju jednak broju ulaznih neurona - tada skriveni sloj samo treba emitirati svoje ulazne vrijednosti na izlaz. Stoga se pri obučavanju autokodera uvode dodatna ograničenja, na primjer, broj neurona u skrivenom sloju postavlja se tako da bude znatno manji nego u ulaznom sloju ili se koriste posebne tehnike regulacije s ciljem osiguravanja visok stupanj rijetkost neurona skrivenog sloja. Jedna od najčešćih upotreba čistih autokodera je zadatak dobivanja komprimirane reprezentacije izvornih podataka. Na primjer, autokoder s 30 neurona u skrivenom sloju, obučen na MNIST skupu podataka, omogućuje vraćanje izvornih slika brojeva na izlaznom sloju praktički bez promjena, što znači da zapravo svaka od originalnih slika može biti sasvim točno opisano sa samo 30 brojeva. U ovoj primjeni autokoderi se često smatraju alternativom analizi glavne komponente. Složeni autokoder je u biti kombinacija nekoliko običnih autokodera obučenih sloj po sloj. U ovom slučaju, izlazne vrijednosti obučenih neurona skrivenog sloja prvog od autokodera djeluju kao ulazne vrijednosti za drugi od njih, itd.

· Konvolucijske mreže jedan su od najpopularnijih modela dubinskog učenja u zadnje vrijeme, prvenstveno se koriste za prepoznavanje slika. Koncept konvolucijskih mreža izgrađen je na tri glavne ideje:

o Lokalna osjetljivost (lokalna receptivna polja) - ako govorimo o problemu prepoznavanja slike, to znači da na prepoznavanje elementa na slici prvenstveno treba utjecati njegova neposredna okolina, dok pikseli koji se nalaze u drugom dijelu slike najvjerojatnije nisu ni na koji način povezani s ovim elementom i ne sadrže informacije koje bi pomogle da ga se ispravno identificira

o Zajedničke težine - prisutnost zajedničkih težina u modelu zapravo predstavlja pretpostavku da se isti objekt može pronaći u bilo kojem dijelu slike, dok se isti uzorak (skup težina) koristi za njegovo traženje u svim dijelovima slike. slika

o Poduzorkovanje je koncept koji vam omogućuje da model učinite otpornijim na manja odstupanja od željenog uzorka - uključujući ona povezana s manjim deformacijama, promjenama u osvjetljenju itd. Ideja poduzorkovanja je da se pri podudaranju uzorka ne uzima u obzir točna vrijednost za određeni piksel ili područje piksela, već njegovo okupljanje u određenom susjedstvu, na primjer, prosječna ili maksimalna vrijednost.

S matematičkog gledišta, osnova konvolucijskih neuronskih mreža je operacija konvolucije matrice, koja se sastoji od množenja matrice po elementima koja predstavlja malo područje izvorne slike (na primjer, 7 * 7 piksela) s matricu iste veličine, nazvanu konvolucijska jezgra, i naknadno zbrajanje dobivenih vrijednosti. U ovom slučaju, jezgra za provjeru u biti je određeni predložak, a broj dobiven kao rezultat zbrajanja karakterizira stupanj sličnosti određenog područja slike s ovim predloškom. Sukladno tome, svaki sloj konvolucijske mreže sastoji se od određenog broja predložaka, a zadatak treniranja mreže je odabrati ispravne vrijednosti u tim predlošcima tako da odražavaju najznačajnije karakteristike izvornih slika. U ovom slučaju, svaki predložak se uzastopno uspoređuje sa svim dijelovima slike - ovdje dolazi do izražaja ideja o odvajanju težina. Ove vrste slojeva u konvolucijskoj mreži nazivaju se konvolucijski slojevi. Uz konvolucijske slojeve, konvolucijske mreže sadrže slojeve poduzorkovanja koji zamjenjuju male regije slike s jednim brojem, čime se istovremeno smanjuje veličina uzorka za sljedeći sloj s kojim će raditi i čineći mrežu otpornijom na male promjene u podacima. Posljednji slojevi konvolucijske mreže obično koriste jedan ili više potpuno povezanih slojeva koji su osposobljeni za izravnu klasifikaciju objekata. Posljednjih godina korištenje konvolucijskih mreža postalo je de facto standard u klasifikaciji slika i omogućuje postizanje najboljih rezultata u ovom području.

· Ograničeni Boltzmannovi strojevi još su jedna vrsta modela dubokog učenja, za razliku od konvolucijskih mreža, koje se prvenstveno koriste za zadatak prepoznavanja govora. Boltzmannov stroj u svom klasičnom smislu je neusmjereni graf u kojem rubovi odražavaju ovisnosti između čvorova (neurona). U ovom slučaju neki neuroni su vidljivi, a neki skriveni. Sa stajališta neuronskih mreža, Boltzmannov stroj je u biti rekurentna neuronska mreža; sa stajališta statistike, to je slučajno Markovljevo polje. Važni koncepti za Boltzmannove strojeve su koncepti mrežne energije i stanja ravnoteže. Energija mreže ovisi o tome koliko je snažno međusobno povezanih neurona istovremeno u aktiviranom stanju, a zadatak treniranja takve mreže je konvergirati u ravnotežno stanje u kojem je njezina energija minimalna. Glavni nedostatak takvih mreža su veliki problemi s njihovim obučavanjem na opći način. Kako bi riješili ovaj problem, J. Hinton i njegovi kolege predložili su model ograničenih Boltzmannovih strojeva, koji nameće ograničenja na strukturu mreže, predstavljajući je u obliku bipartitnog grafa, u čijem jednom dijelu postoje samo vidljivi neuroni, au drugom - samo skriveni , prema tome, veze su prisutne samo između vidljivih i skrivenih neurona. Ovo ograničenje omogućilo je razvoj učinkovitih algoritama za obuku mreža ove vrste, zahvaljujući čemu je postignut značajan napredak u rješavanju problema prepoznavanja govora, gdje je ovaj model praktički zamijenio prethodno popularan model skrivenih Markovljevih mreža.

Sada, nakon što smo ispitali osnovne koncepte i principe dubokog učenja, razmotrimo ukratko osnovne principe i evoluciju razvoja prepoznavanja slika i mjesto koje duboko učenje zauzima u njemu.

1.4 Prepoznavanje slike

Postoje mnoge formulacije za problem prepoznavanja slike i vrlo ga je teško jednoznačno definirati. Na primjer, prepoznavanje slike može se smatrati zadatkom pretraživanja i identificiranja određenih logičkih objekata u izvornoj slici.

Prepoznavanje slike obično je zahtjevan zadatak za računalni algoritam. To je, prije svega, zbog velike varijabilnosti slika pojedinačnih objekata. Stoga je zadatak pronalaženja automobila na slici jednostavan za ljudski mozak, koji je u stanju automatski identificirati prisutnost važnih značajki za automobil (kotači, određeni oblik) u objektu i, ako je potrebno, "dobiti" sliku u mašti, zamišljanje detalja koji nedostaju, a izuzetno teško za računalo. budući da postoji ogroman broj varijanti automobila različitih marki i modela, koji imaju uvelike različite oblike, osim toga, konačni oblik objekta na slici uvelike ovisi o točki snimanja, kutu pod kojim se snima i drugim parametrima. Osvjetljenje također igra važnu ulogu, jer utječe na boju rezultirajuće slike, a također može učiniti pojedinačne detalje nevidljivima ili iskrivljenima.

Dakle, glavne poteškoće u prepoznavanju slike uzrokuju:

· Varijabilnost predmeta unutar razreda

Varijabilnost oblika, veličine, orijentacije, položaja na slici

· Varijabilnost rasvjete

Za borbu protiv ovih poteškoća predlagane su različite metode kroz povijest prepoznavanja slika i već je postignut značajan napredak u ovom području.

Prvo istraživanje u području prepoznavanja slika objavio je 1963. L. Roberts u članku “Strojna percepcija trodimenzionalnih krutih tijela”, gdje je autor pokušao apstrahirati od mogućih promjena oblika predmeta i koncentrirao se na prepoznavanje slika. jednostavnih geometrijskih oblika pod različitim uvjetima osvjetljenja i kada ima zavoja. Računalni program koji je razvio bio je sposoban identificirati geometrijske objekte nekih jednostavnih oblika na slici i generirati njihov trodimenzionalni model na računalu.

Godine 1987. S. Ullman i D. Huttenlocher objavili su članak “Object Recongnition Using Alignment” gdje su također pokušali prepoznati objekte relativno jednostavnih oblika, a proces prepoznavanja organiziran je u dvije faze: prvo, traženje područja u sliku na kojoj se nalazi ciljni objekt te određivanje njegove moguće veličine i orijentacije ("poravnanje") pomoću malog skupa karakterističnih značajki, a zatim piksel po piksel usporedbu potencijalne slike objekta s očekivanom.

Međutim, usporedba slika piksel po piksel ima mnoge značajne nedostatke, kao što su njena složenost, potreba za predloškom za svaki od objekata mogućih klasa, kao i činjenica da u slučaju usporedbe piksel po piksel , može se izvršiti samo pretraga za određenim objektom, a ne za cijelom klasom objekata. U nekim situacijama ovo je primjenjivo, ali u većini slučajeva i dalje je potrebno tražiti ne jedan određeni objekt, već više objekata neke klase.

Jedan od važnih pravaca u daljnjem razvoju prepoznavanja slika postalo je prepoznavanje slika temeljeno na identifikaciji kontura. U mnogim slučajevima, konture su te koje sadrže većinu informacija o slici, au isto vrijeme, razmatranje slike kao skupa kontura omogućuje vam da je značajno pojednostavite. Za rješavanje problema pronalaženja rubova na slici, klasičan i najpoznatiji pristup je Canny Edge Detector, čiji se rad temelji na traženju lokalnog maksimuma gradijenta.

Drugi važan smjer u području analize slike je primjena matematičkih metoda kao što su frekvencijsko filtriranje i spektralna analiza. Ove se metode koriste, primjerice, za komprimiranje slika (JPEG kompresija) ili poboljšanje njihove kvalitete (Gaussov filter). Međutim, budući da te metode nisu izravno povezane s prepoznavanjem slike, ovdje se o njima neće detaljnije raspravljati.

Drugi zadatak koji se često razmatra u vezi s problemom prepoznavanja slike je problem segmentacije. Glavni cilj segmentacije je istaknuti pojedinačne objekte na slici, od kojih se svaki zatim može zasebno proučavati i klasificirati. Zadatak segmentacije znatno je pojednostavljen ako je izvorna slika binarna - to jest, sastoji se od piksela samo dvije boje. U ovom slučaju problem segmentacije često se rješava metodama matematičke morfologije. Bit metoda matematičke morfologije je predstaviti sliku kao određeni skup binarnih vrijednosti i primijeniti logičke operacije na taj skup, od kojih su glavne prijenos, nadogradnja (logičko zbrajanje) i erozija (logičko množenje). Korištenjem ovih operacija i njihovih izvedenica, kao što su zatvaranje i otvaranje, postaje moguće, na primjer, ukloniti šum na slici ili istaknuti granice. Ako se takve metode koriste u segmentacijskom problemu, tada njihova najvažnija zadaća postaje upravo zadaća eliminacije šuma i formiranja više ili manje homogenih područja na slici, koja se zatim mogu lako pronaći pomoću algoritama sličnih traženju povezanih komponenti u grafu. - to će biti željeni segmenti Slike.

Što se tiče RGB segmentacije slike, jedan od važnih izvora informacija o segmentima slike može biti njezina tekstura. Za određivanje teksture slike često se koristi Gaborov filtar, koji je stvoren u pokušaju reprodukcije značajki percepcije teksture ljudskim vidom. Rad ovog filtra temelji se na funkciji pretvorbe frekvencije slike.

Još jedna važna obitelj algoritama koji se koriste za prepoznavanje slika su oni temeljeni na lokalnom pretraživanju značajki. Lokalne značajke su neka jasno prepoznatljiva područja slike koja vam omogućuju da povežete sliku s modelom (željenim objektom) i odredite odgovara li dana slika modelu i, ako odgovara, odredite parametre modela (na primjer, kut nagiba , primijenjena kompresija itd.) . Da bi učinkovito obavljale svoje funkcije, lokalne singularnosti moraju biti otporne na afine transformacije, pomake itd. Klasičan primjer lokalnih obilježja su kutovi, koji su često prisutni na granicama različitih objekata. Najpopularniji algoritam za pronalaženje kutova je Harrisov detektor.

Nedavno su sve popularnije metode prepoznavanja slike temeljene na neuronskim mrežama i dubokom učenju. Glavni procvat ovih metoda dolazi nakon pojave konvolucijskih mreža (LeCun, 2015.) krajem 20. stoljeća, koje pokazuju značajno bolje rezultate u prepoznavanju slike u odnosu na druge metode. Stoga je većina vodećih (i ne jedinih) algoritama u godišnjem natjecanju za prepoznavanje slika ImageNet-2014 koristila konvolucijske mreže u ovom ili onom obliku.

1.5 Prepoznavanje prometnih znakova

Prepoznavanje prometnih znakova općenito jedan je od mnogih zadataka prepoznavanja slika ili, u nekim slučajevima, video zapisa. Ovaj zadatak je od velike praktične važnosti, budući da se prepoznavanje prometnih znakova koristi, primjerice, u programima automatizacije vožnje. Zadatak prepoznavanja prometnih znakova ima mnogo varijacija - na primjer, prepoznavanje prisutnosti prometnih znakova na fotografiji, isticanje područja na slici koje predstavlja prometni znak, određivanje koji je određeni znak prikazan na fotografiji koja je očito slika prometni znak itd. Obično postoje tri globalna zadatka povezana s prepoznavanjem prometnih znakova - njihova identifikacija među okolnim krajolikom, izravno prepoznavanje ili klasifikacija i takozvano praćenje - to podrazumijeva sposobnost algoritma da "prati", tj. kako bi prometni znak ostao u fokusu u video sekvenci. Svaki od ovih podzadataka je zaseban predmet istraživanja i obično ima svoj krug istraživača i tradicionalne pristupe. U ovom radu pažnja je bila usmjerena na problem klasifikacije prometnog znaka prikazanog na fotografiji, pa ćemo ga detaljnije razmotriti.

Ovaj problem je problem klasifikacije za frekvencijski neuravnotežene klase. To znači da je vjerojatnost da slika pripada različitim klasama različita, budući da su neke klase češće od drugih - na primjer, na ruskim cestama znak ograničenja brzine "40" mnogo je češći od znaka "Zabranjen prolaz". Osim toga, prometni znakovi tvore nekoliko skupina klasa tako da su klase unutar jedne skupine vrlo slične jedna drugoj – npr. svi znakovi ograničenja brzine izgledaju vrlo slično, a razlikuju se samo po brojevima unutar njih, što, naravno, znatno komplicira zadatak klasifikacije. S druge strane, prometni znakovi imaju jasan geometrijski oblik i mali skup mogućih boja, što bi moglo uvelike pojednostaviti postupak klasifikacije - da nije činjenice da se prave fotografije prometnih znakova mogu snimiti iz različitih kutova i pod različitim osvjetljenjem. Dakle, zadatak klasificiranja prometnih znakova, iako se može smatrati tipičnim zadatkom prepoznavanja slika, zahtijeva poseban pristup kako bi se postigao najbolji rezultat.

Do određenog trenutka istraživanja na ovu temu bila su dosta kaotična i nepovezana, jer je svaki istraživač postavljao svoje zadatke i koristio se vlastitim skupom podataka, pa nije bilo moguće uspoređivati ​​i generalizirati postojeće rezultate. Tako su 2005. godine Bahlmann i suradnici, kao dio sveobuhvatnog sustava za prepoznavanje prometnih znakova koji podržava sva 3 prethodno navedena podzadatka prepoznavanja prometnih znakova, implementirali algoritam za prepoznavanje znakova koji radi s točnošću od 94% za prometne znakove koji pripadaju 23 različita klase. Obuka je provedena na 40.000 slika, pri čemu je broj slika koji odgovara svakoj klasi varirao od 30 do 600. Za otkrivanje prometnih znakova u ovom sustavu korišteni su AdaBoost algoritam i Haar valovi, a za klasifikaciju pronađenih znakova pristup temeljen na na korišten je algoritam maksimizacije očekivanja. Sustav za prepoznavanje znakova ograničenja brzine koji je razvio Moutarde 2007. imao je točnost do 90% i bio je uvježban na skupu od 281 slike. Ovaj je sustav koristio kružne i kvadratne detektore za otkrivanje prometnih znakova na slikama (za europske i američke znakove), koji su zatim izdvojili svaku znamenku i klasificirali je pomoću neuronske mreže. Godine 2010. Ruta i kolege razvili su sustav za detekciju i klasifikaciju 48 različitih vrsta prometnih znakova s ​​točnošću klasifikacije od 85,3%. Njihov se pristup temeljio na traženju slika za krugove i poliedre i identificiranju malog broja posebnih područja u njima koja omogućuju razlikovanje ovog znaka od svih ostalih. U ovom slučaju primijenjena je posebna transformacija boja slike, koju su autori nazvali Color Distance Transform, koja omogućuje smanjenje broja boja prisutnih na slici, a time i povećanje mogućnosti za usporedbu slika i smanjenje veličine obrađenih podataka. Broggie i Collen 2007. predložili su trostupanjski algoritam za otkrivanje i klasificiranje prometnih znakova, koji se sastoji od segmentacije boja, detekcije oblika i neuronske mreže, ali njihova publikacija ne daje kvantitativne pokazatelje rezultata njihovog algoritma. Gao i suradnici 2006. godine predložili su sustav za prepoznavanje prometnih znakova koji se temelji na analizi boje i oblika predviđenog znaka i pokazali su točnost prepoznavanja od 95% među 98 instanci prometnih znakova.

Situacija s rascjepkanošću istraživanja u području prepoznavanja prometnih znakova promijenila se 2011. godine, kada je u sklopu konferencije IJCNN (International Joint Conference on Neural Networks) održano natjecanje o prepoznavanju prometnih znakova. Za ovo natjecanje razvijen je skup podataka GTSRB (German Traffic Sign Recognition Benchmark) koji sadrži više od 50.000 slika prometnih znakova koji se nalaze na njemačkim cestama i pripadaju 43 različite klase. Na temelju tog skupa podataka provedeno je natjecanje koje se sastojalo od dvije faze. Na temelju rezultata druge etape objavljen je članak “Čovjek vs. Computer: Benchmarking Algorithms Machine Learning for Traffic Sign Recognition”, koji donosi pregled rezultata natjecanja i opis pristupa najuspješnijih timova. Također, nakon ovog događaja objavljen je niz članaka od strane samih autora algoritama - sudionika natjecanja, a taj skup podataka je kasnije postao osnovni benchmark za algoritme koji se odnose na prepoznavanje prometnih znakova, slično kao i poznati MNIST za prepoznavanje rukom pisanih brojeva.

Najuspješniji algoritmi u ovom natjecanju uključuju Committee of Convolutional Networks (tim IDSIA), Multi-Scale CNN (tim Sermanet) i Random Forests (tim CAOR). Pogledajmo svaki od ovih algoritama malo detaljnije.

Povjerenstvo za neuronske mreže koje je predložio tim IDSIA iz talijanskog Instituta Dalle Molle za istraživanje umjetne inteligencije, pod vodstvom D. Ciresana, postiglo je točnost klasifikacije znakova od 99,46%, što je više od ljudske točnosti (99,22%), procjene koja je provodi se u sklopu istog natječaja. Ovaj je algoritam naknadno detaljnije opisan u članku “Duboka neuronska mreža s više stupaca za klasifikaciju prometnih znakova”. Glavna ideja pristupa je da 4 razne metode Normalizacije: podešavanje slike, izjednačavanje histograma, prilagodljivo izjednačavanje histograma i normalizacija kontrasta. Zatim je za svaki skup podataka dobiven kao rezultat normalizacije i izvorni skup podataka izgrađeno i uvježbano 5 konvolucijskih mreža s nasumično inicijaliziranim početnim vrijednostima težina, svaka od 8 slojeva, dok su različite slučajne transformacije primijenjene na ulazne vrijednosti mreže tijekom obuke, što je omogućilo povećanje veličine i varijabilnosti uzorka za obuku. Rezultirajuće predviđanje mreže formirano je usrednjavanjem predviđanja svake od konvolucijskih mreža. Za obuku ovih mreža korištena je implementacija koja koristi GPU računalstvo.

Tim koji se sastoji od P. Sermaneta i Y. LeCuna sa Sveučilišta New York predložio je algoritam koji koristi konvolucionarnu mrežu s više razmjera. Ovaj algoritam je detaljno opisan u članku “Prepoznavanje prometnih znakova s ​​konvolucijskim mrežama u više razmjera”. U ovom algoritmu sve su izvorne slike skalirane na veličinu od 32*32 piksela i pretvorene u sive tonove, nakon čega je na njih primijenjena normalizacija kontrasta. Također, veličina izvornog skupa za obuku povećana je 5 puta primjenom malih nasumičnih transformacija na izvorne slike. Rezultirajuća mreža sastavljena je od dva stupnja, kao što je prikazano na slici 3, a izlazne vrijednosti ne samo drugog stupnja, već i prvog, korištene su u konačnoj klasifikaciji. Ova mreža pokazala je točnost od 98,31%.

Slika 3. Višestruka neuronska mreža

Treći uspješni algoritam koji koristi slučajnu šumu razvio je CAOR tim iz MINES ParisTech. Detaljan opis njihov algoritam objavljen je u članku “Real-time traffic sign recognition using spatially weighted HOG trees”. Ovaj se algoritam temelji na konstruiranju šume od 500 nasumičnih stabala odlučivanja, od kojih je svako uvježbano na nasumično odabranom podskupu skupa za uvježbavanje, pri čemu je konačna izlazna vrijednost klasifikatora ona koja je dobila najviše glasova. Ovaj klasifikator, za razliku od prethodnih razmatranih, nije koristio originalne slike u obliku skupa piksela, već HOG prikaze slika (histograme usmjerenog gradijenta) koje su uz njih dali organizatori natjecanja. Konačni rezultat algoritma bio je 96,14% ispravno klasificiranih slika, što pokazuje da se metode koje nisu povezane s neuronskim mrežama i dubokim učenjem također mogu prilično uspješno koristiti za zadatak prepoznavanja prometnih znakova, iako njihova učinkovitost još uvijek zaostaje za rezultatima konvolucijskih mreže .

1.6. Analiza postojećih knjižnica

Za implementaciju algoritama za rad s neuronskim mrežama u sustavu koji se razvija, odlučeno je koristiti jednu od postojećih biblioteka. Stoga je provedena analiza postojećih programskih rješenja za implementaciju algoritama dubokog učenja, te je na temelju rezultata te analize napravljen izbor. Analiza postojećih rješenja sastojala se od dvije faze: teorijske i praktične.

Tijekom teorijske faze razmatrane su biblioteke kao što su Deeplearning4j, Theano, Pylearn2, Torch i Caffe. Pogledajmo svaki od njih detaljnije.

· Deeplearning4j (www.deeplearning4j.org) je biblioteka otvorenog koda za implementaciju neuronskih mreža i algoritama dubokog učenja, napisana u Javi. Može se koristiti iz jezika Java, Scala i Closure, podržava integraciju s Hadoop, Apache Spark, Akka i AWS. Knjižnicu razvija i održava Skymind, koji također pruža komercijalnu podršku knjižnici. Ova biblioteka koristi biblioteku za brzi rad s n-dimenzionalnim nizovima ND4J koju je razvila ista tvrtka. Deeplearning4j podržava mnoge vrste mreža, uključujući višeslojni perceptron, konvolucijske mreže, ograničene Bolzmannove strojeve, naslagane autokodere za uklanjanje šuma, duboke autokodere, rekurzivne autokodere, mreže dubokog uvjerenja, rekurentne mreže i neke druge. Važna značajka ove knjižnice je njezina sposobnost rada u klasteru. Knjižnica također podržava mreže za obuku koristeći GPU.

· Theano (www.github.com/Theano/Theano) je Python biblioteka otvorenog koda koja vam omogućuje učinkovito stvaranje, procjenu i optimiziranje matematičkih izraza pomoću višedimenzionalnih nizova. Za predstavljanje višedimenzionalnih nizova i akcija na njima koristi se biblioteka NumPy. Ova je biblioteka namijenjena prvenstveno znanstvenim istraživanjima, a kreirala ju je skupina znanstvenika sa Sveučilišta u Montrealu. Theanove mogućnosti su vrlo široke, a rad s neuronskim mrežama samo je jedan od njegovih malih dijelova. Štoviše, upravo je ova biblioteka najpopularnija i najčešće se spominje kada je riječ o radu s dubokim učenjem.

· Pylearn2 (www.github.com/lisa-lab/pylearn2) - python biblioteka otvorenog koda izgrađena na temelju Theanoa, ali pruža prikladnije i jednostavnije sučelje za istraživače, pružajući spreman set algoritama i omogućuje jednostavnu konfiguraciju mreža u YAML formatu datoteke. Razvila ga je skupina znanstvenika iz laboratorija LISA na Sveučilištu u Montrealu.

· Torch (www.torch.ch) je biblioteka za računalstvo i implementaciju algoritama za strojno učenje, implementirana u C-u, ali omogućuje istraživačima da koriste puno praktičniji skriptni jezik Lua za rad s njom. Ova biblioteka pruža vlastitu učinkovitu implementaciju operacija na matricama, višedimenzionalnim nizovima i podržava GPU izračune. Omogućuje implementaciju potpuno povezanih i konvolucijskih mreža. To je open source.

· Caffe (www.caffe.berkeleyvision.org) - knjižnica usmjerena na učinkovitu implementaciju algoritama dubokog učenja, razvijena prvenstveno od strane Berkley Vision and Learning Center, no kao i sve prethodne, otvorenog je koda. Knjižnica je implementirana u C-u, ali također pruža prikladno sučelje za Python i Matlab. Podržava potpuno povezane i konvolucijske mreže, omogućuje vam da opišete mreže u obliku skupa slojeva u .prototxt formatu, podržava GPU izračune. Prednosti knjižnice također uključuju prisutnost velikog broja unaprijed obučenih modela i primjera, što u kombinaciji s drugim karakteristikama čini knjižnicu najlakšom za početak rada među navedenim.

Na temelju niza kriterija odabrane su 3 knjižnice za daljnje razmatranje: Deeplearning4j, Theano i Caffe. Ove 3 biblioteke su instalirane i testirane u praksi.

Među tim bibliotekama pokazalo se da je Deeplearning4j najproblematičniji za instalaciju, osim toga, otkrivene su pogreške u demo primjerima isporučenim s bibliotekom, što je postavilo neka pitanja u vezi s pouzdanošću biblioteke i otežalo njezino daljnje proučavanje. Osim toga, uzimajući u obzir nižu produktivnost Java jezika u usporedbi s C-om, u kojem je implementiran Caffe, odlučeno je odustati od daljnjeg razmatranja ove biblioteke.

Biblioteka Theano također se pokazala prilično teškom za instalaciju i konfiguraciju, ali za ovu biblioteku postoji velika količina visokokvalitetne i dobro strukturirane dokumentacije i primjera radnog koda, tako da je na kraju biblioteka mogla raditi, uključujući korištenje grafičke kartice. Međutim, kako se pokazalo, implementacija čak i elementarne neuronske mreže u ovoj biblioteci zahtijeva pisanje velike količine vlastitog koda; sukladno tome, velike poteškoće nastaju i s opisom i modifikacijom strukture mreže. Stoga, usprkos potencijalno puno širim mogućnostima ove knjižnice u usporedbi s Caffeom, za ovu studiju odlučeno je usredotočiti se na potonju, jer je najprikladnija za postavljene zadatke.

1.7 KnjižnicaCaffe

Biblioteka Caffe nudi prilično jednostavno sučelje prilagođeno istraživačima, koje vam omogućuje jednostavno konfiguriranje i treniranje neuronskih mreža. Za rad s bibliotekom potrebno je izraditi opis mreže u formatu prototxt (datoteka definicije međuspremnika protokola - jezik za opis podataka koji je stvorio Google), koji je donekle sličan JSON formatu, dobro strukturiran i čitljiv ljudima. Opis mreže je u biti opis svakog od njenih slojeva redom. Knjižnica može raditi s bazom podataka (leveldb ili lmdb), podacima u memoriji, HDF5 datotekama i slikama kao ulaznim podacima. Također je moguće koristiti posebnu vrstu podataka pod nazivom DummyData za potrebe razvoja i testiranja.

Knjižnica podržava stvaranje slojeva sljedećih vrsta: InnerProduct (potpuno povezani sloj), Splitting (pretvara podatke za prijenos u nekoliko izlaznih slojeva odjednom), Flattening (pretvara podatke iz višedimenzionalne matrice u vektor), Reshape (omogućuje vam za promjenu dimenzije podataka), spajanje (pretvara podatke iz nekoliko ulaznih slojeva u jedan izlaz), rezanje i nekoliko drugih. Za konvolucijske mreže također su podržani posebni tipovi slojeva - Convolution (sloj konvolucije), Pooling (sloj poduzorkovanja) i Local Response Normalization (sloj za lokalnu normalizaciju podataka). Osim toga, nekoliko vrsta funkcija gubitka koje se koriste u obuci mreže (Softmax, Euklidska, šarka, sigmoidna unakrsna entropija, Infogain i točnost) i funkcije aktivacije neurona (rektificirano-linearna, sigmoidna, hiperbolička tangenta, apsolutna vrijednost, snaga i BNLL) su podržani - koji su također konfigurirani kao zasebni mrežni slojevi.

Dakle, mreža je deklarativno opisana u prilično jednostavnom obliku. Primjeri mrežnih konfiguracija korištenih u ovoj studiji mogu se vidjeti u Dodatku 1. Također, da bi knjižnica radila koristeći standardne skripte, potrebno je izraditi datoteku solver.prototxt, koja opisuje konfiguraciju mrežne obuke - broj iteracija za obuku , stopa učenja, računalna platforma - CPU ili GPU itd.

Obuka modela može se implementirati pomoću ugrađenih skripti (nakon što su modificirane za trenutni zadatak) ili ručno pisanjem koda pomoću priloženog API-ja u Pythonu ili Matlabu. Istodobno, postoje skripte koje vam omogućuju ne samo treniranje mreže, već i, na primjer, stvaranje baze podataka na temelju ponuđenog popisa slika - u ovom slučaju slike će se dovesti do fiksne veličine i normaliziran prije dodavanja u bazu podataka. Skripte koje se koriste za obuku također sadrže neke pomoćne akcije - na primjer, one procjenjuju trenutnu točnost modela nakon određenog broja ponavljanja i spremaju trenutno stanje obučenog modela u datoteku snimke. Korištenje datoteka sa snimkama omogućuje vam da u budućnosti nastavite s obukom modela umjesto da počnete ispočetka, ako se pojavi takva potreba, a također, nakon određenog broja ponavljanja, promijenite konfiguraciju modela - na primjer, dodajte novi sloj - i u isto vrijeme težine prethodno obučenih slojeva će zadržati svoje vrijednosti, što vam omogućuje implementaciju prethodno opisanog mehanizma učenja sloj po sloj.

Općenito, knjižnica se pokazala prilično prikladnom za korištenje i omogućila nam je implementaciju svih željenih modela, kao i dobivanje vrijednosti točnosti klasifikacije za te modele.

2. Razvoj prototipa sustava za prepoznavanje slike

.1 Algoritam za klasifikaciju slika

Tijekom proučavanja teorijskog materijala o temi i praktičnih eksperimenata, formiran je sljedeći skup ideja koje bi trebale biti utjelovljene u konačnom algoritmu:

· Korištenje dubokih konvolucijskih neuronskih mreža. Konvolucijske mreže dosljedno pokazuju najbolje rezultate u prepoznavanju slika, uključujući prometne znakove, pa se njihova upotreba u razvijenom algoritmu čini logičnom

· Korištenje višeslojnih perceptrona. Unatoč općenito većoj učinkovitosti konvolucijskih mreža, postoje vrste slika za koje višeslojni perceptron pokazuje bolje rezultate, pa je odlučeno koristiti i ovaj algoritam

· Kombiniranje rezultata nekoliko modela pomoću dodatnog klasifikatora. Budući da je odlučeno koristiti najmanje dvije vrste neuronskih mreža, potreban je način za generiranje nekog ukupnog rezultata klasifikacije na temelju rezultata svake od njih. Za to se planira koristiti dodatni klasifikator koji nije povezan s neuronskim mrežama, čije su ulazne vrijednosti rezultati klasifikacije svake od mreža, a izlaz je konačna predviđena klasa slike

· Primjena dodatnih transformacija ulaznih podataka. Kako bi se povećala prikladnost ulaznih slika za prepoznavanje i, sukladno tome, poboljšala izvedba klasifikatora, potrebno je primijeniti nekoliko vrsta transformacija na ulazne podatke, a rezultate svake od njih mora obraditi zasebna mreža osposobljena za prepoznavanje slika s ovom vrstom transformacije.

Na temelju svih navedenih ideja formiran je sljedeći koncept klasifikatora slika. Klasifikator je skup od 6 neuronskih mreža koje djeluju neovisno: 2 višeslojna perceptrona i 4 konvolucijske mreže. U ovom slučaju mreže istog tipa razlikuju se jedna od druge po vrsti transformacije primijenjenoj na ulazne podatke. Ulazni podaci skaliraju se tako da unos u svaku mrežu uvijek proizvodi podatke iste veličine, iako te veličine mogu varirati za različite mreže. Za agregiranje rezultata svih mreža koristi se dodatni klasični klasifikator, od kojeg su korištene 2 opcije: algoritam J48, koji se temelji na stablu odlučivanja, i algoritam kStar, koji je “lijeni” klasifikator. Transformacije korištene u klasifikatoru:

· Binarizacija - slika se zamjenjuje novom koja se sastoji od piksela samo crne i bijele boje. Za izvođenje binarizacije koristi se metoda adaptivnog određivanja praga. Bit metode je da se za svaki piksel slike izračuna prosječna vrijednost određenog susjedstva njegovih piksela (pretpostavlja se da slika sadrži samo nijanse sive; za to su izvorne slike prethodno pretvorene u skladu s tim) , a zatim se na temelju izračunate prosječne vrijednosti određuje treba li piksel smatrati crnim ili bijelim.

· Izjednačavanje histograma - bit metode je primijeniti određenu funkciju na histogram slike, tako da vrijednosti u rezultirajućem dijagramu budu što ravnomjernije raspoređene. U ovom se slučaju ciljna funkcija izračunava na temelju funkcije distribucije intenziteta boje u izvornoj slici. Primjer primjene slične funkcije na histogram slike prikazan je na slici 4. Ova se metoda može koristiti i za crno-bijele slike i za slike u boji - zasebno za svaku komponentu boje. U ovom istraživanju korištene su obje opcije.

Slika 4, Rezultati primjene poravnanja grafikona na sliku

· Poboljšanje kontrasta - sastoji se u činjenici da se za svaki piksel slike lokalni minimum i maksimum nalaze u nekom njegovom susjedstvu, a zatim se taj piksel zamjenjuje lokalnim maksimumom ako je njegova izvorna vrijednost bliža maksimumu, ili lokalnom minimum inače. Primjenjuje se na crno-bijele slike.

Opći dijagram dobivenog klasifikatora shematski je prikazan na slici 5:

Slika 5, dijagram konačnog klasifikatora

Za implementaciju dijela modela odgovornog za transformaciju ulaznih podataka i neuronskih mreža koristi se jezik Python i biblioteka Caffe. Opišimo detaljnije strukturu svake od mreža.

Oba višeslojna perceptrona sadrže 4 skrivena sloja, a njihova ukupna konfiguracija opisana je kako slijedi:

· Ulazni sloj

Sloj 1, 1500 neurona

Sloj 2, 500 neurona

Sloj 3, 300 neurona

Sloj 4, 150 neurona

Izlazni sloj

Primjer opisa Caffe konfiguracijske datoteke ovu mrežu, može se vidjeti u Dodatku 1. Što se tiče konvolucijskih mreža, njihova se arhitektura temeljila na dobro poznatoj LeNet mreži, razvijenoj za klasifikaciju slika iz ImageNet skupa podataka. Međutim, kako bi se prilagodile dotičnim slikama, koje su znatno manje veličine, mreža je modificirana. Njegov kratki opis izgleda ovako:

Dijagram ove mreže prikazan je na slici 6.

Slika 6, dijagram konvolucijske mreže

Svaka neuronska mreža koja pokreće model trenira se zasebno. Nakon treninga neuronskih mreža posebna skripta u Pythonu, za svaku od mreža za svaku od slika skupa za obuku, dobiva rezultat klasifikacije u obliku popisa vjerojatnosti svake klase, odabire dvije najvjerojatnije klase i zapisuje dobivene vrijednosti zajedno s stvarna vrijednost klase slike u datoteci. Rezultirajuća datoteka se zatim prosljeđuje kao set za obuku klasifikatoru (J48 i kStar) implementiranom u Weka knjižnici. Sukladno tome, daljnja klasifikacija se vrši pomoću ove biblioteke.

2.2 Arhitektura sustava

Sada, nakon što smo razmotrili algoritam za prepoznavanje prometnih znakova pomoću neuronskih mreža i dodatnog klasifikatora, prijeđimo izravno na opis razvijenog sustava koji koristi ovaj algoritam.

Razvijeni sustav je aplikacija s web sučeljem koja korisniku omogućuje učitavanje slike prometnog znaka i dobivanje rezultata klasifikacije tog znaka pomoću opisanog algoritma. Ova aplikacija se sastoji od 4 modula: web aplikacije, modula neuronske mreže, modula klasifikacije i administratorskog sučelja. Shematski dijagram interakcije modula prikazan je na slici 7.

Slika 7, dijagram klasifikacijskog sustava

Brojevi u dijagramu označavaju redoslijed radnji kada korisnik radi sa sustavom. Korisnik postavlja sliku. Zahtjev korisnika obrađuje web poslužitelj i preuzeta slika se prenosi u modul neuronskih mreža, gdje se na slici izvode sve potrebne transformacije (skaliranje, promjena sheme boja i sl.), nakon čega svaka od neuronskih mreža stvara vlastito predviđanje. Zatim upravljačka logika ovog modula odabire dva najvjerojatnija predviđanja za svaku mrežu i vraća te podatke web poslužitelju. Web poslužitelj primljene podatke o mrežnim predviđanjima prenosi u klasifikacijski modul, gdje se oni obrađuju i generira konačni odgovor o predviđenoj klasi slike koji se vraća na web poslužitelj, a odatle korisniku. U ovom slučaju, interakcija između korisnika i web poslužitelja te web poslužitelja i modula neuronske mreže i klasifikacije odvija se putem REST zahtjeva korištenjem HTTP protokola. Slika se prenosi u višedijelnom formatu podataka, a podaci o rezultatima klasifikatora prenose se u JSON formatu. Ova radna logika čini pojedinačne module dovoljno izoliranima jedan od drugoga, što im omogućuje neovisni razvoj, uključujući korištenje različitih programskih jezika, te također, ako je potrebno, jednostavnu promjenu operativne logike svakog modula zasebno bez utjecaja na radnu logiku ostalih.

Za implementaciju korisničkog sučelja u ovom sustavu korišteni su jezici HTML i Java Script, Java je korištena za implementaciju web servera i modula klasifikacije, a Python je korišten za implementaciju modula neuronske mreže. Izgled korisničkog sučelja sustava prikazan je na slici 8.

Slika 8. Korisničko sučelje sustava

Korištenje ovog sustava pretpostavlja da neuronska mreža i moduli klasifikacije već sadrže obučene modele. U isto vrijeme, administratorsko sučelje je osigurano za modele obuke, što je u biti skup skripti u Pythonu za obuku neuronskih mreža i uslužni program konzole u Javi za obuku konačnog klasifikatora. Ovi alati nisu namijenjeni čestoj upotrebi ili korištenju od strane neprofesionalnih korisnika, stoga im nije potrebno naprednije sučelje.

Općenito, razvijena aplikacija uspješno ispunjava sve zadatke koji su joj dodijeljeni, uključujući dopuštanje korisniku da jednostavno dobije predviđanje klase za sliku koju je odabrao. Stoga jedino ostaje otvoreno pitanje praktičnih rezultata rada klasifikatora korištenog u ovom algoritmu, o čemu će biti riječi u 3. poglavlju.

3. Rezultati eksperimentalnih istraživanja

.1 Početni podaci

Prethodno spomenuti skup podataka GTSRB (German Traffic Signs Recognition Benchmark) korišten je kao ulazni podatak u ovoj studiji. Ovaj skup podataka sastoji se od 51840 slika koje pripadaju 43 klase. Štoviše, broj slika koje pripadaju različitim klasama je različit. Distribucija broja slika po klasama prikazana je na slici 9.

Slika 9. Distribucija broja slika po klasama

Veličine ulaznih slika također se razlikuju. Najmanja slika ima širinu od 15 piksela, a najveća ima širinu od 250 piksela. Opća distribucija veličina slika prikazana je na slici 10.

Slika 10. Distribucija veličine slike

Izvorne slike prikazane su u ppm formatu, odnosno u obliku datoteke gdje svaki piksel odgovara trima brojevima - vrijednostima intenziteta crvene, zelene i plave komponente boje.

3.2 Predobrada podataka

Prije početka rada, izvorni podaci su pripremljeni na odgovarajući način – konvertirani iz PPM forme u JPEG format, s kojim Caffe biblioteka može raditi, nasumično podijeljeni u set za obuku i testiranje u omjeru 80:20%, te također skalirani. Algoritam za klasifikaciju koristi slike dvije veličine - 45*45 (za obuku višeslojnog perspetrona na binariziranim podacima) i 60*60 (za obuku drugih mreža), tako da su za svaku sliku skupa za obuku i test, instance ove dvije veličine bile stvorio. Također, prethodno spomenute transformacije (binarizacija, normalizacija histograma, poboljšanje kontrasta) primijenjene su na svaku od slika, a rezultirajuće slike su spremljene u LMDB (Lightning Memory-Mapped Database), koja je brza i učinkovita pohrana ključeva i vrijednosti " Ovaj način pohranjivanja podataka omogućuje najbrže i najviše ugodan rad Caffe knjižnice. Za pretvaranje slika korišteni su Python Imaging Library (PIL) i scikit-image. Primjeri slika dobivenih nakon svake od transformacija prikazani su na slici 11. Slike pohranjene u bazi podataka kasnije su korištene za izravno treniranje neuronskih mreža.

Slika 11. Rezultati primjene transformacija na sliku

Što se tiče treniranja neuronskih mreža, svaka od mreža je posebno trenirana i evaluirani su rezultati njenog rada, a zatim je izgrađen i treniran konačni klasifikator. Međutim, prije toga izgrađena je i uvježbana jednostavna mreža, koja je bila perceptron s jednim skrivenim slojem. Razmatranje ove mreže imalo je dva cilja - proučiti kako raditi s Caffe knjižnicom dalje jednostavan primjer te formiranje nekog mjerila za sadržajniju ocjenu rezultata rada drugih mreža u usporedbi s njim. Stoga u sljedećem odjeljku detaljnije razmotrite svaki od modela mreže i rezultate njezina rada.

3.3 Rezultati pojedinih modela

Modeli implementirani u ovoj studiji uključuju:

· Neuronska mreža s jednim skrivenim slojem

· Višeslojna neuronska mreža izgrađena na temelju izvornih podataka

· Višeslojna neuronska mreža izgrađena na temelju binariziranih podataka

· Konvolucijska mreža izgrađena na temelju izvornih podataka

· Konvolucijska mreža izgrađena na temelju RGB podataka nakon poravnanja karte

· Konvolucijska mreža izgrađena na podacima u sivim tonovima nakon poravnanja grafikona

Konvolucijska mreža izgrađena na podacima u sivim tonovima nakon poboljšanja kontrasta

· Kombinirani model koji se sastoji od kombinacije dviju višeslojnih neuronskih mreža i 4 konvolucijske.

Pogledajmo svaki od njih detaljnije.

Postoji neuralni s jednim skrivenim slojem, iako ne spada u modele dubokog učenja, ipak se pokazao vrlo korisnim za implementaciju, prvo, kao materijal za obuku za rad s knjižnicom, a drugo, kao neki osnovni algoritam za usporedba s radom drugih modela . Nedvojbene prednosti ovog modela uključuju jednostavnost njegove konstrukcije i veliku brzinu učenja.

Ovaj model je izgrađen za početne slike u boji veličine 45*45 piksela, dok je skriveni sloj sadržavao 500 neurona. Uvježbavanje mreže trajalo je oko 30 minuta, a rezultirajuća točnost predviđanja bila je 59,7%.

Drugi izgrađeni model je višeslojna potpuno povezana neuronska mreža. Ovaj je model napravljen za binarizirane i kolor verzije slika manjeg formata i sadržavao je 4 skrivena sloja. Mrežna konfiguracija opisana je na sljedeći način:

· Ulazni sloj

Sloj 1, 1500 neurona

Sloj 2, 500 neurona

Sloj 3, 300 neurona

Sloj 4, 150 neurona

Izlazni sloj

Model ove mreže shematski je prikazan na slici 12.

Slika 12. Shema višeslojnog perceptrona

Konačna točnost dobivenog modela je 66,1% za binarizirane slike i 81,5% za one u boji. Međutim - što opravdava konstrukciju modela za binarizirane slike, unatoč nižoj točnosti - postojao je niz slika za koje je binarizirani model mogao odrediti točnu klasu. Osim toga, model temeljen na slikama u boji zahtijevao je značajno više vremena za obuku – oko 5 sati u usporedbi s 1,5 sati za binariziranu verziju.

Ostali konstruirani modeli se na ovaj ili onaj način temelje na konvolucijskim mrežama, budući da su upravo takve mreže pokazale najveću učinkovitost u zadacima kao što je prepoznavanje slika. Arhitektura neuronske mreže temeljila se na dobro poznatoj mreži LeNet, razvijenoj za klasifikaciju slika iz skupa podataka ImageNet. Međutim, kako bi se prilagodile dotičnim slikama, koje su znatno manje veličine, mreža je modificirana. Kratki opis mrežna arhitektura:

· 3 zavojna sloja s veličinama jezgre 9, 3 i 3

· 3 sloja poduzorkovanja

· 3 potpuno povezana sloja s veličinama od 100, 100 i 43 neurona

Ova mreža je zasebno uvježbana na većim izvornim slikama, slikama s izjednačenim histogramom (očuvana boja), slikama s izjednačenim histogramom pretvorenim u crno-bijele i konačno, crno-bijelim slikama s pojačanim kontrastom. Rezultati učenja prikazani su u tablici 1:

Tablica 1. Rezultati treninga konvolucijske mreže

Vidite da je najbolje rezultate pokazala mreža izgrađena na temelju crno-bijelih slika nakon izjednačavanja histograma. To se može objasniti činjenicom da se u procesu ispravljanja dijagrama poboljšala kvaliteta slika, na primjer, razlika između slike i pozadine i ukupni stupanj svjetline, dok su u isto vrijeme nepotrebne informacije sadržano u boji i ne nosi značajno semantičko opterećenje - osoba je u stanju lako prepoznati iste znakove u crno-bijeloj tehnici - ali koji stvaraju šum na slici i kompliciraju klasifikaciju - eliminirani su.

Uvježbajte svaku mrežu na skupu za uvježbavanje koristeći metodu povratnog širenja (skup je isti za sve mreže, ali se na slike primjenjuju različite transformacije)

2. Za svaku instancu skupa za obuku, nabavite dvije najvjerojatnije klase silaznim redoslijedom vjerojatnosti iz svake mreže, spremite rezultirajući skup (ukupno 12 vrijednosti) i stvarnu oznaku klase

Upotrijebite dobiveni skup podataka - 12 atributa i oznaku klase - kao set za obuku za konačni klasifikator

Procijenite točnost rezultirajućeg modela: za svaku instancu skupa testova dobijte dvije najvjerojatnije klase silaznim redoslijedom vjerojatnosti iz svake mreže i konačno predviđanje klase na temelju ovog skupa podataka

Na temelju rezultata izvođenja koraka iz ove sheme izračunata je konačna točnost kombiniranog algoritma: 93% pri korištenju J48 algoritma i 94,8% pri korištenju KStar-a. U isto vrijeme, algoritam koji se temelji na stablu odlučivanja pokazuje nešto lošije rezultate, ali ima dvije važne prednosti: prvo, stablo dobiveno kao rezultat algoritma jasno pokazuje logiku klasifikacije i omogućuje nam da bolje razumijemo stvarnu strukturu podataka (primjerice, koja od mreža daje najtočnija predviđanja za određenu vrstu znakova i stoga njezino predviđanje jedinstveno određuje rezultat), drugo, nakon izgradnje modela, ovaj algoritam omogućuje vrlo brzu klasifikaciju novih entiteta, jer klasifikacija zahtijeva samo jedan prolaz kroz stablo od vrha do dna. Što se tiče KStar algoritma, tijekom njegovog rada zapravo nema izgradnje modela, a klasifikacija se temelji na traženju najsličnijih instanci među skupom za obuku. Dakle, ovaj algoritam, iako klasificira entitete, ne pruža ih dodatne informacije za njih, i što je najvažnije, klasifikacija svake instance može zahtijevati značajnu količinu vremena, što može biti neprihvatljivo za zadatke gdje je potrebno vrlo brzo dobiti rezultate, na primjer, kod prepoznavanja prometnih znakova pri automatskoj vožnji automobila.

Tablica 2 prikazuje opću usporedbu rezultata svih razmatranih algoritama.

Tablica 2. Usporedba rezultata algoritma

Slika 13 prikazuje graf mrežnog treniranja na primjeru konvolucijske mreže za podatke u sivim tonovima s izjednačavanjem histograma (broj ponavljanja na x-osi, točnost na y-osi).

Slika 13. Graf obuke konvolucijske mreže

Da rezimiramo rezultate studije, također je korisno proučiti rezultate klasifikacije i utvrditi koje je znakove najlakše klasificirati, a koje je, naprotiv, teško prepoznati. Da biste to učinili, razmotrite izlazne vrijednosti algoritma J48 i rezultirajuću tablicu nepredviđenih okolnosti (vidi Dodatak 3). Možete vidjeti da je za neke znakove točnost klasifikacije 100% ili vrlo blizu njima - na primjer, to su znakovi „Stop” (klasa 14), „Ustupi prednost” (klasa 13), „Glavna cesta” (klasa 12 ), „Ukinuti” sva ograničenja” (klasa 32), „Prolaz je zabranjen” (klasa 15) (Slika 12). Većina ovih znakova ima prepoznatljiv oblik ("Glavna cesta") ili posebne grafičke elemente koji nemaju analogije na drugim znakovima ("Kraj svih ograničenja").

Slika 12. Primjeri lako prepoznatljivih prometnih znakova

Često se miješaju i drugi znakovi, npr. prolazak lijevo i desno ili razni znakovi ograničenja brzine (slika 13).

Slika 13. Primjeri često miješanih znakova

Upečatljiv je obrazac da neuronske mreže često miješaju znakove koji su simetrični jedni s drugima - to je osobito istinito za konvolucijske mreže koje traže lokalne znakove u slici i ne analiziraju sliku kao cjelinu - višeslojni perceptroni prikladniji su za klasificiranje takvih slike.

Ukratko, možemo reći da je uz pomoć konvolucijskih neuronskih mreža i kombiniranog algoritma izgrađenog na njihovoj osnovi, bilo moguće dobiti dobre rezultate u klasifikaciji prometnih znakova - točnost rezultirajućeg klasifikatora je gotovo 95%, što omogućuje kako bismo dobili praktične rezultate, osim toga, predloženi pristup korištenjem dodatnog klasifikatora za kombiniranje rezultata neuronskih mreža ima mnogo mogućnosti za daljnje poboljšanje.

Zaključak

U ovom radu detaljno je proučavan problem prepoznavanja slike pomoću umjetnih neuronskih mreža. Pregledani su trenutačno najrelevantniji pristupi prepoznavanju slika, uključujući one koji koriste duboke neuronske mreže, te je razvijen vlastiti algoritam za prepoznavanje slika na primjeru problema prepoznavanja prometnih znakova pomoću dubokih mreža. Na temelju rezultata rada možemo reći da su ispunjeni svi zadaci postavljeni na početku rada:

Proveden je analitički pregled literature na temu korištenja umjetnih neuronskih mreža za prepoznavanje slika. Prema rezultatima ovu recenziju Utvrđeno je da su u posljednje vrijeme najučinkovitiji i najrašireniji pristupi prepoznavanju slika koji se temelje na korištenju dubokih konvolucijskih mreža.

Razvijen je algoritam za prepoznavanje slike na primjeru zadatka prepoznavanja prometnih znakova, korištenjem ansambla neuronskih mreža koji se sastoji od dva višeslojna perceptrona i 4 duboke konvolucijske mreže, te korištenjem dvije vrste dodatnog klasifikatora - J48 i KStar - za kombiniranje rezultate pojedinih mreža i oblikuju konačno predviđanje

Razvijen je prototip sustava za prepoznavanje slike na primjeru prometnih znakova koji se temelji na algoritmu iz točke 3, koji korisniku daje web sučelje za učitavanje slike te pomoću prethodno obučenih modela klasificira tu sliku i prikazuje rezultat klasifikacije. korisniku

Algoritam razvijen u koraku 3 treniran je pomoću GTSRB skupa podataka, a rezultati svake od njegovih sastavnih mreža i konačna točnost algoritma za dvije vrste dodatnog klasifikatora ocijenjeni su zasebno. Prema rezultatima eksperimenata, najveća točnost prepoznavanja od 94,8% postiže se korištenjem ansambla neuronskih mreža i KStar klasifikatora, a među pojedinačnim mrežama najbolje rezultate - točnost od 89,1% - pokazala je konvolucijska mreža koja koristi preliminarnu konverziju slike u sive tonove i izvodi izjednačavanje histograma slike.

Sve u svemu, ova studija potvrđuje da su duboke umjetne neuronske mreže, posebice konvolucijske mreže, trenutno najučinkovitiji i najperspektivniji pristup za klasifikaciju slika, što potvrđuju rezultati brojnih studija i natjecanja u prepoznavanju slika.

Popis korištene literature

1. Al-Azawi M. A. N. Automatsko prepoznavanje prometnih znakova temeljeno na neuronskoj mreži // Međunarodni časopis za digitalne informacije i bežične komunikacije (IJDIWC). - 2011. - T. 1. - Br. 4. - str. 753-766.

2. Baldi P. Autokoderi, nenadzirano učenje i duboke arhitekture //ICML nenadzirano i prijenosno učenje. - 2012. - T. 27. - P. 37-50.

Bahlmann C. i sur. Sustav za detekciju, praćenje i prepoznavanje prometnih znakova pomoću informacija o boji, obliku i kretanju // Simpozij o inteligentnim vozilima, 2005. Zbornik radova. IEEE. - IEEE, 2005. - str. 255-260.

Bastien F. i sur. Theano: nove značajke i poboljšanja brzine //arXiv preprint arXiv:1211.5590. - 2012. (prikaz).

Bengio Y., Goodfellow I., Courville A. Duboko učenje. - MIT Press, knjiga u pripremi

Bergstra J. i sur. Theano: CPU i GPU matematički prevodilac u Pythonu //Proc. 9. Python u znanosti Conf. - 2010. - Str. 1-7.

Broggi A. i sur. Prepoznavanje prometnih znakova u stvarnom vremenu // Intelligent Vehicles Symposium, 2007 IEEE. - IEEE, 2007. - str. 981-986.

Canny J. Računalni pristup otkrivanju rubova // Pattern Analysis and Machine Intelligence, IEEE Transactions on. - 1986. - Br. 6. - str. 679-698.

Ciresan D., Meier U., Schmidhuber J. Duboke neuronske mreže s više stupaca za klasifikaciju slika //Računalni vid i prepoznavanje uzoraka (CVPR), 2012. IEEE konferencija o. - IEEE, 2012. - str. 3642-3649.

Ciresan D. i sur. Odbor neuronskih mreža za klasifikaciju prometnih znakova //Neural Networks (IJCNN), The 2011 International Joint Conference on. - IEEE, 2011. - str. 1918-1921.

11. Ciresan D. C. i sur. Duboki veliki višeslojni perceptroni za prepoznavanje znamenki //Neural Networks: Tricks of the Trade. - Springer Berlin Heidelberg, 2012. - str. 581-598.

Daugman J. G. Potpune diskretne 2-D Gaborove transformacije neuronskim mrežama za analizu i kompresiju slike // Acoustics, Speech and Signal Processing, IEEE Transactions on. - 1988. - T. 36. - Br. 7. - str. 1169-1179.

Gao X. W. i sur. Prepoznavanje prometnih znakova na temelju njihovih značajki boja i oblika ekstrahiranih pomoću modela ljudskog vida // Journal of Visual Communication and Image Representation. - 2006. - T. 17. - Br. 4. - str. 675-685.

Goodfellow I. J. i sur. Pylearn2: istraživačka biblioteka strojnog učenja //arXiv preprint arXiv:1308.4214. - 2013. (prikaz).

Han J., Kamber M., Pei J. Data mining: Koncepti i tehnike. - Morgan Kaufmann, 2006.

Harris C., Stephens M. Kombinirani detektor kutova i rubova // Alvey vision conference. - 1988. - T. 15. - S. 50.

Houben S. i sur. Detekcija prometnih znakova na slikama iz stvarnog svijeta: Njemačko mjerilo detekcije prometnih znakova //Neural Networks (IJCNN), 2013. Međunarodna zajednička konferencija o. - IEEE, 2013. - str. 1-8.

Huang F. J., LeCun Y. Učenje velikih razmjera sa svm i konvolucijskom mrežom za generičko prepoznavanje objekata //2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. - 2006. (prikaz).

Huttenlocher D. P., Ullman S. Prepoznavanje objekata korištenjem poravnanja //Proc. ICCV. - 1987. - T. 87. - P. 102-111.

Jia, Yangqing. "Caffe: Konvolucijska arhitektura otvorenog koda za brzo ugrađivanje značajki." h ttp://caffe. berkeleyvision. org (2013).

Križhevsky A., Sutskever I., Hinton G. E. Imagenet klasifikacija s dubokim konvolucijskim neuronskim mrežama //Napredak u sustavima obrade neuronskih informacija. - 2012. - Str. 1097-1105.

Lafuente-Arroyo S. i sur. Klasifikacija prometnih znakova invarijantna rotacijama pomoću strojeva za potporne vektore //Proceedings of Advabced Concepts for Intelligent Vision Systems, Bruxelles, Belgija. - 2004. (prikaz).

LeCun Y., Bengio Y. Konvolucijske mreže za slike, govor i vremenske serije // Priručnik teorije mozga i neuronskih mreža. - 1995. - T. 3361. - P. 310.

LeCun Y. i sur. Algoritmi učenja za klasifikaciju: Usporedba prepoznavanja rukom pisanih znamenki //Neuralne mreže: perspektiva statističke mehanike. - 1995. - T. 261. - P. 276.

Masci J. i sur. Složeni konvolucijski auto-koderi za hijerarhijsku ekstrakciju značajki //Artificial Neural Networks and Machine Learning-ICANN 2011. - Springer Berlin Heidelberg, 2011. - str. 52-59.

Matan O. i sur. Rukopisno prepoznavanje znakova korištenjem arhitekture neuronske mreže //Proceedings of the 4th USPS Advanced technology Conference. - 1990. - S. 1003-1011.

McCulloch W. S., Pitts W. Logički račun ideja imanentnih živčanoj aktivnosti //Bilten matematičke biofizike. - 1943. - T. 5. - Br. 4. - str. 115-133.

Minsky M., Seymour P. Perceptroni. - 1969 (prikaz).

Mitchell T. Generativni i diskriminativni klasifikatori: naivna Bayesova i logistička regresija, 2005 //Rukopis dostupan na #"897281.files/image021.gif">

Dan je pregled metoda neuronske mreže korištenih u prepoznavanju slika. Metode neuronskih mreža su metode koje se temelje na korištenju različitih vrsta neuronskih mreža (NN). Glavna područja primjene različitih neuronskih mreža za prepoznavanje uzoraka i slika:

  • aplikacija za izdvajanje ključnih karakteristika ili značajki zadanih slika,
  • klasifikacija samih slika ili karakteristika koje su već izvučene iz njih (u prvom slučaju ekstrakcija ključnih karakteristika događa se implicitno unutar mreže),
  • rješavanje problema optimizacije.

Arhitektura umjetnih neuronskih mreža ima neke sličnosti s prirodnim neuronskim mrežama. NN dizajnirane za rješavanje različitih problema mogu se značajno razlikovati u svojim algoritmima rada, ali njihova glavna svojstva su sljedeća.

Neuronska mreža se sastoji od elemenata koji se nazivaju formalni neuroni, koji su sami po sebi vrlo jednostavni i povezani s drugim neuronima. Svaki neuron pretvara skup signala primljenih na njegov ulaz u izlazni signal. Veze između neurona, kodirane težinama, igraju ključnu ulogu. Jedna od prednosti neuronskih mreža (ali i nedostatak kod njihove implementacije na sekvencijalnoj arhitekturi) je da svi elementi mogu funkcionirati paralelno, čime se značajno povećava učinkovitost rješavanja problema, posebice u obradi slike. Osim što neuronske mreže mogu učinkovito riješiti mnoge probleme, one pružaju moćne fleksibilne i univerzalne mehanizme učenja, što je njihova glavna prednost u odnosu na druge metode (probabilističke metode, linearni separatori, stabla odlučivanja itd.). Učenje eliminira potrebu za odabirom ključnih značajki, njihovog značaja i odnosa između značajki. Ipak, odabir inicijalne reprezentacije ulaznih podataka (vektor u n-dimenzionalnom prostoru, frekvencijske karakteristike, valići itd.) značajno utječe na kvalitetu rješenja i zasebna je tema. NN imaju dobru sposobnost generalizacije (bolju od stabala odlučivanja), tj. može uspješno proširiti iskustvo stečeno na završnom setu obuke na cijeli skup slika.

Opišimo korištenje neuronskih mreža za prepoznavanje slike, uz napomenu o mogućnostima primjene za prepoznavanje čovjeka sa slike lica.

1. Višeslojne neuronske mreže

Arhitektura višeslojne neuronske mreže (MNN) sastoji se od sekvencijalno povezanih slojeva, pri čemu je neuron svakog sloja svojim ulazima povezan sa svim neuronima prethodnog sloja, a izlazima sljedećeg. Neuronska mreža s dva sloja odlučivanja može aproksimirati bilo koju višedimenzionalnu funkciju s bilo kojom točnošću. Neuronska mreža s jednim slojem odlučivanja sposobna je formirati linearne razdjelne plohe, što uvelike sužava raspon problema koje mogu riješiti, posebice takva mreža neće moći riješiti problem tipa “isključivo ili”. Neuronska mreža s nelinearnom aktivacijskom funkcijom i dva odlučujuća sloja omogućuje formiranje bilo koje konveksne regije u prostoru rješenja, a s tri odlučujuća sloja - regije bilo koje složenosti, uključujući i nekonveksne. Istovremeno, MNS ne gubi svoju sposobnost generaliziranja. MNN-ovi se obučavaju pomoću algoritma povratnog širenja, što je metoda gradijentnog spuštanja u prostoru težina kako bi se ukupna greška mreže svela na najmanju moguću mjeru. U ovom slučaju pogreške (točnije, korekcijske vrijednosti pondera) šire se u suprotnom smjeru od ulaza prema izlazima, kroz pondere koji povezuju neurone.

Najjednostavnija primjena jednoslojne neuronske mreže (zvane auto-asocijativna memorija) je osposobljavanje mreže za rekonstrukciju unesenih slika. Unosom probne slike kao ulaza i izračunavanjem kvalitete rekonstruirane slike, možete procijeniti koliko je dobro mreža prepoznala ulaznu sliku. Pozitivna svojstva ove metode su da mreža može vratiti iskrivljene i šumne slike, ali nije prikladna za ozbiljnije svrhe.

Riža. 1. Višeslojna neuronska mreža za klasifikaciju slika. Neuron s maksimalnom aktivnošću (ovdje prvi) ukazuje na pripadnost priznatoj klasi.

MNN se također koristi za izravnu klasifikaciju slike - ili sama slika u nekom obliku ili skup prethodno ekstrahiranih ključnih karakteristika slike se daje kao ulaz; na izlazu, neuron s maksimalnom aktivnošću ukazuje na članstvo u prepoznatoj klasi (Sl. 1). Ako je ova aktivnost ispod određenog praga, tada se smatra da poslana slika ne pripada nijednoj od poznatih klasa. Proces učenja uspostavlja korespondenciju slika koje se unose s pripadnošću određenoj klasi. To se zove nadzirano učenje. Kada se primijeni na ljudsko prepoznavanje prema slici lica, ovaj pristup je dobar za zadatke kontrole pristupa za malu grupu ljudi. Ovakav pristup osigurava da mreža izravno uspoređuje same slike, ali s povećanjem broja klasa, vrijeme obuke i rada mreže raste eksponencijalno. Stoga zadaci kao što je pronalaženje slične osobe u velikoj bazi podataka zahtijevaju izdvajanje kompaktnog skupa ključnih karakteristika na kojima se temelji pretraga.

Pristup klasifikaciji pomoću frekvencijskih karakteristika cijele slike opisan je u. Korištena je jednoslojna neuronska mreža temeljena na neuronima s više vrijednosti. U bazi podataka MIT-a zabilježeno je 100% prepoznavanje, no prepoznavanje je provedeno među slikama za koje je mreža bila uvježbana.

Upotreba MNN-ova za klasifikaciju slika lica na temelju karakteristika kao što su udaljenosti između određenih specifičnih dijelova lica (nos, usta, oči) opisana je u. U ovom slučaju, ove su udaljenosti dovedene na ulaz NS-a. Korištene su i hibridne metode - u prvoj su se rezultati obrade skrivenim Markovljevim modelom unosili na ulaz NN, a u drugoj se rezultat rada NN unosio na ulaz Markovljevog modela. U drugom slučaju nisu uočene prednosti, što sugerira da je rezultat NN klasifikacije dovoljan.

Prikazana je primjena neuronske mreže za klasifikaciju slika kada mrežni ulaz dobije rezultate dekompozicije slike metodom glavne komponente.

U klasičnom MNN-u, međuslojne neuronske veze su potpuno povezane, a slika je predstavljena kao jednodimenzionalni vektor, iako je dvodimenzionalna. Arhitektura konvolucijske neuronske mreže ima za cilj prevladati te nedostatke. Koristila je lokalna receptorska polja (omogućuju lokalnu dvodimenzionalnu povezanost neurona), zajedničke težine (omogućuju otkrivanje određenih značajki bilo gdje na slici) i hijerarhijsku organizaciju s prostornim poduzorkovanjem. Konvolucijska neuronska mreža (CNN) pruža djelomičnu otpornost na promjene mjerila, pomake, rotacije i iskrivljenja. Arhitektura CNN-a sastoji se od mnogo slojeva, od kojih svaki ima nekoliko ravnina, a neuroni sljedećeg sloja povezani su samo s malim brojem neurona prethodnog sloja iz blizine lokalne regije (kao u ljudskom vizualnom korteks). Težine u svakoj točki jedne ravnine su iste (konvolucijski slojevi). Nakon konvolucijskog sloja slijedi sloj koji smanjuje svoju dimenziju lokalnim usrednjavanjem. Zatim opet konvolucijski sloj, i tako dalje. Na taj način se postiže hijerarhijska organizacija. Kasniji slojevi izvlače više Opće karakteristike, manje ovisi o izobličenju slike. CNN je obučen korištenjem standardne metode povratnog širenja. Usporedba MNS-a i CNN-a pokazala je značajne prednosti potonjeg u pogledu brzine i pouzdanosti klasifikacije. Korisno svojstvo CNN-ova je da se karakteristike generirane na izlazima gornjih slojeva hijerarhije mogu koristiti za klasifikaciju pomoću metode najbližeg susjeda (na primjer, izračunavanje euklidske udaljenosti), a CNN može uspješno izdvojiti takve karakteristike za slike koji nisu u setu za obuku. CNN-ove karakterizira brzo učenje i radna brzina. Testiranje CNN-a na ORL bazi podataka koja sadrži slike lica s neznatnim promjenama osvjetljenja, mjerila, prostornih rotacija, položaja i raznih emocija pokazalo je približno 98% točnost prepoznavanja, a za poznata lica prikazane su varijante njihovih slika koje nisu bile u obuci postaviti. Ovaj rezultat čini ovu arhitekturu perspektivnom za daljnji razvoj u području prepoznavanja slika prostornih objekata.

MNN se također koriste za otkrivanje objekata određene vrste. Osim što svaki obučeni MNN može donekle utvrditi pripadaju li slike “njihovim” klasama, može se posebno osposobiti za pouzdano otkrivanje određenih klasa. U ovom slučaju, izlazne klase će biti klase koje pripadaju i ne pripadaju danom tipu slike. Za otkrivanje slike lica u ulaznoj slici korišten je detektor neuronske mreže. Slika je skenirana s prozorom od 20x20 piksela, koji je stavljen na ulaz mreže, koja odlučuje pripada li određeno područje klasi lica. Edukacija je provedena na pozitivnim primjerima (razne slike lica) i na negativnim primjerima (slike koje nisu lica). Za povećanje pouzdanosti detekcije korišten je tim neuronskih mreža treniranih s različitim početnim težinama, zbog čega su neuronske mreže griješile na različite načine, a konačna odluka se donosila glasovanjem cijelog tima.

Riža. 2. Glavne komponente (eigenfaces) i dekompozicija slike na glavne komponente.

Neuronska mreža također se koristi za izdvajanje ključnih karakteristika slike, koje se zatim koriste za kasniju klasifikaciju. U , prikazana je metoda implementacije neuronske mreže metode analize glavnih komponenti. Bit metode analize glavnih komponenti je dobivanje maksimalno ukrašenih koeficijenata koji karakteriziraju ulazne slike. Ti se koeficijenti nazivaju glavnim komponentama i koriste se za statističku kompresiju slike, u kojoj se mali broj koeficijenata koristi za predstavljanje cijele slike. Neuronska mreža s jednim skrivenim slojem koji sadrži N neurona (koji je mnogo manji od dimenzije slike), obučena korištenjem metode povratnog širenja za vraćanje izlazne slike dovedene na ulaz, generira koeficijente prvih N glavnih komponenti na izlazu skrivenih neurona, koji se koriste za usporedbu. Obično se koristi od 10 do 200 glavnih komponenti. Povećanjem broja sastavnice, njena reprezentativnost se jako smanjuje, te nema smisla koristiti komponente s velikim brojevima. Pri korištenju nelinearnih aktivacijskih funkcija neuralnih elemenata moguća je nelinearna dekompozicija na glavne komponente. Nelinearnost omogućuje da se varijacije u ulaznim podacima točnije odražavaju. Primjenom analize glavnih komponenti na dekompoziciju slika lica dobivamo glavne komponente koje se nazivaju vlastita lica (holoni u djelu), a koje također imaju korisno svojstvo - postoje komponente koje uglavnom odražavaju bitne karakteristike lica kao što su spol, rasa, emocije. Kada se rekonstruiraju, komponente imaju izgled lica, pri čemu prve odražavaju najopćenitiji oblik lica, a druge predstavljaju različite male razlike između lica (slika 2). Ova je metoda vrlo prikladna za pronalaženje sličnih slika lica u velikim bazama podataka. Također je prikazana mogućnost daljnjeg smanjenja dimenzija glavnih komponenti korištenjem NN. Ocjenjujući kvalitetu rekonstrukcije ulazne slike, možete vrlo precizno odrediti njezino članstvo u klasi lica.

1

Neuronska mreža je matematički model i njegova implementacija u obliku softverske ili hardversko-softverske implementacije, koja se izrađuje na temelju modeliranja aktivnosti bioloških neuronskih mreža, koje su mreže neurona u biološkom organizmu. Znanstveni interes za ovu strukturu nastao je jer proučavanje njezinog modela omogućuje dobivanje informacija o određenom sustavu. Odnosno, takav model može imati praktičnu primjenu u nizu grana suvremene znanosti i tehnologije. U članku se raspravlja o pitanjima vezanim uz korištenje neuronskih mreža za izgradnju sustava za identifikaciju slika koji se široko koriste u sigurnosnim sustavima. Detaljno se istražuje problematika vezana uz temu algoritma za prepoznavanje slike i njegove primjene. Ukratko daje informacije o metodologiji za obuku neuronskih mreža.

neuronske mreže

učenje pomoću neuronskih mreža

prepoznavanje slike

paradigma lokalne percepcije

sigurnosni sustavi

1. Yann LeCun, J.S. Denker, S. Solla, R.E. Howard i L. D. Jackel: Optimalno oštećenje mozga, u Touretzky, David (ur.), Napredak u sustavima obrade neuronskih informacija 2 (NIPS*89). – 2000. – 100 str.

2. Zhigalov K.Yu. Metode fotorealistične vektorizacije podataka laserskog mjerenja u svrhu daljnje uporabe u GIS-u // Vijesti visokih učilišta. Geodezija i snimanje iz zraka. – 2007. – Broj 6. – Str. 285–287.

3. Ranzato Marc'Aurelio, Christopher Poultney, Sumit Chopra i Yann LeCun: Efficient Learning of Sparse Representations with an Energy-Based Model, u J. Platt et al. (Eds), Napredak u sustavima obrade neuronskih informacija (NIPS 2006). – 2010. – 400 str.

4. Zhigalov K.Yu. Priprema opreme za korištenje u sustavima automatizirano upravljanje izgradnja autocesta // Prirodne i tehničke znanosti. – M., 2014. – Broj 1 (69). – str 285–287.

5. Y. LeCun i Y. Bengio: Konvolucijske mreže za slike, govor i vremenske serije, u Arbib, M. A. (ur.) // The Handbook of Brain Theory and Neural Networks. – 2005. – 150 str.

6. Y. LeCun, L. Bottou, G. Orr i K. Muller: Efficient BackProp, u Orr, G. i Muller K. (ur.) // Neural Networks: Tricks of the trade. – 2008. – 200 str.

Danas tehnološki i istraživački napredak prekriva nove horizonte i ubrzano napreduje. Jedan od njih je modeliranje okolnog prirodnog svijeta pomoću matematičkih algoritama. U tom pogledu postoje trivijalni, npr. modeliranje oscilacija mora, i iznimno složeni, netrivijalni, višekomponentni zadaci, npr. modeliranje funkcioniranja ljudskog mozga. U procesu istraživanja ove problematike identificiran je zaseban koncept - neuronska mreža. Neuronska mreža je matematički model i njegova implementacija u obliku softverske ili hardversko-softverske implementacije, koja se izrađuje na temelju modeliranja aktivnosti bioloških neuronskih mreža, koje su mreže neurona u biološkom organizmu. Znanstveni interes za ovu strukturu nastao je jer proučavanje njezinog modela omogućuje dobivanje informacija o određenom sustavu. Odnosno, takav model može imati praktičnu primjenu u nizu grana suvremene znanosti i tehnologije.

Kratka povijest razvoja neuronskih mreža

Vrijedno je napomenuti da izvorno pojam "neuralne mreže" potječe iz rada američkih matematičara, neurolingvista i neuropsihologa W. McCullocha i W. Pittsa (1943.), gdje su je autori prvi put spomenuli, dali definiciju i dali prvu pokušati izgraditi model neuronske mreže. Već 1949. D. Hebb je predložio prvi algoritam učenja. Zatim je uslijedio niz studija na području neuralnog učenja, a prvi radni prototipovi pojavili su se oko 1990.-1991. posljednje stoljeće. Međutim, računalna snaga tadašnje opreme nije bila dovoljna za dovoljno brz rad neuronskih mreža. Do 2010. GPU snaga video kartica je uvelike porasla i pojavio se koncept programiranja izravno na video karticama, što je značajno (3-4 puta) povećalo performanse računala. Neuralne mreže su 2012. prvi put osvojile ImageNet prvenstvo, što je označilo njihov daljnji ubrzani razvoj i pojavu pojma Deep Learning.

U moderni svijet neuronske mreže imaju kolosalan opseg, znanstvenici istraživanja koja se provode na području proučavanja karakteristika ponašanja i stanja neuronskih mreža smatraju iznimno obećavajućim. Popis područja u kojima su korištene neuronske mreže je ogroman. To uključuje prepoznavanje i klasifikaciju uzoraka, predviđanje, rješavanje problema aproksimacije te neke aspekte kompresije podataka, analize podataka i, naravno, primjenu u različitim sigurnosnim sustavima.

Proučavanje neuronskih mreža danas se aktivno odvija u znanstvenim zajednicama. različite zemlje. Gledano na ovaj način, predstavlja se kao poseban slučaj niza metoda prepoznavanja uzoraka, diskriminantne analize i metoda klasteriranja.

Također treba napomenuti da su u posljednjih godinu dana startupi u području sustava za prepoznavanje slike dobili više sredstava nego u prethodnih 5 godina, što ukazuje na prilično veliku potražnju za ovom vrstom razvoja na krajnjem tržištu.

Primjena neuronskih mreža za prepoznavanje slika

Razmotrimo standardne probleme koje rješavaju neuronske mreže u primjeni na slike:

● identifikacija predmeta;

● prepoznavanje dijelova predmeta (na primjer, lica, ruku, stopala itd.);

● semantička definicija granica objekta (omogućuje vam da ostavite samo granice objekata na slici);

● semantička segmentacija (omogućuje vam da podijelite sliku u različite pojedinačne objekte);

● odabir površinskih normala (omogućuje pretvaranje dvodimenzionalnih slika u trodimenzionalne slike);

● isticanje predmeta pažnje (omogućuje vam da odredite na što bi osoba obratila pozornost na određenoj slici).

Vrijedno je napomenuti da je problem prepoznavanja slike svijetle prirode, a rješavanje tog problema je složen i neobičan proces. Pri izvođenju prepoznavanja objekt može biti ljudsko lice, rukom upisani broj, kao i mnogi drugi objekti koji se odlikuju nizom jedinstvenih svojstava, što značajno otežava proces identifikacije.

Ova će studija ispitati algoritam za stvaranje i osposobljavanje neuronske mreže za prepoznavanje rukom pisanih znakova. Slika će se čitati kao jedan od ulaza neuronske mreže, a jedan od izlaza koristit će se za izlaz rezultata.

U ovoj fazi potrebno je ukratko se zadržati na klasifikaciji neuronskih mreža. Danas postoje tri glavne vrste:

● konvolucijske neuronske mreže (CNN);

● rekurentne mreže (duboko učenje);

● učenje s potkrepljenjem.

Jedan od najčešćih primjera konstruiranja neuronske mreže je klasična topologija neuronske mreže. Takva se neuronska mreža može prikazati kao potpuno povezani graf; njegova karakteristična značajka je širenje informacija naprijed i obrnuto širenje signalizacije pogreške. Ova tehnologija nema rekurzivna svojstva. Ilustrativna neuronska mreža s klasičnom topologijom može se prikazati na slici. 1.

Riža. 1. Neuronska mreža s najjednostavnijom topologijom

Riža. 2. Neuronska mreža s 4 sloja skrivenih neurona

Jedan od jasno značajnih nedostataka ove topologije mreže je redundancija. Zbog redundancije kod unosa podataka u obliku npr. dvodimenzionalne matrice, kao ulaz se može dobiti jednodimenzionalni vektor. Dakle, za prikaz rukom pisanog latiničnog slova, opisanog pomoću matrice 34x34, bit će potrebno 1156 ulaza. To sugerira da će računalna snaga potrošena na implementaciju hardverskog i softverskog rješenja ovog algoritma biti prevelika.

Problem je riješio američki znanstvenik Yann Le Cun analizirajući rad nobelovaca iz medicine T. Wtesela i D. Hubela. U sklopu studije koju su proveli, predmet proučavanja bio je vidni korteks mačjeg mozga. Analiza rezultata pokazala je da korteks sadrži niz jednostavnih stanica, kao i niz složenih stanica. Jednostavne stanice reagirale su na sliku ravnih linija primljenu od vizualnih receptora, a složene stanice reagirale su na kretanje naprijed u jednom smjeru. Kao rezultat toga, razvijen je princip za izgradnju neuronskih mreža, nazvan konvolucijski. Ideja ovog principa bila je da se za implementaciju funkcioniranja neuronske mreže mijenjaju konvolucijski slojevi, koji se obično označavaju C - slojevi, slojevi poduzorkovanja S - slojevi i potpuno povezani slojevi F - slojevi na izlazu neurona koristi se mreža.

Konstrukcija mreže ove vrste temelji se na tri paradigme: paradigmi lokalne percepcije, paradigmi zajedničkih težina i paradigmi poduzorkovanja.

Bit paradigme lokalne percepcije je da svaki ulazni neuron ne prima cijelu matricu slike, već njen dio. Preostali dijelovi šalju se u druge ulazne neurone. U ovom slučaju može se promatrati mehanizam paralelizacije; sličnom metodom moguće je sačuvati topologiju slike od sloja do sloja, obrađujući je višedimenzionalno, odnosno u obradi se može koristiti niz neuronskih mreža postupak.

Paradigma zajedničkih težina kaže da se mali skup težina može koristiti za mnoge veze. Ovi skupovi se također nazivaju "jezgre". Za konačni rezultat obrade slike možemo reći da zajednički ponderi pozitivno utječu na svojstva neuronske mreže, pri čijem se proučavanju ponašanja povećava sposobnost pronalaženja invarijanti u slikama i filtriranja komponenti šuma bez njihove obrade.

Na temelju navedenog možemo zaključiti da će se primjenom postupka konvolucije slike na temelju kernela pojaviti izlazna slika čiji će elementi biti glavna karakteristika stupanj usklađenosti s filtrom, odnosno generirat će se mapa značajki. Ovaj algoritam je prikazan na sl. 3.

Riža. 3. Algoritam za generiranje karte značajki

Paradigma poduzorkovanja je da se ulazna slika reducira smanjenjem prostorne dimenzije njenog matematičkog ekvivalenta - n-dimenzionalne matrice. Potreba za poduzorkovanjem izražava se u nepromjenjivosti mjerila izvorne slike. Primjenom tehnike izmjeničnih slojeva, postaje moguće generirati nove mape značajki iz postojećih, odnosno praktična implementacija ove metode je da će mogućnost degeneracije višedimenzionalne matrice u vektor, a zatim u skalarnu veličinu biti stečena.

Implementacija treninga neuronske mreže

Postojeće mreže podijeljene su u 3 klase arhitektura s gledišta obuke:

● učenje s učiteljem (percepton);

● učenje bez nadzora (mreže adaptivne rezonancije);

● mješovito učenje (mreže radijalnih baznih funkcija).

Jedan od najvažnijih kriterija za ocjenu performansi neuronske mreže u slučaju prepoznavanja slike je kvaliteta prepoznavanja slike. Vrijedno je napomenuti da se za kvantificiranje kvalitete prepoznavanja slike korištenjem funkcioniranja neuronske mreže najčešće koristi algoritam korijena srednje kvadratne pogreške:

(1)

U ovoj ovisnosti, Ep je p-ta pogreška prepoznavanja za par neurona,

Dp je očekivani izlazni rezultat neuronske mreže (obično bi mreža trebala težiti 100% prepoznavanju, ali to se u praksi još ne događa), a konstrukcija O(Ip,W)2 je kvadrat mrežnog izlaza koji ovisi o p-tom ulazu i postavljenim težinskim koeficijentima W. Ovaj dizajn uključuje i konvolucijske jezgre i težinske koeficijente svih slojeva. Izračun pogreške sastoji se od izračunavanja aritmetičke srednje vrijednosti za sve parove neurona.

Kao rezultat analize izveden je uzorak da se nazivna vrijednost težine, kada je vrijednost pogreške minimalna, može izračunati na temelju odnosa (2):

(2)

Iz ove ovisnosti možemo reći da je zadatak izračuna optimalne težine aritmetička razlika derivacije funkcije pogreške prvog reda s obzirom na težinu, podijeljena derivacijom funkcije pogreške drugog reda.

Zadane ovisnosti omogućuju trivijalno izračunavanje pogreške koja se nalazi u izlaznom sloju. Izračunavanje pogreške u skrivenim slojevima neurona može se provesti metodom povratnog širenja. Glavna ideja metode je širenje informacija, u obliku signalizacije pogreške, od izlaznih neurona do ulaznih neurona, odnosno u smjeru suprotnom od širenja signala kroz neuronsku mrežu.

Također je vrijedno napomenuti da se mreža trenira na posebno pripremljenim bazama slika, razvrstanih u veliki broj klasa, i traje dosta dugo.
Danas je najveća baza podataka ImageNet (www.image_net.org). Slobodno je dostupan akademskim institucijama.

Zaključak

Slijedom navedenog, valja istaknuti da neuronske mreže i algoritmi implementirani na principu njihovog rada mogu naći svoju primjenu u sustavima za prepoznavanje kartica otiska prsta za tijela unutarnjih poslova. Često je softverska komponenta sklopa hardvera i softvera usmjerena na prepoznavanje tako jedinstvene složene slike kao što je crtež, koji je identifikacijski podatak, koji ne rješava u potpunosti zadatke koji su mu dodijeljeni. Program implementiran na temelju algoritama temeljenih na neuronskoj mreži bit će mnogo učinkovitiji.

Da rezimiramo, možemo sažeti sljedeće:

● neuronske mreže mogu naći primjenu u prepoznavanju slika i teksta;

● ova teorija omogućuje govoriti o stvaranju nove obećavajuće klase modela, odnosno modela temeljenih na inteligentnom modeliranju;

● neuronske mreže su sposobne za učenje, što ukazuje na mogućnost optimizacije procesa funkcioniranja. Ova značajka je izuzetno važna opcija za praktičnu implementaciju algoritma;

● procjena algoritma za prepoznavanje uzoraka pomoću studije neuronske mreže može imati kvantitativnu vrijednost, sukladno tome postoje mehanizmi za podešavanje parametara na traženu vrijednost izračunavanjem potrebnih težinskih koeficijenata.

Danas se daljnja istraživanja neuronskih mreža čine perspektivnim područjem istraživanja koje će se uspješno primijeniti u još većem broju grana znanosti i tehnologije, ali i ljudske djelatnosti. Glavni fokus u razvoju suvremenih sustava za prepoznavanje sada se pomiče na područje semantičke segmentacije 3D slika u geodeziji, medicini, izradi prototipa i drugim područjima ljudske djelatnosti - to su prilično složeni algoritmi i to zbog:

● nepostojanje dovoljnog broja baza referentnih slika;

● nedostatak dovoljnog broja slobodnih stručnjaka za početnu obuku sustava;

● slike se ne pohranjuju u pikselima, što zahtijeva dodatne resurse i od računala i od programera.

Također treba napomenuti da danas postoji veliki broj standardnih arhitektura za izgradnju neuronskih mreža, što značajno pojednostavljuje zadatak izgradnje neuronske mreže od nule i svodi ga na odabir mrežne strukture prikladne za određeni zadatak.

Trenutačno postoji prilično velik broj inovativnih tvrtki na tržištu koje se bave prepoznavanjem slika koristeći tehnologije neuronskih mreža za obuku sustava. Pouzdano se zna da su pomoću baze od 10.000 slika postigli točnost prepoznavanja slike od oko 95%. Međutim, sva postignuća se odnose na statične slike, s videom je trenutno sve puno kompliciranije.

Bibliografska poveznica

Markova S.V., Zhigalov K.Yu. PRIMJENA NEURONSKE MREŽE ZA STVARANJE SUSTAVA ZA PREPOZNAVANJE SLIKA // Fundamentalna istraživanja. – 2017. – Broj 8-1. – Str. 60-64;
URL: http://fundamental-research.ru/ru/article/view?id=41621 (datum pristupa: 24.03.2020.). Predstavljamo vam časopise izdavačke kuće "Akademija prirodnih znanosti"

Prijatelji, nastavljamo priču o neuronskim mrežama koju smo započeli prošli put i o...

Što je neuronska mreža

Neuronska mreža u svom najjednostavnijem slučaju jest matematički model, koji se sastoji od nekoliko slojeva elemenata koji izvode paralelne izračune. U početku je ova arhitektura nastala po analogiji s najmanjim računalnim elementima ljudskog mozga - neuronima. Minimalni računalni elementi umjetne neuronske mreže također se nazivaju neuroni. Neuronske mreže obično se sastoje od tri ili više slojeva: ulaznog sloja, skrivenog sloja (ili slojeva) i izlaznog sloja (slika 1), u nekim slučajevima ulazni i izlazni sloj nisu uzeti u obzir, a zatim broj slojeva u mreži broji se prema broju skrivenih slojeva. Ova vrsta neuronske mreže naziva se perceptron.

Riža. 1. Najjednostavniji perceptron

Važna značajka neuronske mreže je njezina sposobnost učenja iz primjera, što se naziva nadzirano učenje. Neuronska mreža se trenira velike količine primjeri koji se sastoje od ulazno-izlaznih parova (ulaz i izlaz koji odgovaraju jedan drugome). U zadacima prepoznavanja predmeta takav će par biti ulazna slika i pripadajuća oznaka – naziv predmeta. Uvježbavanje neuronske mreže je iterativni proces koji smanjuje odstupanje mrežnog izlaza od zadanog "odgovora učitelja" - oznake koja odgovara danoj slici (Slika 2). Ovaj se proces sastoji od koraka koji se nazivaju epohe obuke (obično se broje u tisućama), u svakom od kojih se prilagođavaju "težine" neuronske mreže - parametri skrivenih slojeva mreže. Na kraju procesa obuke, izvedba neuronske mreže obično je dovoljno dobra da izvrši zadatak za koji je obučena, iako je optimalan skup parametara koji savršeno prepoznaje sve slike često nemoguće pronaći.


Riža. 2. Trening neuronske mreže

Što su duboke neuronske mreže

Duboke ili dubinske neuronske mreže su neuronske mreže koje se sastoje od nekoliko skrivenih slojeva (slika 3). Ova slika je prikaz duboke neuronske mreže, dajući čitatelju opću ideju o tome kako neuronska mreža izgleda. Međutim, stvarna arhitektura dubokih neuronskih mreža mnogo je složenija.


Riža. 3. Neuronska mreža s mnogo skrivenih slojeva

Tvorci konvolucijskih neuronskih mreža, naravno, najprije su bili inspirirani biološkim strukturama vizualnog sustava. Prvi računalni modeli temeljeni na konceptu hijerarhijske organizacije vizualnog toka primata poznati su kao Fukushima Neocognitron (Sl. 4). Trenutačno razumijevanje fiziologije vizualnog sustava slično je vrsti obrade informacija u konvolucijskim mrežama, barem za brzo prepoznavanje objekata.


Riža. 4. Dijagram koji prikazuje veze između slojeva u modelu Neocognitron.

Taj je koncept kasnije implementirao kanadski istraživač Yann LeCun u svojoj konvolucijskoj neuronskoj mreži koju je stvorio za prepoznavanje rukom pisanih znakova. Ova se neuronska mreža sastojala od dvije vrste slojeva: konvolucijskih slojeva i slojeva poduzorkovanja (ili slojeva poduzorkovanja). U njemu svaki sloj ima topografsku strukturu, odnosno svaki neuron je povezan s fiksnom točkom na izvornoj slici, kao i s receptivnim poljem (područje ulazne slike koje obrađuje dati neuron) . Na svakoj lokaciji u svakom sloju postoji niz različitih neurona, svaki sa svojim skupom ulaznih težina, povezanih s neuronima u pravokutnom dijelu prethodnog sloja. Različiti ulazni pravokutni fragmenti s istim skupom težina povezani su s neuronima s različitih lokacija.

Opća arhitektura duboke neuronske mreže za prepoznavanje uzoraka prikazana je na slici 5. Ulazna slika predstavljena je kao skup piksela ili malih područja slike (na primjer, 5-x5 ​​piksela)


Riža. 5. Konvolucijski dijagram neuronske mreže

Obično se duboke neuronske mreže prikazuju u pojednostavljenom obliku: kao faze obrade, koje se ponekad nazivaju filtri. Svaki stupanj se razlikuje od drugog u brojnim karakteristikama, kao što je veličina receptivnog polja, tip značajki koje mreža uči prepoznati u danom sloju i tip izračuna koji se izvodi u svakom stupnju.

Područja primjene dubokih neuronskih mreža, uključujući konvolucijske mreže, nisu ograničena na prepoznavanje lica. Naširoko se koriste za prepoznavanje govora i audio signala, obradu očitanja s raznih vrsta senzora ili za segmentiranje složenih višeslojnih slika (kao što su satelitske karte) ili medicinskih slika (rendgenske snimke, fMRI slike - vidi).

Neuronske mreže u biometriji i prepoznavanju lica

Kako bi se postigla visoka točnost prepoznavanja, neuronska mreža je unaprijed obučena na velikom nizu slika, na primjer, u bazi podataka MegaFace. Ovo je glavna metoda obuke za prepoznavanje lica.


Riža. 6. MegaFace baza podataka sadrži 1 milijun slika više od 690 tisuća ljudi

Nakon što se mreža osposobi za prepoznavanje lica, proces prepoznavanja lica može se opisati na sljedeći način (slika 7). Prvo se slika obrađuje pomoću detektora lica: algoritma koji identificira pravokutni dio slike koji sadrži lice. Ovaj fragment je normaliziran kako bi ga neuronska mreža lakše obradila: najbolji rezultat postići će se ako su sve ulazne slike iste veličine, boje, itd. Normalizirana slika šalje se na ulaz neuronske mreže na obradu algoritmom. Ovaj algoritam je obično jedinstveni razvoj tvrtke za poboljšanje kvalitete prepoznavanja, ali postoje i "standardna" rješenja za ovaj zadatak. Neuronska mreža gradi jedinstveni vektor značajki, koji se zatim prenosi u bazu podataka. Tražilica ga uspoređuje sa svim vektorima obilježja pohranjenim u bazi podataka i daje rezultat pretraživanja u obliku određenog broja imena ili profila korisnika sa sličnim crtama lica, od kojih je svakom dodijeljen određeni broj. Ovaj broj predstavlja stupanj sličnosti našeg vektora značajki s onim pronađenim u bazi podataka.


Riža. 7. Proces prepoznavanja lica

Utvrđivanje kvalitete algoritma

Točnost

Kada biramo koji ćemo algoritam primijeniti na zadatak prepoznavanja predmeta ili lica, moramo imati sredstvo za usporedbu izvedbe različitih algoritama. U ovom dijelu ćemo opisati alate pomoću kojih se to radi.

Performanse sustava za prepoznavanje lica procjenjuju se pomoću skupa metrika koje odgovaraju tipičnim scenarijima za korištenje sustava za autentifikaciju pomoću biometrije.

Tipično, izvedba bilo koje neuronske mreže može se mjeriti u smislu točnosti: nakon postavljanja parametara i završetka procesa obuke, mreža se testira na ispitnom skupu za koji imamo odgovor nastavnika, ali koji je odvojen od skupa za treniranje . Obično je ovaj parametar kvantitativna mjera: broj (često postotak) koji pokazuje koliko dobro sustav može prepoznati nove objekte. Druga tipična mjera je pogreška (može se izraziti kao postotak ili kao numerički ekvivalent). Međutim, postoje preciznije mjere za biometriju.

U biometriji općenito, a posebice u biometriji prepoznavanja lica, postoje dvije vrste primjena: verifikacija i identifikacija. Verifikacija je postupak potvrđivanja određenog identiteta usporedbom slike pojedinca (vektora lica ili drugog vektora obilježja, poput mrežnice ili otiska prsta) s jednim ili više prethodno pohranjenih predložaka. Identifikacija je proces utvrđivanja identiteta pojedinca. Biometrijski uzorci se prikupljaju i uspoređuju sa svim predlošcima u bazi podataka. Postoji identifikacija u zatvorenom skupu karakteristika ako se pretpostavi da osoba postoji u bazi podataka. Dakle, prepoznavanje kombinira jedan ili oba pojma verifikacije i identifikacije.

Često je osim izravnog rezultata usporedbe potrebno procijeniti i razinu “povjerenja” sustava u njegovu odluku. Ta se vrijednost naziva izrazom "razina sličnosti" (ili rezultat sličnosti). Veći rezultat sličnosti ukazuje na to da su dva biometrijska uzorka koja se uspoređuju sličnija.

Postoji niz metoda za ocjenu kvalitete rada sustava (i za zadatke verifikacije i identifikacije). O njima ćemo vam reći sljedeći put. A vi ostanite s nama i slobodno ostavljajte komentare i postavljajte pitanja.

BILJEŠKE

  1. Fukushima (1980.) “Neocognitron: model samoorganizirajuće neuronske mreže za mehanizam prepoznavanja uzoraka na koji ne utječe pomak u položaju,” Biološka kibernetika.
  2. LeCun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard i L.D. Jackel (1989.) “Širenje unatrag primijenjeno na prepoznavanje ručnog poštanskog broja”, Neural Computation, sv. 1, str., 541−551.
  3. Jiaxuan You, Xiaocheng Li, Melvin Low, David Lobell, Stefano Ermon Duboki Gaussov proces za predviđanje prinosa usjeva na temelju podataka daljinskog očitavanja.
  4. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016.) Duboko učenje. MIT press.
  5. Poh, C-H. Chan, J. Kittler, Julian Fierrez (UAM) i Javier Galbally (UAM) (2012.) Opis metrike za procjenu biometrijskih performansi.

Dosta toga je već rečeno kao jedan od alata za rješavanje teško formalizirajućih problema. I ovdje, na hubu, pokazano je kako koristiti te mreže za prepoznavanje slika, u odnosu na zadatak probijanja captcha. Međutim, postoji dosta vrsta neuronskih mreža. I je li klasična potpuno povezana neuronska mreža (FNN) toliko dobra za zadatak prepoznavanja (klasifikacije) slike?

1. Problem

Dakle, riješit ćemo problem prepoznavanja slike. To može biti prepoznavanje lica, predmeta, simbola itd. Predlažem da počnemo s razmatranjem problema prepoznavanja rukom pisanih brojeva. Ovaj zadatak je dobar iz više razloga:

    Za prepoznavanje rukom pisanog znaka prilično je teško stvoriti formalizirani (ne intelektualni) algoritam, a to postaje jasno kada pogledate isti broj koji su napisali različiti ljudi

    Zadatak je vrlo relevantan i odnosi se na OCR (optičko prepoznavanje znakova)

    Postoji besplatno distribuirana baza podataka rukom pisanih simbola dostupna za preuzimanje i eksperimentiranje

    Postoji dosta članaka na ovu temu i vrlo je lako i praktično usporediti različite pristupe

Kao ulazni podatak predlaže se korištenje baze podataka MNIST-a. Ova baza podataka sadrži 60 000 parova za obuku (slika - oznaka) i 10 000 parova za testiranje (slike bez oznaka). Slike su normalizirane po veličini i centrirane. Veličina svakog broja nije veća od 20x20, ali su upisani u kvadrat veličine 28x28. Primjer prvih 12 znamenki iz MNIST skupa za obuku prikazan je na slici:

Stoga je problem formuliran na sljedeći način: stvoriti i obučiti neuronsku mrežu za prepoznavanje rukom pisanih znakova, uzimajući njihove slike kao ulaz i aktivirajući jedan od 10 izlaza. Pod aktivacijom podrazumijevamo vrijednost 1 na izlazu. Vrijednosti preostalih izlaza trebaju (idealno) biti jednake -1. Kasnije ću objasniti zašto se ne koristi ljestvica.

2. “Obične” neuronske mreže.

Većina ljudi razumije "konvencionalne" ili "klasične" neuronske mreže kao potpuno povezane neuronske mreže s povratnim prijenosom:

Kao što naziv govori, u takvoj mreži svaki neuron je međusobno povezan, signal ide samo u smjeru od ulaznog prema izlaznom sloju, nema rekurzija. Takvu mrežu nazvat ćemo skraćeno PNS.

Prvo morate odlučiti kako ćete poslati ulazne podatke. Najjednostavnije i gotovo nikakvo alternativno rješenje za PNS je izražavanje dvodimenzionalne matrice slike kao jednodimenzionalnog vektora. Oni. za sliku rukom ispisanog broja dimenzija 28x28 imat ćemo 784 ulaza, što više nije malo. Ono što se zatim događa je ono što se mnogim konzervativnim znanstvenicima ne sviđa kod znanstvenika neuronskih mreža i njihovih metoda - izbor arhitekture. Ali to im se ne sviđa, jer je izbor arhitekture čisti šamanizam. Još uvijek ne postoje metode koje omogućuju jednoznačno određivanje strukture i sastava neuronske mreže na temelju opisa problema. U obranu ću reći da je za probleme koje je teško formalizirati mala vjerojatnost da će takva metoda ikada biti stvorena. Osim toga, postoji mnogo različitih tehnika smanjenja mreže (na primjer OBD), kao i razne heuristike i praktična pravila. Jedno od tih pravila kaže da broj neurona u skrivenom sloju mora biti najmanje jedan red veličine više količine ulazi. Ako uzmemo u obzir da je sama transformacija slike u indikator klase prilično složena i izrazito nelinearna, jedan sloj nije dovoljan. Na temelju svega navedenog, grubo procjenjujemo da će broj neurona u skrivenim slojevima biti reda veličine 15000 (10 000 u 2. sloju i 5 000 u trećem). Štoviše, za konfiguraciju s dva skrivena sloja, broj prilagodljive veze koje se mogu naučiti bit će 10 milijuna između ulaza i prvog skrivenog sloja + 50 milijuna između prvog i drugog + 50 tisuća između drugog i izlaza, ako pretpostavimo da imamo 10 izlaza, od kojih svaki predstavlja broj od 0 do 9 Ukupno otprilike 60.000.000 veza. Nisam uzalud spomenuo da su prilagodljivi - to znači da ćete prilikom treniranja za svaki od njih morati izračunati gradijent pogreške.

Što možete, ljepota umjetne inteligencije zahtijeva žrtvu. Ali ako razmislite o tome, pada vam na pamet da kad sliku pretvorimo u linearni lanac bajtova, nešto nepovratno gubimo. Štoviše, sa svakim slojem taj se gubitak samo pogoršava. Tako je - gubimo topologiju slike, tj. odnos između njegovih pojedinih dijelova. Osim toga, zadatak prepoznavanja podrazumijeva sposobnost neuronske mreže da bude otporna na male pomake, rotacije i promjene u mjerilu slike, tj. mora iz podataka izdvojiti određene invarijante koje ne ovise o rukopisu određene osobe. Dakle, kakva bi neuronska mreža trebala biti da ne bi bila računalno složena, a istovremeno bila više invarijantna prema raznim izobličenjima slike?

3. Konvolucijske neuronske mreže

Rješenje za ovaj problem pronašao je američki znanstvenik francuskog podrijetla Yann LeCun, inspiriran radom nobelovaca iz područja medicine Torstena Nilsa Wiesela i Davida H. Hubela. Ovi su znanstvenici ispitivali vidni korteks mačjeg mozga i otkrili da postoje takozvane jednostavne stanice koje posebno snažno reagiraju na ravne linije pod različitim kutovima i složene stanice koje reagiraju na linije koje se kreću u jednom smjeru. Yann LeCun predložio je korištenje takozvanih konvolucijskih neuronskih mreža.

6. Rezultati

Program na matlabcentral uključuje datoteku već uvježbane neuronske mreže, kao i GUI za demonstraciju rezultata rada. Ispod su primjeri prepoznavanja:



Poveznica sadrži usporednu tablicu metoda prepoznavanja na temelju MNIST-a. Prvo mjesto zauzimaju konvolucijske neuronske mreže s rezultatom od 0,39% pogrešaka prepoznavanja. Većina tih krivo prepoznatih slika ne prepoznaje svaka osoba ispravno. Osim toga, u radu su korištena elastična izobličenja ulaznih slika, kao i nenadzirani prethodni trening. Ali o tim metodama bit će riječi u drugom članku.

Linkovi.

  1. Yann LeCun, J. S. Denker, S. Solla, R. E. Howard i L. D. Jackel: Optimalno oštećenje mozga, u Touretzky, David (ur.), Advances in Neural Information Processing Systems 2 (NIPS*89), Morgan Kaufman, Denver, CO, 1990.
  2. Y. LeCun i Y. Bengio: Konvolucijske mreže za slike, govor i vremenske serije, u Arbib, M. A. (ur.), The Handbook of Brain Theory and Neural Networks, MIT Press, 1995.
  3. Y. LeCun, L. Bottou, G. Orr i K. Muller: Efficient BackProp, u Orr, G. i Muller K. (ur.), Neural Networks: Tricks of the trade, Springer, 1998.
  4. Ranzato Marc" Aurelio, Christopher Poultney, Sumit Chopra i Yann LeCun: Efficient Learning of Sparse Representations with an Energy-Based Model, u J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press , 2006. (enciklopedijska natuknica).