AlexNet este o rețea neuronală convoluțională pentru clasificarea imaginilor. Dezvoltarea unui sistem de recunoaștere a imaginilor bazat pe aparatul de rețele neuronale artificiale Rețele neuronale multistrat

AlexNet este o rețea neuronală convoluțională care a avut un impact mare asupra dezvoltării învățării automate, în special asupra algoritmilor de viziune computerizată. Rețeaua a câștigat concursul de recunoaștere a imaginilor ImageNet LSVRC-2012 2012 cu o marjă largă (cu o rată de eroare de 15,3% față de 26,2% pentru locul doi).

Arhitectura AlexNet este similară cu rețeaua LeNet creată de Yann LeCum. Cu toate acestea, AlexNet are mai multe filtre pe strat și straturi convoluționale imbricate. Rețeaua include convoluții, pooling maxim, abandon, creșterea datelor, funcții de activare ReLU și coborâre a gradientului stocastic.

Caracteristici

  1. Ca funcție de activare, Relu este folosit în loc de arc tangente pentru a adăuga neliniaritate modelului. Din acest motiv, cu aceeași precizie a metodei, viteza devine de 6 ori mai mare.
  2. Folosirea abandonului în loc de regularizare rezolvă problema supraajustării. Cu toate acestea, timpul de antrenament este dublat cu o rată de abandon de 0,5.
  3. Îmbinările prin suprapunere sunt efectuate pentru a reduce dimensiunea rețelei. Datorită acestui fapt, nivelul de erori al primului și al cincilea nivel este redus la 0,4%, respectiv 0,3%.

Setul de date ImageNet

ImageNet este un set de 15 milioane de imagini etichetate de înaltă rezoluție, împărțite în 22.000 de categorii. Imaginile sunt colectate online și etichetate manual folosind crowdsourcingul Amazon Mechanical Turk. Din 2010, Provocarea anuală ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) a fost organizată ca parte a Pascal Visual Object Challenge. Provocarea folosește o parte a unui set de date ImageNet cu 1.000 de imagini în fiecare dintre cele 1.000 de categorii. Există un total de 1,2 milioane de imagini de antrenament, 50.000 de imagini de validare și 150.000 de imagini de testare. ImageNet constă din imagini cu rezoluții diferite. Prin urmare, pentru competiție, acestea sunt scalate la o rezoluție fixă ​​de 256 × 256. Dacă imaginea a fost inițial dreptunghiulară, atunci este decupată într-un pătrat în centrul imaginii.

Arhitectură

Poza 1

Arhitectura rețelei este prezentată în Figura 1. AlexNet conține opt straturi ponderate. Primele cinci dintre ele sunt convoluționale, iar celelalte trei sunt complet conectate. Ieșirea este transmisă printr-o funcție de pierdere softmax care generează o distribuție de 1000 de etichete de clasă. Rețeaua maximizează regresia logistică multiliniară, ceea ce este echivalent cu maximizarea mediei pe toate cazurile de antrenament a logaritmului probabilității de etichetare corectă peste distribuția așteptărilor. Miezurile celui de-al doilea, al patrulea și al cincilea strat convoluțional sunt asociate doar cu acele hărți de bază din stratul anterior care se află pe același GPU. Nuezele celui de-al treilea strat convoluțional sunt conectate la toate hărțile nucleelor ​​celui de-al doilea strat. Neuronii din straturile complet conectate sunt conectați la toți neuronii din stratul anterior.

Astfel, AlexNet conține 5 straturi convoluționale și 3 straturi complet conectate. Relu se aplică după fiecare strat convoluțional și complet conectat. Dropout se aplică înaintea primului și al doilea strat complet conectat. Rețeaua conține 62,3 milioane de parametri și cheltuiește 1,1 miliarde de calcule într-o trecere înainte. Straturile convoluționale, care reprezintă 6% din toți parametrii, efectuează 95% din calcule.

Educaţie

AlexNet trece prin 90 de epoci. Antrenamentul durează 6 zile în același timp pe două GPU-uri Nvidia Geforce GTX 580, motiv pentru care rețeaua este împărțită în două. Coborârea gradientului stocastic este utilizată cu o rată de învățare de 0,01, un impuls de 0,9 și o scădere a greutății de 0,0005. Rata de învățare este împărțită la 10 după saturarea preciziei și scade cu un factor de 3 în timpul antrenamentului. Schema de actualizare a greutății w se pare ca:

Unde i- numărul de iterație, v este variabila impuls și epsilon- viteza de invatare. Pe parcursul întregii etape de antrenament, rata de învățare a fost aleasă egală pentru toate straturile și corectată manual. Următoarea euristică a fost împărțirea ratei de învățare la 10 când numărul erorilor de validare a încetat să mai scadă.

Exemple de utilizare și implementare

Rezultatele arată că o rețea neuronală convoluțională mare și profundă este capabilă să obțină rezultate record pe seturi de date foarte complexe folosind doar învățarea supravegheată. La un an de la publicarea AlexNet, toți participanții la competiția ImageNet au început să folosească rețelele neuronale convoluționale pentru a rezolva problema de clasificare. AlexNet a fost prima implementare a rețelelor neuronale convoluționale și a deschis o nouă eră a cercetării. Acum a devenit mai ușor să implementați AlexNet cu ajutorul bibliotecilor de deep learning: PyTorch, TensorFlow, Keras.

Rezultat

Rețeaua atinge următorul nivel de erori din primul și al cincilea nivel: 37,5% și, respectiv, 17,0%. Cea mai bună performanță obținută în timpul competiției ILSVRC-2010 a fost de 47,1% și 28,2% folosind o abordare care face media predicțiilor de la șase modele puțin codificate antrenate pe vectori de caracteristici diferiți. De atunci, s-au obținut rezultate de 45,7% și 25,7% folosind o abordare care face media predicțiilor a doi clasificatori antrenați pe vectori Fisher. Rezultatele ILSVRC-2010 sunt prezentate în Tabelul 1.


Stânga: opt imagini de testare ILSVRC-2010 și cinci etichete pe care modelul le consideră cele mai probabile. Eticheta corectă este scrisă sub fiecare imagine, iar probabilitatea este afișată ca o bară roșie dacă se află în primele cinci. Dreapta: cinci imagini de testare ILSVRC-2010 în prima coloană. Coloanele rămase arată șase imagini de antrenament. unu

O rețea neuronală este un model matematic și implementarea acestuia sub forma unei implementări software sau hardware-software, care se bazează pe modelarea activității rețelelor neuronale biologice, care sunt rețele de neuroni dintr-un organism biologic. Interesul științific pentru această structură a apărut deoarece studiul modelului acesteia permite obținerea de informații despre un anumit sistem. Adică, un astfel de model poate avea implementare practică într-o serie de ramuri ale științei și tehnologiei moderne. Articolul tratează probleme legate de tema utilizării rețelelor neuronale pentru a construi sisteme de identificare a imaginilor care sunt utilizate pe scară largă în sistemele de securitate. Problemele legate de tema algoritmului de recunoaștere a imaginii și aplicarea acestuia sunt studiate în detaliu. Sunt prezentate pe scurt informații despre metodologia de antrenare a rețelelor neuronale.

rețele neuronale

învăţarea cu reţele neuronale

recunoașterea imaginii

paradigma percepției locale

sisteme de securitate

1. Yann LeCun, J.S. Denker, S. Solla, R.E. Howard și L. D. Jackel: Optimal Brain Damage, în Touretzky, David (eds), Advances in Neural Information Processing Systems 2 (NIPS*89). - 2000. - 100 p.

2. Zhigalov K.Yu. Metodă de vectorizare fotorealistă a datelor de localizare laser pentru utilizare ulterioară în GIS. Geodezie și fotografie aeriană. - 2007. - Nr 6. - S. 285-287.

3. Ranzato Marc’Aurelio, Christopher Poultney, Sumit Chopra și Yann LeCun: Efficient Learning of Sparse Representations with an Energy-Based Model, în J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006). - 2010. - 400 p.

4. Zhigalov K.Yu. Pregătirea echipamentelor pentru utilizare în sistemele automate de control pentru construcția drumurilor // Științe naturale și tehnice. - M., 2014. - Nr. 1 (69). – S. 285–287.

5. Y. LeCun și Y. Bengio: Convolutional Networks for Images, Speech, and Time-Series, în Arbib, M. A. (Eds) // The Handbook of Brain Theory and Neural Networks. - 2005. - 150 p.

6. Y. LeCun, L. Bottou, G. Orr și K. Muller: Efficient BackProp, în Orr, G. și Muller K. (Eds) // Neural Networks: Tricks of the trade. - 2008. - 200 p.

Până în prezent, progresul tehnologic și al cercetării acoperă toate noile orizonturi, progresând rapid. Una dintre ele este modelarea lumii naturale înconjurătoare folosind algoritmi matematici. În acest aspect, sunt banale, de exemplu, modelarea valurilor mării, și sarcini extrem de complexe, non-triviale, multicomponente, de exemplu, modelarea funcționării creierului uman. În procesul de studiu a acestei probleme, a fost evidențiat un concept separat - o rețea neuronală. O rețea neuronală este un model matematic și implementarea acestuia sub forma unei implementări software sau hardware-software, care se bazează pe modelarea activității rețelelor neuronale biologice, care sunt rețele de neuroni dintr-un organism biologic. Interesul științific pentru această structură a apărut deoarece studiul modelului acesteia permite obținerea de informații despre un anumit sistem. Adică, un astfel de model poate avea implementare practică într-o serie de ramuri ale științei și tehnologiei moderne.

O scurtă istorie a dezvoltării rețelelor neuronale

Trebuie menționat că inițial conceptul de „rețea neuronală” își are originea în lucrările matematicienilor, neurolingviștilor și neuropsihologilor americani W. McCulloch și W. Pitts (1943), unde autorii îl menționează pentru prima dată, îi dau o definiție și fac primul încercarea de a construi un model de rețea neuronală. Deja în 1949, D. Hebb a propus primul algoritm de învățare. Au fost apoi o serie de studii în domeniul învățării neuronale, iar primele prototipuri funcționale au apărut în jurul anilor 1990-1991. secolul trecut. Cu toate acestea, puterea de calcul a echipamentului de atunci nu era suficientă pentru funcționarea suficient de rapidă a rețelelor neuronale. Până în 2010, puterea GPU a plăcilor video a crescut foarte mult și a apărut conceptul de programare direct pe plăci video, care a crescut semnificativ (de 3-4 ori) performanța computerelor. În 2012, rețelele neuronale au câștigat pentru prima dată campionatul ImageNet, ceea ce a marcat dezvoltarea lor rapidă în continuare și apariția termenului de Deep Learning.

În lumea modernă, rețelele neuronale au o anvergură colosală, oamenii de știință consideră că cercetările efectuate în domeniul studierii caracteristicilor și stărilor comportamentale ale rețelelor neuronale sunt extrem de promițătoare. Lista zonelor în care rețelele neuronale și-au găsit aplicații este uriașă. Acestea sunt recunoașterea și clasificarea modelelor, prognozarea și rezolvarea problemelor de aproximare și unele aspecte ale compresiei datelor, analizei datelor și, desigur, aplicarea în sisteme de securitate de altă natură.

Astăzi, studiul rețelelor neuronale are loc în mod activ în comunitățile științifice din diferite țări. Cu o asemenea considerație, este prezentat ca un caz special al unui număr de metode de recunoaștere a modelelor, analiză discriminantă și metode de grupare.

De remarcat, de asemenea, că în ultimul an au fost alocate finanțări pentru startup-uri din domeniul sistemelor de recunoaștere a imaginii de peste 5 ani anteriori, ceea ce indică o cerere destul de mare pentru acest tip de dezvoltare pe piața finală.

Aplicarea rețelelor neuronale pentru recunoașterea imaginilor

Luați în considerare sarcinile standard rezolvate de rețelele neuronale în aplicația la imagini:

● identificarea obiectului;

● recunoașterea unor părți ale obiectelor (de exemplu, fețe, brațe, picioare etc.);

● definirea semantică a granițelor obiectelor (permite lăsarea doar a granițelor obiectelor în imagine);

● segmentare semantică (vă permite să împărțiți o imagine în diferite obiecte separate);

● selectarea normalelor la suprafață (vă permite să convertiți imagini bidimensionale în imagini tridimensionale);

● selectarea obiectelor de atenție (vă permite să determinați la ce ar fi atent o persoană în această imagine).

Trebuie remarcat faptul că problema recunoașterii imaginii are un caracter strălucitor, soluția acestei probleme este un proces complex și extraordinar. Atunci când se realizează recunoașterea, obiectul poate fi o față umană, o cifră scrisă de mână, precum și multe alte obiecte care se caracterizează printr-o serie de caracteristici unice, ceea ce complică semnificativ procesul de identificare.

În acest studiu, vom lua în considerare un algoritm pentru crearea și învățarea să recunoască caracterele scrise de mână ale unei rețele neuronale. Imaginea va fi citită de una dintre intrările rețelei neuronale, iar una dintre ieșiri va fi folosită pentru afișarea rezultatului.

În această etapă, este necesar să ne oprim pe scurt asupra clasificării rețelelor neuronale. Până în prezent, există trei tipuri principale:

● rețele neuronale convoluționale (CNN);

● rețele recurente (deep learning);

● învăţare prin întărire.

Unul dintre cele mai comune exemple de construire a unei rețele neuronale este topologia clasică a rețelei neuronale. O astfel de rețea neuronală poate fi reprezentată ca un graf complet conectat, trăsătura sa caracteristică este propagarea înainte a informațiilor și propagarea înapoi a semnalizării erorii. Această tehnologie nu are proprietăți recursive. În mod ilustrativ, o rețea neuronală cu o topologie clasică poate fi descrisă în Fig. unu.

Orez. 1. Rețea neuronală cu cea mai simplă topologie

Orez. 2. Rețea neuronală cu 4 straturi de neuroni ascunși

Unul dintre dezavantajele clar semnificative ale acestei topologii de rețea este redundanța. Datorită redundanței, atunci când datele sunt furnizate sub forma, de exemplu, a unei matrice bidimensionale, se poate obține un vector unidimensional la intrare. Deci, pentru imaginea unei litere latine scrise de mână, descrisă folosind o matrice 34x34, sunt necesare 1156 de intrări. Acest lucru sugerează că puterea de calcul cheltuită pentru implementarea soluției software și hardware a acestui algoritm va fi prea mare.

Problema a fost rezolvată de omul de știință american Jan Le Cun, care a analizat munca laureaților Premiului Nobel în medicină T. Wtesel și D. Hubel. În cadrul studiului efectuat de aceștia, cortexul vizual al creierului pisicii a acționat ca obiect de studiu. Analiza rezultatelor a arătat că cortexul conține un număr de celule simple, precum și un număr de celule complexe. Celulele simple au răspuns la imaginea liniilor drepte primite de la receptorii vizuali, în timp ce celulele complexe au răspuns la mișcarea înainte într-o direcție. Ca urmare, a fost dezvoltat principiul construirii rețelelor neuronale, numit convoluțional. Ideea acestui principiu a fost că, pentru a implementa funcționarea rețelei neuronale, se folosește o alternanță de straturi convoluționale, care este de obicei denumită C - Straturi, straturi de subeșantionare S - Straturi și straturi complet conectate F - Straturi la ieșirea de rețeaua neuronală.

Trei paradigme stau la baza construcției unei rețele de acest fel - aceasta este paradigma percepției locale, paradigma ponderilor comune și paradigma subeșantionării.

Esența paradigmei de percepție locală constă în faptul că nu întreaga matrice a imaginii, ci o parte a acesteia, este alimentată către fiecare neuron de intrare. Părțile rămase sunt alimentate către alți neuroni de intrare. În acest caz, puteți observa mecanismul de paralelizare, folosind o metodă similară, puteți salva topologia imaginii de la strat la strat, procesând-o multidimensional, adică un anumit set de rețele neuronale poate fi utilizat în procesul de procesare .

Paradigma ponderilor partajate spune că un set mic de ponderi poate fi folosit pentru multe link-uri. Aceste seturi mai sunt numite și „nuclee”. Pentru rezultatul final al procesării imaginilor, putem spune că ponderile partajate au un efect pozitiv asupra proprietăților rețelei neuronale, studiul comportamentului căreia crește capacitatea de a găsi invarianți în imagini și de a filtra componentele de zgomot fără a le procesa.

Pe baza celor de mai sus, putem concluziona că atunci când se aplică procedura de convoluție a imaginii pe baza nucleului, va apărea o imagine de ieșire, ale cărei elemente vor fi caracteristica principală a gradului de conformitate cu filtrul, adică o va fi generată harta caracteristicilor. Acest algoritm este prezentat în fig. 3.

Orez. 3. Algoritm pentru generarea unei hărți de caracteristici

Paradigma de subeșantionare este că imaginea de intrare este redusă prin reducerea dimensiunii spațiale a echivalentului său matematic - o matrice n-dimensională. Nevoia de subeșantionare este exprimată în invarianță față de scara imaginii originale. La aplicarea tehnicii de alternare a straturilor, devine posibilă generarea de noi hărți de caracteristici din cele existente, adică implementarea practică a acestei metode constă în faptul că capacitatea de a degenera o matrice multidimensională într-o valoare vectorială și apoi complet într-o valoare vectorială. valoarea scalară, va fi dobândită.

Implementarea antrenamentului în rețea neuronală

Rețelele existente sunt împărțite în 3 clase de arhitecturi în ceea ce privește învățarea:

● învăţare supravegheată (percepton);

● învăţare nesupravegheată (reţele de rezonanţă adaptivă);

● blended learning (rețele de funcții de bază radială).

Unul dintre cele mai importante criterii de evaluare a performanței unei rețele neuronale în cazul recunoașterii imaginilor este calitatea recunoașterii imaginii. Trebuie remarcat faptul că pentru a cuantifica calitatea recunoașterii imaginii folosind funcționarea unei rețele neuronale, algoritmul de eroare rădăcină medie pătrată este cel mai des utilizat:

(1)

În această dependență, Ep este eroarea p-a de recunoaștere pentru o pereche de neuroni,

Dp este ieșirea așteptată a rețelei neuronale (de obicei, rețeaua ar trebui să depună eforturi pentru o recunoaștere de 100%, dar acest lucru nu se întâmplă încă în practică), iar construcția O(Ip,W)2 este pătratul ieșirii rețelei, care depinde pe intrarea p-a și coeficienții de greutate setați W. Această construcție include atât nucleele de convoluție, cât și coeficienții de greutate ai tuturor straturilor. Calculul erorii constă în calcularea mediei aritmetice pentru toate perechile de neuroni.

În urma analizei, s-a determinat o regularitate că valoarea nominală a ponderii, atunci când valoarea erorii este minimă, poate fi calculată pe baza dependenței (2):

(2)

Din această dependență, putem spune că sarcina de a calcula ponderea optimă este diferența aritmetică a derivatei funcției de eroare de ordinul întâi în greutate, împărțită la derivata funcției de eroare de ordinul doi.

Dependențele date permit calculul trivial al erorii, care se află în stratul de ieșire. Calculul erorii în straturile ascunse ale neuronilor poate fi implementat folosind metoda de retropropagare a erorii. Ideea principală a metodei este de a disemina informații, sub forma unui semnal de eroare, de la neuronii de ieșire la cei de intrare, adică în direcția opusă propagării semnalelor prin rețeaua neuronală.

De asemenea, trebuie remarcat faptul că instruirea în rețea se efectuează pe baze de date de imagini special pregătite, clasificate într-un număr mare de clase și durează destul de mult.
Până în prezent, cea mai mare bază de date este ImageNet (www.image_net.org) . Are acces gratuit pentru instituțiile academice.

Concluzie

Ca urmare a celor de mai sus, este de remarcat faptul că rețelele neuronale și algoritmii implementați pe principiul funcționării lor pot fi utilizați în sistemele de recunoaștere a cardurilor de amprentă pentru organele de afaceri interne. Adesea, este componenta software a complexului software și hardware care vizează recunoașterea unei imagini complexe atât de unice ca un model care reprezintă date de identificare care nu rezolvă pe deplin sarcinile care îi sunt atribuite. Un program implementat pe baza unor algoritmi bazați pe o rețea neuronală va fi mult mai eficient.

Rezumând, putem rezuma următoarele:

● rețelele neuronale pot fi utilizate atât în ​​problema recunoașterii imaginii, cât și a textului;

● această teorie face posibilă vorbirea despre crearea unei noi clase promițătoare de modele, și anume modele bazate pe modelare inteligentă;

● rețelele neuronale sunt capabile de învățare, ceea ce indică posibilitatea de optimizare a procesului din funcționare. Această posibilitate este o opțiune extrem de importantă pentru implementarea practică a algoritmului;

● Evaluarea algoritmului de recunoaștere a modelelor folosind cercetarea rețelei neuronale poate avea o valoare cantitativă, respectiv, există mecanisme de ajustare a parametrilor la valoarea cerută prin calcularea coeficienților de greutate necesari.

Până în prezent, studiul suplimentar al rețelelor neuronale pare a fi un domeniu promițător de cercetare care va fi aplicat cu succes în și mai multe ramuri ale științei și tehnologiei, precum și în activitățile umane. Accentul principal în dezvoltarea sistemelor moderne de recunoaștere se deplasează acum către domeniul segmentării semantice a imaginilor 3D în geodezie, medicină, prototipare și alte domenii ale activității umane - aceștia sunt algoritmi destul de complexi și acest lucru se datorează:

● cu lipsa unui număr suficient de baze de date de imagini de referință;

● lipsa unui număr suficient de experți gratuiti pentru formarea inițială a sistemului;

● Imaginile nu sunt stocate în pixeli, ceea ce necesită resurse suplimentare atât de la computer, cât și de la dezvoltatori.

De asemenea, trebuie remarcat faptul că astăzi există un număr mare de arhitecturi standard pentru construirea rețelelor neuronale, ceea ce simplifică foarte mult sarcina de a construi o rețea neuronală de la zero și o reduce la selectarea unei structuri de rețea potrivite pentru o anumită sarcină.

În prezent, pe piață există un număr destul de mare de companii inovatoare care se ocupă de recunoașterea imaginilor folosind tehnologii de învățare a rețelelor neuronale. Se știe cu siguranță că au obținut o acuratețe de recunoaștere a imaginii de aproximativ 95% folosind o bază de date de 10.000 de imagini. Cu toate acestea, toate realizările se referă la imagini statice, cu secvența video momentan totul este mult mai complicat.

Link bibliografic

Markova S.V., Zhigalov K.Yu. APLICAREA UNEI REȚELE NEURALE PENTRU A CREEA UN SISTEM DE RECUNOAȘTE IMAGINII // Cercetare fundamentală. - 2017. - Nr. 8-1. - P. 60-64;
URL: http://fundamental-research.ru/ru/article/view?id=41621 (data accesului: 24/03/2020). Vă aducem la cunoștință jurnale publicate de editura „Academia de Istorie Naturală”

Prieteni, continuăm povestea despre rețelele neuronale pe care am început-o data trecută și despre .

Ce este o rețea neuronală

O rețea neuronală în cel mai simplu caz este un model matematic format din mai multe straturi de elemente care efectuează calcule paralele. Inițial, o astfel de arhitectură a fost creată prin analogie cu cele mai mici elemente de calcul ale creierului uman - neuronii. Elementele de calcul minime ale unei rețele neuronale artificiale sunt denumite și neuroni. Rețelele neuronale constau de obicei din trei sau mai multe straturi: un strat de intrare, un strat ascuns (sau straturi) și un strat de ieșire (Fig. 1), în unele cazuri straturile de intrare și de ieșire nu sunt luate în considerare, iar apoi numărul de straturile din rețea se calculează după numărul de straturi ascunse. Acest tip de rețea neuronală se numește perceptron.

Orez. 1. Cel mai simplu perceptron

O caracteristică importantă a unei rețele neuronale este capacitatea sa de a învăța din exemple, aceasta se numește învățare supravegheată. Rețeaua neuronală este antrenată pe un număr mare de exemple constând din perechi intrare-ieșire (intrare și ieșire corespunzătoare). În problemele de recunoaștere a obiectelor, o astfel de pereche va fi imaginea de intrare și eticheta corespunzătoare acesteia - numele obiectului. Antrenamentul rețelei neuronale este un proces iterativ care reduce abaterea ieșirii rețelei de la „răspunsul profesorului” dat - eticheta corespunzătoare imaginii date (Fig. 2). Acest proces constă în pași numiți epoci de antrenament (de obicei se numără la mii), fiecare dintre care ajustează „greutățile” rețelei neuronale - parametrii straturilor ascunse ale rețelei. La sfârșitul procesului de antrenament, performanța rețelei neuronale este de obicei suficient de bună pentru a îndeplini sarcina pentru care a fost antrenată, deși este adesea imposibil să alegeți setul optim de parametri care să recunoască perfect toate imaginile.


Orez. 2. Antrenamentul rețelei neuronale

Ce sunt rețelele neuronale profunde

Rețelele neuronale profunde sau profunde sunt rețele neuronale formate din mai multe straturi ascunse (Fig. 3). Această figură este o imagine a unei rețele neuronale profunde, oferind cititorului o idee generală despre cum arată o rețea neuronală. Cu toate acestea, arhitectura reală a rețelelor neuronale profunde este mult mai complexă.


Orez. 3. Rețea neuronală cu multe straturi ascunse

Creatorii rețelelor neuronale convoluționale, desigur, s-au inspirat mai întâi din structurile biologice ale sistemului vizual. Primele modele de calcul bazate pe conceptul de organizare ierarhică a fluxului vizual primatelor sunt cunoscute sub numele de Neocognitron Fukushima (Fig. 4). Înțelegerea modernă a fiziologiei sistemului vizual este similară cu tipul de procesare a informațiilor în rețelele convoluționale, cel puțin pentru recunoașterea rapidă a obiectelor.


Orez. 4. Diagrama care prezintă conexiunile dintre straturi în modelul Neocognitron.

Acest concept a fost implementat ulterior de cercetătorul canadian Jan LeKun în rețeaua sa neuronală convoluțională, pe care a creat-o pentru recunoașterea scrisului de mână. Această rețea neuronală a constat din două tipuri de straturi: straturi convoluționale și straturi de subeșantionare (subeșantionare) (sau straturi de pooling). În el, fiecare strat are o structură topografică, adică fiecare neuron este asociat cu un punct fix al imaginii originale, precum și cu un câmp receptiv (o regiune a imaginii de intrare care este procesată de acest neuron). La fiecare locație din fiecare strat, există un număr de neuroni diferiți, fiecare cu propriul set de greutăți de intrare, asociate cu neuronii din felia dreptunghiulară a stratului anterior. Fragmente dreptunghiulare de intrare diferite cu același set de greutăți sunt asociate cu neuroni din locații diferite.

Arhitectura generală a unei rețele neuronale profunde pentru recunoașterea modelelor este prezentată în Figura 5. Imaginea de intrare este reprezentată ca un set de pixeli sau zone mici ale imaginii (de exemplu, 5 pe 5 pixeli)


Orez. 5. Diagrama rețelei neuronale convoluționale

De regulă, rețelele neuronale profunde sunt descrise într-o formă simplificată: ca etape de procesare, care sunt uneori numite filtre. Fiecare etapă diferă de cealaltă printr-un număr de caracteristici, cum ar fi dimensiunea câmpului receptiv, tipul de caracteristici pe care rețeaua învață să le recunoască în acel strat și tipul de calcul efectuat în fiecare etapă.

Domeniile de aplicare ale rețelelor neuronale profunde, inclusiv rețelele convoluționale, nu se limitează la recunoașterea feței. Sunt utilizate pe scară largă pentru recunoașterea vorbirii și audio, procesarea citirilor de la diferite tipuri de senzori sau pentru segmentarea imaginilor complexe cu mai multe straturi (cum ar fi hărțile prin satelit) sau imaginilor medicale (raze X, imagini fMRI - vezi).

Rețele neuronale în biometrie și recunoaștere facială

Pentru a obține o acuratețe ridicată a recunoașterii, rețeaua neuronală este pre-antrenată pe o gamă largă de imagini, cum ar fi în baza de date MegaFace. Aceasta este metoda principală de antrenament pentru recunoașterea feței.


Orez. 6. Baza de date MegaFace conține 1 milion de imagini cu peste 690 de mii de oameni

După ce rețeaua este antrenată să recunoască fețele, procesul de recunoaștere a feței poate fi descris după cum urmează (Fig. 7). În primul rând, imaginea este procesată folosind un detector de fețe: un algoritm care detectează un fragment dreptunghiular al unei imagini cu o față. Acest fragment este normalizat pentru a fi mai ușor de procesat de către rețeaua neuronală: cel mai bun rezultat va fi obținut dacă toate imaginile de intrare sunt de aceeași dimensiune, culoare, etc. Imaginea normalizată este alimentată la intrarea rețelei neuronale pentru procesare prin algoritm. Acest algoritm este de obicei o dezvoltare unică a companiei pentru a îmbunătăți calitatea recunoașterii, dar există și soluții „standard” pentru această sarcină. Rețeaua neuronală construiește un vector caracteristic unic, care este apoi transferat în baza de date. Motorul de căutare îl compară cu toți vectorii de caracteristici stocați în baza de date și returnează rezultatul căutării ca un anumit număr de nume sau profiluri de utilizatori cu trăsături faciale similare, fiecăruia fiindu-i atribuit un anumit număr. Acest număr reprezintă cât de asemănător este vectorul nostru caracteristic cu cel găsit în baza de date.


Orez. 7. Procesul de recunoaștere a feței

Determinarea calității unui algoritm

Precizie

Când alegem ce algoritm să aplicăm unui obiect sau unei probleme de recunoaștere a feței, trebuie să avem un mijloc de a compara performanța diferiților algoritmi. În această parte, vom descrie instrumentele cu care se face acest lucru.

Evaluarea calității sistemului de recunoaștere a feței se realizează folosind un set de metrici care corespund scenariilor tipice de utilizare a sistemului de autentificare prin biometrie.

De regulă, performanța oricărei rețele neuronale poate fi măsurată din punct de vedere al preciziei: după reglarea parametrilor și finalizarea procesului de instruire, rețeaua este testată pe un set de teste pentru care avem răspunsul profesorului, dar care este separat de set de antrenament. De obicei, acest parametru este o măsură cantitativă: un număr (de multe ori un procent) care indică cât de bine este capabil sistemul să recunoască obiecte noi. O altă măsură tipică este eroarea (poate fi exprimată atât ca procent, cât și ca echivalent numeric). Cu toate acestea, există măsuri mai precise pentru biometrie.

În biometrie în general și în biometria recunoașterii faciale în special, există două tipuri de aplicații: verificare și identificare. Verificarea este procesul de confirmare a unei anumite identități prin compararea unei imagini a unui individ (un vector caracteristic al unei fețe sau un alt vector caracteristic, cum ar fi o retină sau o amprentă digitală) cu unul sau mai multe șabloane stocate anterior. Identificarea este procesul de determinare a identității unei persoane. Probele biometrice sunt colectate și comparate cu toate șabloanele din baza de date. Există o identificare într-un set închis de caracteristici dacă se presupune că persoana există în baza de date. Astfel, recunoașterea combină unul sau ambii termeni verificare și identificare.

Adesea, pe lângă rezultatul direct al comparației, se cere să se evalueze nivelul de „încredere” al sistemului în decizia sa. Această valoare se numește termenul „nivel de similitudine” (sau similaritate, scor de similaritate). Un scor de similaritate mai mare indică faptul că cele două eșantioane biometrice comparate sunt mai asemănătoare.

Există o serie de metode de evaluare a calității sistemului (atât pentru sarcina de verificare, cât și de identificare). Despre ele vom vorbi data viitoare. Și rămâi cu noi și nu ezitați să lăsați comentarii și să puneți întrebări.

NOTE

  1. Fukushima (1980) „Neocognitron: Un model de rețea neuronală auto-organizată pentru un mecanism de recunoaștere a modelelor neafectat de schimbarea poziției”, Cibernetică biologică.
  2. LeCun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard și L.D. Jackel (1989) „Backpropagation Applied to Handwritten Zip Code Recognition”, Neural Computation, voi. 1, p. 541-551.
  3. Jiaxuan You, Xiaocheng Li, Melvin Low, David Lobell, Stefano Ermon Deep Gaussian Process for Crop Yield Prediction Bazat pe date de teledetecție.
  4. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016) Deep Learning. presa MIT.
  5. Poh, C-H. Chan, J. Kittler, Julian Fierrez (UAM) și Javier Galbally (UAM) (2012) Description of Metrics For the Evaluation of Biometric Performance.