O ramură inovatoare a informaticii, care a înregistrat o dezvoltare substanțială este cea a Inteligenței Artificiale (AI-“Artificial Intelligence”)…. [301847]
Capitolul 1. Introducere
O ramură inovatoare a informaticii, care a înregistrat o dezvoltare substanțială este cea a Inteligenței Artificiale (AI-“Artificial Intelligence”). [anonimizat] a-și atinge obiectivele. La fundamentul său au stat științele precum: filozofia, matematica, lingvistica, [anonimizat], [anonimizat]. Multe domenii se includ în “AI”, [anonimizat], “Machine Learning” și prelucrarea limbajului natural.
Chiar dacă a fost introdusă la începutul anilor ’50, ea s-a impus considerabil grație dezvoltărilor recente a rețelelor de tip “Deep Learning”, “Artificial Neural Networks”, cu creșterea considerabilă a [anonimizat] a unităților de procesare grafică (“GPU- Graphics Processing Unit”), a unității centrale de prelucrare (“CPU- Central Processing Unit”) și a „TPU- Tensor Processing Unit”[1].
[anonimizat]-[anonimizat]. Inițial, [anonimizat] “science fiction”. Cu timpul s-[anonimizat] a impus o acceptare și recunoaștere publică [2].
1.1 Introducere în Inteligența Artificială
Inteligența artificială presupune “ capacitatea unui sistem de a [anonimizat] a învăța din astfel de date și de a le folosi […] pentru a-și atinge obiectivele si sarcinile specifice printr-o adaptare flexibilă”[3]. [anonimizat] “task-uri”[4].
[anonimizat], pentru a le folosi ulterior în cadrul aplicațiilor uzuale ale algoritmilor de învățare automată- “Machine Learning” și a celor de învățare profundă- “Deep Learning”. Termenii specifici sunt destul de aproape ca sens și au o legătură strânsă intre ei.
“Machine Learning” este un subdomeniu ce face parte din știința “AI”, care conține metode ce ajută calculatoarele să “învețe” fără a [anonimizat] o intervenție umană minimă. Acesta s-a [anonimizat], [anonimizat]. IA poate fi folosită pentru a rafina sau genera noi algoritmi pentru a [anonimizat] a obține o mai bună detaliere a rezultatelor. “Machine Learning” este studiul științific al unui algoritm și al unui model statistic pe care sistemul calculatorului le-a folosit pentru a efectua în mod eficient o sarcină specifică fără a folosi instrucțiuni explicite. “ML” va învăța din experiență și va fi în stare să recunoască modele similare pentru clasificarea imaginilor.
“Deep Learning”, o ramură a “Machine Learning”, este o colecție de tehnici de antrenare a rețelelor neurale cu un număr mare de parametri pe o cantitate imensă de date pentru efectuarea clasificării [5]. Acest concept presupune instruirea unui calculator să îndeplinească o sarcină specifică activității omului cum ar fi: [anonimizat]aginilor sau efectuarea unor predicții [6].
“Deep Learning” utilizează “Machine Learning” și “AI” împreună, pentru a descompune sarcini, a analiza fiecare sub-sarcină și folosește aceste informații pentru a rezolva un nou set de probleme.[7]
Fig.1 Evoluția în timp a IA, ”Machine Learning” și “Deep Learning” [8]
Soluțiile oferite de IA sunt concepute să sporească efortul uman, nu să-l înlocuiască. Un exemplu elocvent în acest sens îl constituie “The WildTrack Footprint Identification Technique (FIT)” – un proiect menit să protejeze animalele aflate pe cale de dispariție.
“Deep learning” oferă o bază de date suficientă pentru ca un calculator să aibă posibilitatea de a-și antrena rețeaua neurală, astfel încât să realizeze sarcini “umane”, precum identificarea amprentelor și recunoașterea modelelor după stilul de vânătoare al aborigenilor, dar pe lângă acestea se mai adaugă abilitatea aplicării acestor concepte la scară mult mai largă și într-un timp mult mai rapid. La baza întregului proces stau datele analitice, oferind o perspectivă asupra speciilor populate, ceea ce nu era imposibil până acum.
Acesta este un instrument pentru monitorizarea non-invazivă a speciilor pe cale de dispariție prin intermediul imaginilor digitale ale amprentelor. Parametrii din aceste imagini sunt analizate cu modele matematice personalizate, care ajută la identificarea speciei, a individului, a sexului și a clasei de vârstă. IA ar putea oferi abilitatea de a se adapta prin algoritmi de învățare progresivă și să spună o poveste și mai completă [9].
1.2 Introducere în Rețele Neuronale Artificiale
Modelul conexionist este unul reprezentativ pentru domeniul IA și anume duce la crearea conceptului de calcul neuronal, care a contribuit la rândul său la crearea rețelei neuronale artificiale (neurale). Având o mulțime distinctă de exemple de instruire/învățare, rețeaua neurală este capabilă să realizeze o sinteză autonomă a algoritmului de soluționare a problemelor, astfel mecanismul presupune extragerea datelor din informația prezentă și studierea pe baza acestora.
Rețelele neurale schimbă modul în care oamenii și organizațiile interacționează cu sistemele, rezolvă problemele, iau decizii și fac previziuni. Impactul acestora se răsfrânge în mai multe domenii precum: științe ale biologiei , industrie, activitate bancară, comunicații, comerț, administrație publică centrală.
Rețelele neuronale artificiale constituie un sistem de calcul alcătuit din noduri interconectate, care funcționează asemănător neuronilor din creierul uman. Folosind algoritmi, acestea pot recunoaște modele și crea legături dintre date, pentru ulterioara lor clasificare. O proprietate de remarcat ar fi îmbunătățirea continuă în timpul mecanismului de învățare
Fig.2 a.Structura unui neuron natural; b.Structura unui neuron artificial; [10]
Rețelele neurale artificiale sunt caracterizate de 3 elemente: modelul adoptat pentru elementul de procesare individual ( neuronul), structura particulară de interconexiuni ( arhitectura) și mecanismul de ajutare a legăturilor dintre neuroni ( algoritmul de învățare) [11].
În 1943, Warren McCulloch și Walter Pitts au conceput prima rețea neurală artificială. Modul de lucru al neuronilor a fost prezentat în lucrarea acestora, precum și ideile care au stat la baza creării rețelei neuronale simple, folosind circuite electrice. Acest model a revoluționat calea cercetării in domeniul rețelelor neuronale în 2 mari arii :
Fig. 3 a) procesele biologice din creier ; b) aplicarea rețelelor neurale in domeniul de IA [12]
Rosenblatt introduce în 1958 noțiunea de perceptron ca model util în rezolvarea problemelor de clasificare și demonstrează o binecunoscută teoremă de convergență a algoritmului de adaptare corespunzător.
În 1965 Ivahnenko & Lapa au realizat prima arhitectură de rețea cu mai multe straturi, dar puțini neuroni. Iar funcțiile de activare erau polinomiale, de antrenare cu metode statistice, și nu diferențiale.
În lucrarea Perceptrons, Minski și Papert demonstrează riguros că arhitecturile cu un singur strat formate din neuroni elementari de tip perceptron au limitări majore.
Cercetarea IA a accelerat rapid odată cu dezvoltarea primei rețele neurale adevărate multistrat, realizată de Kunihiko Fukushima în 1975. Iar în 1980 a fost creată prima rețea de convoluție: neocognitorul, inspirat din modul de funcționare al cortexului vizual [13].
Fig.4 Straturile rețelei neurale și funcțiile ei
Scopul original al abordării rețelei neurale a fost de a crea un sistem algoritmic care ar putea rezolva probleme precum o face creierul uman. Însă, cu timpul, cercetătorii au schimbat accentul de pe abordarea strict biologică. De atunci, RN au executat diferite sarcini, de exemplu: diagnostic medical ,“computer vision”, recunoașterea vocală, filtrarea rețelelor sociale, jocuri video.
În măsura în care mărimea datelor a crescut esențial, atât a celor structurate, cât și nestructurate, oamenii de știință au dezvoltat sisteme de tip “Deep Learning”, care sunt în esență rețele neurale alcătuite din mai multe straturi. Acest tip de învățare permite captarea și extragerea a datelor de dimensiuni foarte mari, inclusiv a celor nestructurate.
1.2.1 Importanța Rețelelor Neurale
Rețelele respective sunt de asemenea destinate rezolvării problemelor complexe din viața reală. Acestea pot “învăța” să coreleze datele de intrare cu cele de ieșire, care pot fi neliniare și complexe, sunt capabile să generalizeze si să depisteze interferențe, pot dezvălui șabloane și predicții, știu să modeleze date extrem de volatile (date financiare furnizate in serii temporale), dar și pentru a prognoza evenimente rare (detectarea fraudei). În consecință, RN pot îmbunătăți procesele de luare a deciziilor in următoarele domenii:
Procesul și controlul calității
Evaluarea ecosistemelor
Prognozarea cererii de sarcină
și energie electrică
Identificarea compusului chimic
“Computer vision” la interpretarea fotografiilor și a secvențelor video prime (neprelucrate), de exemplu în imagistica medicală, robotică și recunoaștere facială.
Optimizarea logisticii pentru rețele de transport
Detectara fraudelor (carduri bancare și asigurări de sănătate)
Diagnosticare medicală
Marketing orientat
Sisteme automate de control
Previziuni financiare (prețul acțiunilor, schimb valutar, insolvabilitate, “raitingurile” obligațiunilor)
Recunoașterea optică/vizuală a caracterelor și a vocii, cunoscută precum prelucrarea limbajului natura.
1.2.2 Clase de Rețele Neurale
Există diferite tipuri de rețele neurale de tip “Deep Learning” și fiecare are puncte pozitive și negative, în funcție de utilizare:
Rețelele neurale convoluționale (CNN – Convolutional Neural Networks) conțin 5 tipuri de straturi/nivele: de intrare, de convoluție, de prevenire (pooling), complet conectat și de ieșire. Fiecare strat are scopul său specific precum: sintetizarea, conectarea sau activarea. CNN au generalizat clasificarea imaginilor și detectarea obiectelor. Cu toate acestea, CNN au fost implementate în diverse domenii, cum ar fi procesarea limbajului natural și prezicerea.
Rețelele neuronale recurente (RNN – Recurrent Neural Networks) utilizează informații secvențiale, cum ar fi date marcate temporal de la un senzor. Spre deosebire de rețelele neuronale tradiționale, intrările într-o rețea neuronală recurentă sunt dependente una de cealaltă, iar ieșirea fiecărui element depinde de calculul elementelor sale anterioare. RNN sunt utilizate în aplicații de presupunere și analiză a seriilor de timp.
La rețele neuronale “feedforward” fiecare perceptron dintr-un nivel este conectat cu fiecare perceptron din nivelul alăturat, astfel informațiile sunt unidirecționale, fără posibilitatea existenței buclelor de “feedback”.
Rețelele neuronale “ Autoencoder” sunt folosite la crearea unor abstracții, numite encodere, formate dintr-un anumit set de intrări. Deși se aseamănă cu cele tradiționale, “autoencorderele” încearcă să își modeleze intrările și, prin urmare, metoda este considerată nesupravegheată. Premisa acestui tip de rețele este de a distinge informațiile semnificative de cele irelevante. Pe măsură ce se adaugă straturi, se obțin mai multe codificatoare la straturi mai superioare ( cel apropiat punctului în care este introdus decodorul). Aceste abstracții pot fi aplicate ulterior de către clasificatorii neliniari
sau liniari.
1.2.3 Modul de lucru al unei Rețele Neurale
O rețea neurală simplă include un strat de intrare, unul de ieșire și, între ele, unul sau mai multe straturi ascunse. Straturile sunt conectate prin noduri, iar aceste conexiuni formează rețeaua neurală a nodurilor interconectate. Un nod se modelează după exemplul celui din creierul uman. Similar comportamentului acestora, nodurile sunt activate atunci când există suficiente intrări sau stimuli. Atunci când este activată întreaga rețea, apare un răspuns la stimuli (ieșire). Conexiunile dintre neuronii artificiali acționează ca sinapse simple, oferind posibilitatea de a transmite semnalele de la unul la altul. Procesarea semnalelor are loc în timpul transmiterii acestora, prin straturi, de la cel de intrare spre cel de ieșire.
Fig. 5 Nivelele de organizare a rețelei neurale
La primirea unei cereri de rezolvare a problemei, neuronii execută calcule matematice pentru a-și da seama dacă posedă suficiente informații pentru a le transmite următorului. Aceștia citesc toate datele și determină cele mai puternice dependențe (relații). În cel mai simplu tip de rețea, intrările recepționate se adaugă și, dacă suma atinge valoarea de prag, neuronul semnalează și activează neuronii cu care este conectat.
Pe măsură ce crește numărul de straturi ascunse dintr-o rețea neurală, se formează rețele profunde neurale. Arhitecturile “Deep Learning” aduc rețelele neurale simple la un alt nivel.Folosind aceste straturi, cercetătorii („data scientists”) își pot construi propriile rețele, care să permită învățarea mașinii, instruirea unui calculator pentru a imita cu exactitate sarcinile umane, cum ar fi recunoașterea vorbirii, identificarea imaginilor sau realizarea predicțiilor. La fel de important este că, computerul este capabil să învețe pe cont propriu prin recunoașterea tiparelor în mai multe straturi de prelucrare.
Prin urmare, datele sunt introduse intr-o rețea neurală prin nivelul de intrare, care comunică cu cele mai îndepărtate. Procesarea are loc în straturile ascunse printr-un sistem de conexiuni ponderate. Nodurile din stratul mai îndepărtat combină apoi datele din stratul de intrare cu un set de coeficienți și atribuie intrărilor ponderi corespunzătoare. Aceste produse sunt apoi adunate, iar suma este trecută prin funcția de activare a unui nod, ceea ce determină măsura în care un semnal progresează mai departe prin rețea și va afecta ieșirea finală. În cele din urmă, straturile profunde se leagă cu cel de ieșire, unde se preiau datele obținute [14].
O problemă prototip pentru a realiza antrenarea rețelelor neurale este cea de recunoaștere a scrierii de mâină. De exemplu, cifrele scrise de mâină ar putea fi o provocare care ar solicita o soluție deloc dificilă, fără împlicarea unei puteri extraordinare de calcul. În plus, este o modalitate excelentă de a dezvolta tehnici mai avansate, cum ar fi “Deep Learning” .
Din 2006 a fost elaborate un set de tehnici care se bazează pe coborârea stohastică a gradientului și propagare înapoi (“backpropagation”), dar și pe alte idei noi. Acest set permite instruirea rețelelor mult mai adânci. Se cunosc rețele cu 5-10 straturi ascunse, care funcționează mult mai bine decât de la nivele superficiale, adică doar cu un singur strat ascuns. Motivul constă în capacitatea plaselor adânci de a construi o ierarhie complexă de concepte, precum limbajele de programare convenționale folosesc o proiectare modelară și idei de abstractizare pentru a facilita crearea programelor computerizate complexe [15].
Rețele clasice
1-2 straturi
Funcții de activare sigmoide
Funcții de cost bazate pe eroarea medie pătratică (MSE- Mean Squared Error)
Algoritmi de antrenare: BackPropagation, RProp(Resilient back-propagation), Levenberg-Marquardt etc.
Rețele profunde
Mai multe straturi
Funcții de activare mai simple: ReLU ( Rectified Linear Unit)
Funcții de cost bazate pe estimarea probabilității maxime (MLE- Maximum Likeligood Estimation)
Algoritmi de antrenare SGD-(Stochastic Grafient Descent), RMSProp (Root Mean Square Prop) etc.
Alte metode de inițialiare a ponderilor, regularizate, preantrenate [16].
Capitolul 2. Introducere în “Deep Learning”
Sistemele de învățare profundă, caracterizate de rețele neuronale, preiau din ce în ce mai mult sarcinile IA, de la înțelegerea limbajului până la recunoașterea vorbirii, traducerea automată, planificare, jocuri și conducere autonomă a automobilului. Drept urmare, expertiza acestui sistem este în continuă schimbare, înlocuindu-se caracterul secret, cu unul obligatoriu în mediul academic de nivel avansat, precum și pe piața muncii [17].
Fig. 6 Utilizarea “Deep Learning” în comparație cu algoritmi clasici [18].
“Deep Learning” reprezintă o clasă de algoritmi de tip “Machine Learning” :
Se utilizează o cascadă multistrat a unităților neliniare de procesare, pentru ulterioara extracție și transformare a caracteristicilor. Fiecare strat succesiv utilizează ieșirea stratului anterior ca intrare.
Învață într-un mod supravegheat( de exemplu, clasificare) și/sau nesupravegheat ( de ex. analiză de model ).
Învață să execute realizări pe mai multe nivele care corespund diferitelor nivele de abstractizare, nivelele formând ierarhia conceptelor.
În “Deep Learning”, fiecare nivel “învață” să-și transforme datele de intrare într-o reprezentare mai ușoară, abstractă și “citibilă”.
Pentru aplicația de recunoaștere a imaginilor, intrarea brută poate fi o matrice de pixeli, unde primul nivel de reprezentare poate împărți pixelii și codifica marginile. Al doilea strat de reprezentare poate repartiza și codifica aranjarea marginilor. Cel de-al treilea nivel poate codifica elemente caracteristice ( de ex. nas, ochi, urechi etc.), pentru ca al patrulea nivel să „recunoască” conținutul integral al imaginii (pisică). Desigur, acest proces include și implicare manuală ce constă în ajustarea numărului de straturi necesar și dimensiunile acestora, care oferă diferite grade de abstractizare.
Fig. 7 Etapele de recunoaștere a unui obiect [19].
Termenul “deep” se referă la numărul de straturi prin care circulă datele. Mai exact, sistemele de învățare profundă au o “adâncime” semnificativă a căilor de alocare a creditelor “ CAP-Credit Assignment Paths”. Acestea reprezintă un lanț pe parcursul căruia intrările se deplasează spre ieșire.
Căile descriu potențiale conexiuni cauzale dintre intrări și ieșiri. Pentru o rețea neurală “feedforward”, adâncimea căilor de alocare este egală cu cea a rețelelor, care reprezintă numărul de nivele ascunse “+” stratul de ieșire( L+1, L- numărul de nivele ascunse).
Iar pentru cele recurente, în care un semnal se propagă de mai multe ori printr-un strat, adâncimea căilor este potențial nelimitată. Căile de alocare a creditelor au adâncimea egală cu 2 și s-a dovedit că pot emula orice funcție. Pe lângă acest fapt, mai multe straturi nu includ în funcție capacitatea de aproximare a rețelei. Scopul straturilor suplimentare ajută la studierea caracteristicilor.
Pentru însărcinările supravegheate, metodele de învățare profundă evită ingineria trăsăturilor, transformând datele în reprezentări intermediare compacte, similare cu principalele componente și derivând stucturi stratificate care elimină redundanța în reprezentare.
Algoritmele “Deep Learning” pot fi aplicate și însărcinărilor nesupravegheate, ceea ce constituie un avantaj important, deoarece datele neetichetate depășesc numărul celor etichetate. Sunt date drept exemple de structuri profunde ce pot fi antrenate într-o manieră nesupravegheată compresoarele istorice neurale(“neural history compressors”) și rețele de convingeri profunde („deep belief networks”).
După cum a descris Andrej Karpathy, Senior Director al “AI” Tesla, există în general “4 clase de factori care împiedică dezvoltarea IA:
“Compute” ( Legea lui Moore, Unități de procesare grafică (GPUs-Graphic Processor Units), Circuit integrat specific aplicației (ASICs- Applicaton-specific integrated circuit);
Date (ImageNet);
Algoritmi (propagare inversă -“backpropagation”), Rețeaua neurală convoluțională (“CNN-Convolutional Neural Networks”), “ LSTM- Long Short-Term Memory”;
Infrastructura (software-ul susține Linux, Protocol de control al transmisiei (TCP- Transmission Control Protocol”, Protocolul de Internet „IP- Internet Protocol”, Git, ROS, PR2, AWS-Amazon Web Services, AMT, TensorFlow, etc.) „ 2016
În ultimul deceniu întregul potențial al învățării profunde a fost generat de progresele înregistrate în (1) și (2), ceea ce la rândul său a dus la descoperiri noi in (3) și (4), cu un număr, ce a crescut exponențial, de oameni care se întrec în cursa de cercetare.
2.1 Aplicații
“Deep Learning” poate fi aplicată aproape în fiecare domeniu, pentru a crea condiții actuale optime civilizației contemporane. În ciuda acestor provocări, descoperirile actuale în industriile de proiectare a cipurilor se realizează pe platforme “hardware”, cum ar fi GPU-urile Nvidia Volta, procesoarele I-Core de la Intel, TPU-urile de noua generație de la Google și stații de lucru Apple. Toate aceste dispozitive sunt acum capabile să preia provocările complexe ale IA și șă perfecționeze aplicațiile existente, precum: planificarea unui oraș, construirea clădirilor, proiectarea vehiculelor aeriene fără pilot, dezvoltarea mașinilor care să recunoască emoțiile omenești. Aceasta va deschide noi oportunități de afaceri ce va genera un schimb de roluri în economia modială.
Google a declarat că algoritmii de recunoaștere a imaginii utilizați în produsele lor sunt mai buni decât capacitatea umană. Produsul nou “Google Lens” are capacitatea unui simț vizual, care detectează obiectele din imagine și furnizează informații legate de ele.
De asemenea, Google abordează “Deep Learning” pe o gamă largă de discipline:
Sănătate- folosind la diagnosticarea cancerului mamar;
Biologie- precizia de detectare a unei boli genetice prin secvențierea ADN-ului;
Chimie- pentru a anticipa proprietățile moleculelor; [20].
“Deep Learning” face posibilă accesarea datelor care anterior nu au putut fi analizate; permite companiilor să creeze modele predictive la un nivel de calitate și sofisticare fără precedent și îmbunătățește funcționarea/gestionarea, generând noi oportunități de produse și servicii, cum ar fi:
Departamentul de suport al clienților din cadrul companiei Uber s-a dezvoltat foarte rapid datorită învățării profunde.
Huawei creează facilități de învățare impresionantă a datelor și echipamentelor de învățare a mașinilor, numit Laboratorul “Arca lui Noe”, care se concentrează asupra procesului de învățare profundă pentru prelucrarea limbajului natural, soluții bancare inteligente, recomandări pentru aplicații și motoare de căutare etc.
PayPal fiind una din cele mai bune din clasa sa, folosește învățarea profundă ca parte a abordării de stopare a plăților frauduloase și are ca rezultat reducerea ratei de alarmă falsă [21].
2.2 Detecția Obiectelor
Detectarea obiectelor constituie o tehnică de vizionare pe calculator pentru a efectua localizarea instanțelor care aparțin obiectelor din imagine sau secvențe video.
Cand omul privește o imagine sau un video, este în stare să recunoască și să localizeze obiectele de interes într-un timp relativ scurt. Scopul detecției obiectelor este de a reproduce această inteligență, utilizând un computer. Putem distinge trei tipuri de sarcini de vizionare pe calculator: a) clasificarea imaginilor, b) localizarea obiectelor, c) detecția obiectelor.
Fig. 8 Prezentarea generală a recunoașterii obiectelor [22].
Detectarea obiectelor este o tehnologie cheie în spatele sistemelor avansate de asistență a șoferilor care permit autoturismelor să detecteze căile de rulare sau să efectueze detectarea pietonilor pentru îmbunătățirea
siguranței rutiere. Tehnica respectivă este de folos în aplicații cum ar fi sistemele de supraveghere video sau de recuperare a imaginilor.
Fig.9 Utilizarea detecției obiectelor pentru identificarea și localizarea vehiculelor [23].
Detecția obiectelor – termen general pentru a descrie o colecție de sarcini legate de vizionarea informatică care implică identificarea obiectelor în fotografii digitale. Acesta localizează obiectele prezente cu o casetă de încadrare, sub formă dreptunghiulară. La intrare avem o imagine cu unul sau mai multe obiecte, cum ar fi o fotografie, iar la ieșire una sau mai multe casete delimitate ( de ex. definite pe un punct, lățime și înălțime) și o etichetă de clasă pentru fiecare casetă delimitată [24].
Noile capacități deosebit de puternice ale tehnologiilor digitale permit automatizarea mai multor sarcini și ocupații (de exemplu autovehiculul autonom), se bazează pe învățarea profundă pentru a realiza sarcina de observator vizual cu detectarea benzilor, înțelegerea semnelor rutiere și recunoașterea obstacolelor.
Fig. 10 Detecția pietonilor [25].
„Deep Learning” poate fi folosit chiar și în artă: cu ajutorul unui „tool” care se numește stil neural se poate imita stilul unui artist.
Fig. 11 Rezultatul aplicării rețelelor de tip „Deep Learning” și a stilului neural la o imagine [26].
Câteva exemple de probleme rezolvate din domeniul viziunii pe calculator cu învățare profundă sunt cele de clasificare a imaginilor( ține de recunoaștere) și detectare a obiectelor. Dacă am construi o mașină capabilă să conducă fără șofer, trebuie să ținem cont de distanța dintre aceasta și celelalte autoturisme din traficul rutier, astfel încât să evităm eventualele accidente.
Unele dintre provocările și întrebările la care va trebui să raspundem atunci când rețelele de tip “Deep Learning” se folosesc în cadrul unei mașini autonome sunt:
Preocupările privind securitatea informatică a vehiculelor- autoturismele vor fi vulnerabile la atacurile cibernetice?
Funcționarea în diverse situații:
a. condiții meteo instabile (zăpadă, ploaie);
b. condiții diferite de iluminare, umbre și reflexii false;
c. comportament pietonal imprevizibil;
d. gropi în asfalt
Precizie necesară la măsurarea vitezei altor vehicule sau obiecte de pe șosea
Timp de reacție necesar atunci când se confruntă cu situații imprevizibile
Necesitatea (sau nu) intervenției a sistemului în caz de ciocnire sau accident
Reacția sistemului la un eveniment necunoscut, respectiv timpul de decizie crește
În timpul antrenării, algoritmul de învățare ajustează parametrii rețelei pentru a converti imaginile drumului către comenzile de unghi al volanului, care sunt necesare ca mașina să se încadreze în trafic. Odată ce antrenamentul este finalizat, performanța rețelei poate fi evaluată cu un set de date de testare și evaluare.Înainte de a implementa rețeaua in vehicul, se creează un model de date într-un mediu de simulare al calculatorului care rulează în timp real.
Fig.12 Încadrarea mașinii autonome în banda de circulație
Obiectele detectate sunt luate într-un dreptunghi, fiind indicat ca imaginile utilizate la intrare să fie de dimensiuni mari. Va fi necesar suportul operației de convoluție, care este unul din blocurile fundamentale ale rețelelor neurale convoluționale (ConvNet-Convolutional Networks). Într-un “ConvNet” tipic, există de obicei trei tipuri de straturi. Un strat este convoluțional și se va denumi strat Conv. Există încă două straturi comune , stratul de “pooling”, adesea numit piscină, iar ultimul- strat complet conectat (FC-Fully Conected).
Învățarea profundă a rețelelor neurale nu are capacitatea de a trage concluzii din fapte, dovezi și cunoștințe disponibile, cum o fac oamenii. Nu există metode analitice pentru alegerea arhitecturii optime a rețelei. Sunt necesare cunoștințe de specialitate pentru a selecta manual arhitectura rețelei (numărul de straturi, neuronii din fiecare strat și funcțiile de activare). Aceasta necesită o mulțime de setări ale parametrilor, cum ar fi: rata de învățare, funcția de pierdere, numărul de iterații de instruire etc. Arhitectura rețelei nu este flexibilă, odată ce arhitectura rețelei este selectată, dimensiunea rețelei este fixă și tot ce putem face este o să reantrenăm.
În timpul antrenării rețelei neurale, metoda de optimizare ar putea fi blocată într-un minim local. Nu se cunoaște cu exactitate ce se întâmplă cu datele de intrare la parcurgerea prin fiecare dintre straturi.
Chiar dacă am enumerat o multitudine de avantaje la utilizarea acestui tip de rețele, există și puncte slabe, care țin să fie evaluate și remediate în viitoarea activitatea de cercetare:
“Deep Learning” necesită un număr foarte mare de date
Rețelele neurale nu sunt “ ucenici sârguincioși”
În plus, cantitatea mare de date necesită “supraveghere” sub formă de etichete, pentru a obține rezultate mai bune decât algoritmii tradiționali de învățare a mașinilor.
Numărul de date aplicat depinde de tipul problemei, de metoda de rezolvare a acesteia, de numărul de clase (categorii din detul de date) și de arhitectura (numărul de straturi) rețelei. Dacă nu folosim cantitatea necesară de date pentru etapa inițială de antrenare, rețeaua ar putea suferi una din două probleme: “underfitting” sau overfitting”.
Primul caz apare atunci când un model de “Machine Learning” nu este destul de complex ca să captureze cu acuratețe relațiile dintre caracteristicile setului de date și o variabilă țintă. Intuitiv, ea apare atunci când algoritmul nu poate să potrivească datele destul de bine, altfel spus, apare la variație scăzută și “bias“ crescut. Iar cel de-al doilea caz presupune o eroare de modelare care apare atunci când o funcție se potrivește “prea mult” cu un set de date.
În ultimii ani s-au înregistrat multe progrese în cercetarea profundă a învățării, iar acest proces a readus interesul către tehnologia și beneficiile potențiale ale aplicării sale asupra vehiculelor autonome. Agitația a atins un nivel atât de mare încât unele companii au prezis un vehicul complet automatizat care ar putea fi disponibil în următorii ani.
Însă aceste predicții inițial efectuate nu au fost destul de exacte, deoarece au subestimat provocările care trebuiesc atinse înainte ca tehnologia să poată fi implementată în siguranță în mașini. În ciuda acestor probleme, este de așteptat ca progresul în cercetarea învățării profunde să continue, determinat de avantajele imense pe care tehnologia le oferă nu numai autoturismelor, ci și îmbunătățirii sistemelor de evitare a accidentelor.
Pe lângă aplicațiile auto, există și alte aplicații care vor beneficia sau care deja beneficiază de progresele înregistrate:
Posibilitatea de a prognoza bioactivitatea moleculei pentru descoperirea noilor medicamente
Recunoașterea feței și a obiectelor din video sau fotografii prin etichetare
Eficientizarea rezultatelor la motorului de căutare Google
Înțelegerea și generarea limbajului natural, de exemplu “Google Translate”
Robotul care explorează planeta Marte selectează în mod autonom inspectarea obiectivelor terestre (solul), pe baza examinărilor vizuale
2.2.1 Detecția obiectelor utilizând “Deep Learning”
Pentru a efectua detectarea obiectelor se pot aplica o varietate de tehnici. Abordările fundamentale ale învățării profunde folosesc rețele neurale convoluționale (CNN), cum ar fi R-CNN și YOLO v2, care învață detectarea automată a obiectelor din imagine. Avem la dispoziție două abordări-cheie pentru a realiza detecția obiectelor folosind rețele neurale de tip “Deep Learning”:
Putem crea și antrena un detector de obiect particularizat. Pentru a instrui un detector de la zero, trebuie proiectată o arhitectură de rețea pentru a afla caracteristicile obiectelor de interes. De asemenea, antrenarea rețelei convoluționale CNN va presupune compilarea unui set foarte mare de date etichetate. Rezultatele unui detector obișnuit sunt bune, dar pentru o și mai mare precizie se vor configura manual straturile și greutățile din rețea, ce va necesita mult timp și date de antrenament.
Putem utiliza un detector instruit în prealabil. Această abordare permite să lucrăm cu o rețea antrenată anterior, ce economisește timp și permite finalizarea rapidă a aplicației dorite. Această metodă oferă rezultate mai rapide, deoarece obiectele au fost deja instruite pe mii sau chiar milioane de imagini.
Tabel 1. Rețele Neurale Pre-instruite [27].
Rețele în două etape: Stadiul inițial al rețelelor în două etape, cum ar fi R-CNN și variantele sale, identifică propunerile regionale sau sub-seturile imaginii care ar putea conține unul sau mai multe obiecte. A doua etapă constă în clasificarea obiectelor din cadrul regiunii propuse. Rețelele în două etape pot arăta rezultate foarte precise de detectare a obiectului. Dezavantajul acestora față de cele intr-o singură etapă este faptul că sunt mai lente.
Fig. 13 Arhitectură R-CNN și Fast R-CNN de nivel înalt pentru detecția obiectelor
Rețele într-o singură etapă: În rețele de acest tip, cum ar fi YOLO v2, rețeaua CNN poate prezice din întreaga imagine, folosind casete de delimitare. Predicțiile sunt decodificate pentru a genera dreptunghiurile finale ale obiectelor depistate. Acest tip de rețele sunt mai rapide decât celelalte, însă au o precizie mai mică, în special în cazul obiectelor de dimensiuni mici.
Fig. 14 Prezentare generală a detecției obiectelor cu ajutorul YOLO v2
Rețelele de detectare a obiectelor folosind YOLO conțin două sub-rețele: o rețea de extragere a particularităților, urmată de una de detectare. Rețeaua de extracție a trăsăturilor este de obicei un CNN preîncărcat. Acest exemplu utilizează ResNet-50. Alte rețele pre-selectate, cum ar fi MobileNet v2 sau ResNet-18, pot fi de asemenea utilizate în funcție de cerințele aplicației. Sub-rețeaua este un CNN comparativ cu rețeaua de extracție
O altă metodă de detectare a obiectelor din imagine folosind o singură rețea neurală profundă este SSD-“Single Shot Detectors”. Această abordare presupune faptul că se ia doar o singură fotografie pentru a detecta mai multe obiecte din imagine, în timp ce rețeaua R-CNN necesită două fotografii, una pentru generarea propunerilor, iar a doua pentru obiectul fiecărei propuneri. Astfel, SSD este mult mai rapid comparativ cu abordările pe două nivele.
Fiecare imagine de antrenament este eșantionată aleatoriu în felul următor:
La intrare se aplică o imagine complet originală
Trebuie examinată o porțiune de imagine, astfel încât suprapunerea cu obiectele să fie egală cu 0.1, 0.3, 0.5, 0.9
Porțiunea este aleasă în mod aleatoriu
Mărimea fiecărei porțiuni eșantionate este de [0.1, 1] sau poate fi dimensiunea originală a imaginii, iar raportul de aspect este de la 0,5 la 2.
Indiferent dacă se alege prima sau a doua variantă, va trebui să se ia decizi asupra tipului de rețea de detectare a obiectului: una în două etape sau într-una singură.
2.3 Algoritmi de tip “Deep Learning” pentru detectarea obiectelor
Viziunea pe calculator este un domeniu care a câștigat o recunoaștere în ultimii ani, iar autoturismele autonome au devenit un punct de interes. O altă parte integrală a viziunii pe calculator o constituie detecția obiectelor.
Detectarea obiectelor ajută la estimarea poziției, detectarea vehiculelor, supravegherea securității etc. Diferența dintre algoritmii de detecție și cei de clasificare constă în faptul că la primul tip apare un dreptunghi în jurul obiectului de interes pentru a îl localiza în imagine. În cazul de detectare, ar putea exista mai multe casete de delimitare, reprezentând diferite obiecte de interes din imagine.
Fig. 16 Exemple de obiecte segmentate din setul de date COCO 2015, T.-Y.Lin și colab.
2.3.1 Criteriu de performanță (“Performance Metric”)
Problematica detecției obiectelor constă în faptul că se dorește realizarea concomitentă a două procese: regresie și clasificare.
Fig. 17 Instruirea rețelei CNN: clasificare ( funcția de pierdere) și regresie ( casetă de delimitare).
În primul rând, pentru a evalua precizia în spațiu, trebuie să scoatem casetele cu un grad scăzut de încredere (de obicei modelul emite mai multe dreptunghiuri decât numărul obiectelor reale). Apoi folosim zona IoU ( Intersection over Union), cu o valoare între 0 și1. Aceasta corespunde zonei suprapuse între caseta prevăzută și cea reală. Cu cât valoarea IoU este mai mare, cu atât este mai bună locația prevăzută a casetei pentru un obiect. În mod obișnuit se pun toate casetele cu un IoU mai mare de un anumit prag.
În clasificarea binară, valoarea medie a preciziei ( AP-Average Precision) este reprezentare a curbei de precizie ( precision-recall curve). Criteriul ce se utilizează frecvent pentru provocările detecției obiectelor se numește mAP ( mean Average Precision), ceea ce înseamnă media preciziilor medii calculate pe toate clasele. Criteriul mAP evită să aibă o specializare extremă în câteva clase și astfel are performanțe slabe în altele.
Rezultatul lui mAP este de obicei calculat pentru un IoU fix, dar un număr mare de casete de delimitare pot crește numărul casetelor-candidat ( candidate boxes). Ca o soluție a unei probleme, cercetătorii setului COCO au dezvoltat o parametru oficial pentru a evita generarea în plus a casetelor. Se calculează o medie a rezultatelor mAP pentru valori variabile ale IoU pentru a defavoriza un număr mare de cutii delimitate cu clasificări greșite.
2.4 Rețeaua Convoluțională bazată pe regiune ( “ R-CNN – Region-based Convolutional Network”)
Primele modele încep cu căutarea într-o regiune și apoi se efectuează clasificarea. În R-CNN, metoda de căutare selectivă dezvoltată de J.R.R. Uijlings și colab. în 2012 constituie o alternativă căutării exhaustive într-o imagine pentru a captura locația obiectului. Această metodă inițializează regiunile mici din imagine și le combină intr-o grupare ierarhică. Deci, gruparea finală prezintă o casetă care conține întreaga imagine. Regiunile detectate sunt îmbinate în funcție de o varietate de spații de culoare și parametri similari. Rezultatul de la ieșire este un număr mic de propuneri regionale care ar putea conține un obiect prin fuzionarea regiunilor mici.
Fig. 18 Aplicație de căutare selectivă: în partea de sus sunt vizualizate rezultatele segmentării algoritmului; iar în cea de jos vizualizarea propunerilor de regiune ale algoritmului. J.R.R. Uijlings și colab., 2012.
Modelul R-CNN (R.Girshick și colab., 2014) combină metoda de căutare selectivă pentru a detecta propunerile regionale și învățarea profundă pentru a afla localizarea obiectului din regiune. Fiecare propunere de regiune este redimensionată pentru a se potrivi cu introducerea unui CNN din care se extrage un vector de dimensiunea 4096 cu caracteristici. Vectorul de caracteristici este introdus în mai mulți clasificatori pentru a calcula probabilitatea de aparținere unei anumite clase. Fiecare dintre aceste clase are un clasificator SVM, (Support Vector Machine) instruit pentru a deduce o probabilitate de a detecta acest obiect pentru un vector dat de caracteristici. Acest vector, de asemenea, transmite valorile sale unui regresor liniar de adaptare a formelor casetele delimitate pentru o propunere de regiune și, astfel, pentru a reduce erorile de localizare.
Modelul CNN descris de autori este instruit pe setul de date ImageNet din 2012 al provocării inițiale ale clasificării imaginilor. Acesta este reglat fin cu ajutorul propunerilor regionale corespunzătoare unui IoU mai mare decât 0.5 cu ajutorul casetelor “ground-truth”. Sunt produse două versiuni, prima utilizează setul de date PASCAL VOC 2012, iar celălalt setul ImageNet 2013 cu casete delimitate. Clasificatorii SVM sunt, de asemenea, antrenați pentru fiecare clasă a setului de date.
Cele mai bune modele R-CNN au obținut un rezultat al mAP de 62,4 % față de setul de date de testare PASCAL VOC 2012 ( 22,0 puncte , crescând la al doilea cel mai bun rezultat din clasament) și un rezultat mAP de 31,4 % față de setul de date ImageNet 2012, cel de-al doilea cel mai bun rezultat.
Fig. 19 Rețea Convolutională pe regiuni (R-CN, J.Xu [28].
2.5 Rețeaua Convoluțională Rapidă bazată pe regiune (Fast R-CNN)
Scopul rețelei convoluționale rapide bazate pe regiune elaborat de R. Girshick în 2015 este de a reduce consumul de timp legat de numărul mare de modele necesare pentru a analiza toate propunerile regionale.
Un CNN principal, cu straturi convoluționale multiple, ia toată imaginea ca intrare în loc să utilizeze un rețea convoluțională pentru fiecare propunere de regiune ( R-CNN). Regiunea de insterese ( RoIs-Region of interests) este detectată prin metoda de căutare selectivă, aplicată pe hărțile de trăsături obținute. Mărimea hărților caracteristicilor este redusă folosind un strat de RoI ( Region of Interest) ” pooling” pentru a obține o regiune de interes validă cu o înălțime și lățime fixe ca hiperparametri. Fiecare strat al regiunii de interes alimentează straturi conectate în întregime ( FC-Fully Conected) și creează un vector de caracteristici. Vectorul este folosit pentru a presupune localizarea obiectului observat cu un clasificator “ softmax” și pentru a adapta localizările casetei de delimitare cu un regresor liniar.
Cele mai bune rețele rapide ( Fast R-CNN) au atins rezultatul de mAP de 70,0% pentru setul de date PASCAL VOC 2007, 68,8% pentru PASCAL VOC 2010 și 68,4% PASCAL VOC 2012.
Fig. 20 Imaginea folosită în modelul CNN pentru detectarea RoI pe hărțile caracteristicilor, J.Xu [28].
2.6 Rețeaua convoluțională bazată pe regiunea mai rapidă (Faster R-CNN)
Propunerile regionale detectate cu ajutorul metode de căutare selectivă au fost încă necesare în modelul anterior, ceea ce este computațional scump. S. Ren și colab. În 2016 au introdus Rețeaua de propuneri pentru a genera direct propuneri pentru regiuni ( RPN) pentru a estima locul cutiilor de marcare și de a detecta obiectele. Rețeaua convoluțională ( Faster R-CNN) este o combinație dintre RPN și Fast R-CNN.
Un model al CNN primește ca intrare întraga imagine și produce hărți ce conțin trăsături. O fereastră de dimensiunea 3×3 glisează toate hărțile cu caracteristici și dau la ieșire un vector de trăsături legat la cele două straturi de tip FC ( Fully Conected), unul pentru delimitarea casetelor și altul pentru clasificare. Propunerile de regiuni multiple sunt prezise de straturile conectate complet. Se stabilește un maxim de k regiuni, astfel ieșirea stratului de regresie pe casete are dimensiunea de 4k ( coordonatele casetelor, înălțimea și lățimea acestora) și ieșirea stratului de clasificare a casetei are mărimea de 2k ( rezultat ”obiectiv” pentru a detecta un obiect sau nu într-o casetă). Propunerile regiunii k detectate de fereastra de alunecare se numesc ancore.
Fig. 21 Detectarea casetelor de ancorare pentru o singură fereastră 3×3, S.Ren și colab. 2016.
Când sunt detectate casetele de ancorare, ele sunt selectate prin aplicarea unui prag peste rezultatul ”obiectiv” pentru a păstra numai casetele relevante. Aceste casete de ancorare și hărțile caracteristice calculate de modelul CNN inițial alimentează un model Fast R-CNN.
Faster R-CNN utilizează o rețea de tip RPN pentru a evita metoda selectivă de căutare, accelerează procesele de instruire și testare pentru îmbunătățirea performanțelor. RPN utilizează un model pre-antrenat peste setul de date ImageNet pentru clasificare și este fin reglat în setul PASCAL VOC. Apoi propunerile regionale generate cu ajutorul dreptunghiurilor cu ancore sunt folosite pentru a instrui Fast R-CNN. Acest proces este iterativ.
Cei mai buni algoritmi de tip Faster R-CNN a obținut un rezultat al mAP de 78,8% față de setul de date PASCAL VOC și 75,9% față de cel din 2012. Ei au fost instruiți cu seturile PASCAL VOC și COCO. Unul din aceste modele este de 34 de ori mai rapid decât algoritmul Fast R-CNN, folosind metoda de căutare selectivă.
Fig. 22 Imaginea alimentează în întregime un model CNN pentru a produce casete cu ancore ca propuneri de regiune cu scopul că acolo se află un obiect. Se utilizează metoda Fast R-CNN care determină probabilitățile de detectare a fiecărui obiect și de corecție asupra locației casetei. J.Xu [28].
Rețeaua Convoluțională R-FCN- Region-based Fully Convolutional Network
Metodologiile Fast și Faster R-CNN constau în detectarea propunerilor de regiune și recunoaștere a unui obiect în fiecare regiune. Rețeaua complet convolutivă bazată pe regiune R-FCN, lansată de J. Dai și colab. în 2016 este alcătuită doar din straturi convoluționale, permițând o propulsie completă pentru instruire și deducție. Autorii au îmbinat cei doi pași de bază într-un singur model pentru a ține cont simultan de detectarea obiectului ( poziția invariantă) și de amplasare spațială ( varianta de locație).
Un model ResNet-101 preia imaginea inițială la intrare. Ultimile straturi prezintă hărți cu trăsături, fiecare dintre acestea fiind specializată în detectare unei categorii la o locație anumită. De exemplu, o hartă a caracteristicilor este specializată în detectarea unei câine, alta a unui măr etc. Astfel de hărți se numesc ” position-sensitive score maps” deoarece țin cont de poziția spațială a unui obiect și numărul lor se calculează cu formula din k2( C+1), unde k este mărimea hărții și C- numărul de clase. Toate aceste hărți formează un “ score bank”. Practic se delimitează suprafețe care vor recunoaște o parte a unui obiect. De exemplu pentru k=3 putem recunoaște o arie 3×3 din întreagul obiect.
În paralel, se rulează un RPN pentru a genera regiunea de interes ( RoI). La final se înserează în casete fiecare RoI și se verifică în “ score bank”. Dacă sunt activate suficiente porțiuni atunci patch-ul se marchează cu “Yes” și obiectul este identificat.
Fig. 23 Imaginea de intrare transmisă modelului ResNet pentru a genera hărți de caracteristici. Un model RPN detectează regiunea de interese și se calculează un rezultat individual pentru a determina probabilitatea existenței obiectului, J. Dai și colab. 2016 [29].
J.Dai și colab. În 2016 au prezentat detaliat exemplul de mai jos. Cifrele arată reacția modelului R-RCN specializat în detecția unei persoane. Pentru o regiune de interes aflată în centrul imaginii, subregiunile din hărțile caracteristicilor sunt specifice modelele asociate unei persoane. Astfel se marchează cu “Yes” dacă există o persoană în acea locație. În figură RoI este deplasat spre dreapta și nu mai este centrat pe individ. Dacă în subregiuni nu se depistează persoana, atunci se indică ”No”.
Fig. 24 Vizualizarea cu modelul R-FCN ( k x k= 3×3) a unei persoane.
Fig. 25 Vizualizarea cu modelul R-FCN atunci când regiunea de interes RoI nu se suprapune cu obiectul, în cazul dat persoana [29].
Rezultatele atinse de modelele de tip R-FCN ale preciziei mAP sunt de 83,6% pentru setul de date PASCAL VOC 2007 și 82,0%, care au fost instruite cu setul PASCAL VOC 2012 și COCO. Setul de date test-dev COCO 2015 s-a obținut un rezultat de 53,2% pentru IoU =0.5 și un criteriu de precizie de 31,5%. Autorii au observat că algoritmul R-FCN este de 2,5-20 ori mai rapid decât omologul său R-CNN.
YOLO (You Only Look Once)
Algoritmul YOLO ( J.Redmon și alții, 2015) prezice direct casetele de delimitare și probabilitățile de aparținere la o anumită clasă cu o singură rețea și într-o singură etapă de evaluare. Simplitatea modelului respectiv permite funcționarea lui în timp real.
Inițial, modelul ia o imagine la intrare și suprapune o matrice de dimensiune SxS. Fiecare celulă din această rețea presupune amplasarea casetelor de delimitare B cu un rezultat de o anumită performanță. Aceasta constituie probabilitatea de a detecta obiectul ce se înmulțește cu parametrul IoU, ce arată intersecția dintre casetele prezise și cele reale.
Fig. 26 Exemplu de aplicare pentru modelul YOLO. Imaginea de intrare este împărțătă într-o rețea SxS, unde se prezice un număr de B casete (regresie) și o clasă este prezisă dintre cele C clase ( clasificare), J. Redmon și alții 2016 [30].
Rețeaua CNN folosită în algoritmul YOLO este inspirată de modelul GoogleNet, care a introdus modulele inițiale ( “ inception modules”). Această rețea este formată din 24 de straturi convoluționale, urmate de 2 straturi complet conectate ( FC). Straturile de diminuare ( reduction layers) cu filtre de dimensiune 1×1 sunt urmate de nivelele convoluționale de mărimea 3×3, înlocuiesc modulele inițiale de inițiere ( ” initial inception modules”).
Modelul Fast YOLO este o versiune mai mică, cu doar 9 straturi convoluționale și mai puține filtre. Majoritatea straturilor convoluționale sunt pre-instruite cu setul de date ImageNet întrebuințând funcția de clasificare. Patru nivele convoluționale, urmate de două straturi conectate complet sunt adăugate la rețeaua anterioară și sunt în întregime re-antrenate cu seturile PASCAL VOC 2007 și 2012.
Stratul final emite un tensor de dimensiunea S 2 ( C + B*5) corespunzător predicțiilor pentru fiecare celulă din rețea, unde C – numărul probabilităților estimate pentru fiecare clasă și B – numărul fix de casete cu ancoră per celulă, fiecare dintre acestea fiind asociată cu 4 coordonate ( coordonatele centrului cutiei, lățimea, înălțimea) și valoarea de încredere ( confidence value).
La modelele anterioare casetele de delimitare anticipate/prezise conțineau adesea un obiect. Modelul YOLO prezice un număr mare de dreptunghiuri, dar totuși există multe casete ce nu conțin un obiect.
Fig. 27 Arhitectura YOLO: compusă din 24 de straturi convoluționale și 2 complet conectate, J. Redmon și alții 2016
Metoda NMS ( Non-Maximum Suppression) se aplică la final, constând în combinarea/ fuziunea dreptunghiurilor aceluiași obiect într-unul singur. Autorii au observat că există încă câteva fals pozitive detectate ( few false positive detected.).
Modelul YOLO are un rezultat al preciziei mAP de 63,7 % față de setul de date PASCAL VOC 2007 și 57,9 % față de setul PASCAL VOC 2012. Modelul Fast YOLO are rezultate mai mici, dar împreună cu YOLO original dețin performanțe în timp real.
Fig. 28 Comparațe de viteză și performanțe. Rezultatele publicate corespund implementărilor lui J. Redmon și colab. 2016.
Modelul YOLO v2 se concentrează pe îmbunătățirea perciziei chiar dacă deja este un detector rapid. Se impune normalizarea “batch-ului” pentru a preveni suprasolicitarea și a evita abandonul. Imaginile cu rezoluție înaltă sunt acceptate la intrare ( modelul YOLO folosește imagini de 448×448, în timp ce YOLO v2 de 608×608), permițând astfel detectarea unor obiecte potențial mai mici.
Stratul final complet conectat al modelului YOLO care prezice coordonatele casetelor a fost îndepărtat pentru a utiliza cutii de ancorare în același mod ca și Faster CNN. Dimensiunea imaginii de intrare este redusă cu un “ grid” de celule, fiecare conținând 5 cutii de ancorare. YOLO v2 utilizează 19*19*5=1805 cutii de ancorare în loc de 98 de cutii ca la YOLO. YOLO v2 prezice corecția cutiei de ancorare în raport cu locația celulei rețelei ( intervalul este între 0 și 1) și selectează casetele în funcție de încrederea lor ca la modelul SSD. Dimensiunile dreptunghiurilor de ancorare au fost fixate folosind k -mijloace pe setul de antrenament de casete de delimitare.
SSD – Single-Shot Detector
Similar cu modelul YOLO, W. Liu și alții au dezvoltat în 2016 un detector SSD pentru a anticipa simultan casetele de delimitare și probabilitățile de aparținere unei clase, folosind o arhitectură CNN.
Modelul ia la intrare o imagine care trece prin mai multe straturi convoluționale cu filtre de diferite dimensiuni ( 10×10, 5×5, 3×3). Hărțile caracteristice din aceste straturi la diverse poziții din rețea sunt folosite la estimarea dreptunghiurilor. Acestea sunt procesate de nivele convoluționale specifice cu filtre 3×3 numite straturi de caracteristici suplimentare pentru a genera unset de casete asemănătoare cu cele de ancorare ale lui Fast R-CNN.
Fig. 30 Modelul SSD ia o imagine și casetele ei reale de delimitare. Mici seturi de cutii cu rație de aspect diferită sunt introduse în harta de trăsături( b și c). În timpul intruirii, poziția dreptunghiurilor se schimbă pentru a se potrivi cât mai bine cu cele reale, W. Liu 2016 [30] . Fig.31 Tipuri de clasificare, segmentare și detecare a obiectelor din imagine [30].
Tabel 2 Particularitățile metodelor R-FCN, YOLO și SSD.
Faster-R-CNN este mai competitiv decât SSD în ceea ce privește detecția obiectelor mici. Probabil acest lucru se datorează abordării care constă din două fotografii [31].
Capitolul 3. Detectorul RetinaNet
Detectorul RetinaNet este singura rețea compusă dintr-o rețea de bază ( “ backbone”) și două subrețele specifice unei anumite sarcini. Rețeaua principală este responsabilă pentru calcularea unei hărți de trăsături convoluționale peste o imagine de la intrare și este o rețea CNN generică.
Prima subrețea efectuează clasificarea convoluțională a obiectelor la ieșirea rețelei de bază, iar a doua subrețea efectuează o regresie convoluțională a casetei de deliminare. Cele două subrețele dispun de un design simplu care detectează obiectele într-o singură etapă. Majoritatea parametrilor de proiectare nu sunt deosebit de sensibili la valorile exacte, asa cum se observă din experimente.
Fig. 32 Arhitectura Detectorului RetinaNet [32].
Arhitectura de rețea RetinaNet este compusă din:
ResNet este utilizat pentru extrac’ia de caractere profunde.
FPN ( Feature Pyramid Network) este utilizat în partea de sus a ResNet pentru a construi o piramidă multidimensională, în mai multe straturi convoluționale, cu o singură imagine la intrare. Inițial FPN este un detector în două etape, care are rezultate de ultimă oră.
Subrețeaua c este responsabilă pentru clasificarea casetelor de ancorare.
Subrețeaua d este pentru regresarea dintre casetele de ancoră și cele reale.
Designul rețelei este creat intenționat unul simplu, ceea ce permite ca această lucrare să se concentreze asupra unei noi funcții de pierdere focală care elimină diferența de precizie dintre detectorul respectiv într-o singură etapă și cele de ultimă generație, cum ar fi Faster R-CNN și FPN, în timp ce rulează la viteze mari.
Următoarele grafice descriu analiza comparativă a performanțelor algoritmilor prezentați mai sus.
Grafic 1 Analiza comparativă a performanțelor algoritmilor R-FCN, Faster R-CNN, SSD
Grafic 2 Analiza comparativă a performanțelor algoritmilor R-CNN, Fast R-CNN, Faster R-CNN, SS512 care sunt mult inferioare lui YOLO v2.
Grafic 3 Analiza comparativă a performanțelor algoritmilor după precizie și timp. Se observă că cel mai avantajos este YOLO v3-320.
Capitolul 4. Rezultate experimentale
Seturi de date existente:
1. Setul de date “PASCAL VOC ( PASCAL Visual Object Classification)” este unul bine cunoscut pentru detectarea obiectelor. Au fost 8 provocări care au durat din 2005 până în 2012, fiecare având propriile particularități. Acest set conține aproximativ 10 000 de imagini pentru instruire care conțin casete de delimitare ale obiectelor. Deși setul PASCAL VOC conține doar 20 de categorii, este în continuare considerat unul de referință în problema detecției obiectelor.
2. ImageNet a lansat un set de date pentru detecția obiectelor, cu casete, în anul 2013. Setul de este compus din aproximativ 500 000 de imagini numai pentru antrenare și 200 de categorii. În practică se întrebuințează rar, deoarece dimensiunea setului de date necesită o putere de calcul importantă pentru instruire. De asemenea, numărul mare de clase complică sarcina de recunoaștere a obiectului.
3. Pe de altă parte, setul de obiecte comune din context (COCO) a fost dezvoltat de Microsoft și detaliat de T.-Y. Lin și colab., în 2015. Acest set de date este folosit pentru multiple probleme: “caption generation”, detectarea obiectelor, detectarea punctelor cheie și segmentarea obiectelor. Provocările setului respectiv constau în localizarea obiectelor într-o imagine cu ajutorul casetelor de delimitare și clasificarea fiecăruia în unul din cele 80 de categorii. Setul de date se schimbă în fiecare an, dar de obicei este compus din mai mult de 120 000 de imagini pentru instuire și mai multe de 40 000 de imagini pentru testare. Setul de date pentru testare a fost recent divizat în setul test-dev pentru cercetători și ceș pentru comerț. Ambele seturi au note etichetate atașate, dar nu sunt disponibile public pentru a evita suprasolicitarea setului de testare.
4. CIFAR-10 este un set de date utilizat pe scară largă pentru evaluarea performanțelor tehnice a algoritmilor de viziune pe calculator în domeniul “Machine Learning”. Performanța superioară este atinsă la utilizarea rețelelor convoluționale de tip “ Deep Learning” cu o precizie de clasificare de peste 90 % din setul de date de testare. Acest set are ca intrare fotografii de dimensiuni mici, dar este eficient și poate fi utilizar ca bază pentru antrenare, dezvoltare, evaluare și utilizează rețele neurale convoluționale de tip “ Deep Learning” pentru clasificarea imaginilor. [33]
Fig. 32 Rezultatele detectate cu ajutorul setului de date COCO [34].
Fig. 32 Exemple cu imagini din setul de date CIFAR-10
Fig. 33 Detecția semnului de circulație la distanță cu ajutorul setului de date CIFAR-10
Fig. 34 Detecția semnului de circulație din alt unghi, cu ajutorul setului de date CIFAR-10
Fig. 35 Rezultat experimental la rularea modelului Faster R-CNN. Detecția obiectului s-a realizat cu o IoU de 0,9979
Fig. 36 Rezultat experimental la rularea Faster R-CNN
Grafic 4. Valoarea preciziei medii pentru Fig. 36.
Detecția obiectului s-a realizat cu precizia AP= 0.65
Fig. 38 Rezultat experimental la rularea modelului Faster R-CNN. Detecția obiectului s-a realizat cu IoU=1
Fig. 39 Rezultat experimental obținut la rularea algoritmului SSD. În cazul dat avem detecție multiplă care s-s realizat cu IoU=0.99 în ambele cazuri.
Fig. 40 Rezultat obținut la rularea YOLO v2 [35].
Concluzii
Conferințele anuale care au avut loc în mediul academic, dar și cel comercial asupra viziunii pe calculator au fost locul unde s-au descoperit noi concepte radicale despre performanța IA. Datorită evoluției cercetărilor din domeniul IA, respectiv și a celor afiliate, s-au introdus numeroase aplicații ale rețelelor neurale în producție.
Învățarea profundă este cea mai recentă “ armă” specială împotriva unor probleme extrem de provocatoare. În primul rând, aceasta folosește un set de date asociat, în conformitate cu criteriul de performanță, iar în al doilea rând, arhitectura implementată trebuie să fie una puternică pentru a putea construi o inteligență artificială generală.
Detecția obiectelor cu ajutorul rețelelor de tip “ Deep Learning” constituie un câmp interesant și rapid de dezvoltare. La baza acestei posibilități stau o mulțime de sub-domenii, fiecare explorând și realizând propria funcționalitate, promulgând învățarea profundă spre direcții vaste.
În urma studiilor efectuate și a documentațiilor lecturate, pot afirma că acest domeniu de Inteligență Artificială este unul complex, ce conține numeroase discipline interrelaționiste, cu o structură variată și surprinzătoare care reflectă profunzimea umană. Încă nu avem o experiență bogată profesională și socială în utilizarea rețelelor neurale și a învățării profunde, dar cred că în decurs de câteva decenii această tehnică puternică a cărei limite încă nu au fost găsite va rezolva problemele fundamentale.
BIBLIOGRAFIE
[1]https://mse238blog.stanford.edu/2017/07/ramdev10/new-product-breakthroughs-with-recent-advances-in-deep-learning-and-future-business-opportunities/
[2]https://www.stiintaonline.ro/inteligenta-artificiala-ce-este-si-cum-functioneaza/
[3] Kaplan Andreas; Michael Haenlein (2018) Siri, Siri in my Hand, who's the Fairest in the Land? On the Interpretations, Illustrations and Implications of Artificial Intelligence, Business Horizons, 62(1) https://www.sciencedirect.com/science/article/pii/S0007681318301393
[4]https://ro.wikipedia.org/wiki/Inteligen%C8%9B%C4%83_artificial%C4%83
[5] https://mc.ai/classifying-cats-and-dogs-images-using-transfer-learning-in-convolutional-neural-networks/
[6]https://www.sas.com/en_us/solutions/ai/believe-in-humans.html
[7]https://mse238blog.stanford.edu/2017/07/ramdev10/new-product-breakthroughs-with-recent-advances-in-deep-learning-and-future-business-opportunities/
[8] https://www.linkedin.com/pulse/ai-machine-learning-evolution-differences-connections-kapil-tandon/
[9]https://www.sas.com/en_us/explore/analytics-in-action/impact/wildtrack.html
[10] https://news.sophos.com/en-us/2017/09/21/man-vs-machine-comparing-artificial-and-biological-neural-networks/
[11] Ciocoiu Iulian, Rețele neurale artificiale, Capitolul 1 și 2
[12]https://www.kaleidoinsights.com/impact-analysis-business-impacts-of-deep-learning/
[13]https://www.slideshare.net/FlorinLeon/retele-neuronale-profunde
[14]https://www.sas.com/en_us/insights/analytics/neuralnetworks.html?fbclid=IwAR3Ycut1YqelYJi5YmMqn9jO7lgALlDBv8mhpRo_Apbtgfr5b8mtQtvMIQA
[15]http://neuralnetworksanddeeplearning.com/chap1.html
[16]https://www.slideshare.net/FlorinLeon/retele-neuronale-profunde
[17] http://deeplearning.cs.cmu.edu/
[18]https://datascience.stackexchange.com/questions/45774/where-does-the-deep-learning-needs-big-data-rule-come-from
[19] https://mapr.com/blog/artificial-intelligence-and-machine-learning-what-are-they-and-why-are-they-important/
[20]https://mse238blog.stanford.edu/2017/07/ramdev10/new-product-breakthroughs-with-recent-advances-in-deep-learning-and-future-business-opportunities/
[21] https://callminer.com/blog/smart-implementation-machine-learning-ai-data-analysis-50-examples-use-cases-insights-leveraging-ai-ml-data-analytics/
[22]https://machinelearningmastery.com/object-recognition-with-deep-learning/
[23]https://www.mathworks.com/discovery/object-detection.html
[24] https://www.nvidia.com/fr-fr/self-driving-cars/adas/
[25]https://machinelearningmastery.com/object-recognition-with-deep-learning/
[26]http://gbshemir.blogspot.com/2016/10/we-were-looking-at-abstract-pictures.html
[27]https://www.mathworks.com/help/deeplearning/ug/pretrained-convolutional-neural-networks.html
[28]http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture11.pdf
[29] https://arxiv.org/pdf/1605.06409.pdf
[30] https://medium.com/zylapp/review-of-deep-learning-algorithms-for-object-detection-c1f3d437b852
[31] https://towardsdatascience.com/review-ssd-single-shot-detector-object-detection-851a94607d11
[32] https://arxiv.org/abs/1708.02002
[33]https://www.cs.toronto.edu/~kriz/cifar.html
[34] https://arxiv.org/abs/1512.02325
[35] https://towardsdatascience.com/yolov2-object-detection-using-darkflow-83db6aa5cf5
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: O ramură inovatoare a informaticii, care a înregistrat o dezvoltare substanțială este cea a Inteligenței Artificiale (AI-“Artificial Intelligence”)…. [301847] (ID: 301847)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
