Fundamentele AI

Ce sunt CNN-urile (Rețele Neurale Convolutive)?

mm
Adaugă Unite.AI la sursele tale preferate pe Google

Poate v-ați ÃŪntrebat vreodată cum reușesc Facebook (META ) sau Instagram să recunoascăă automat fețele dintr-o imagine sau cum permite Google (GOOGL ) să căutați pe web imagini similare doar prin ÃŪncărcarea unei imagini proprii. Aceste funcții sunt exemple de viziune computerizată și sunt alimentate de rețele neurale convolutive (CNN). Dar ce sunt, de fapt, rețelele neurale convolutive? Să facem o analiză aprofundată a arhitecturii unei CNN și să ÃŪnțelegem cum funcționează.

Ce sunt Rețelele Neurale?

Înainte de a ÃŪncepe să discutăm despre rețelele neurale convolutive, să definim mai ÃŪntÃĒi rețeaua neurală obișnuită. Există un alt articol pe tema rețelelor neurale, așa că nu vom intra prea mult ÃŪn detalii aici. Cu toate acestea, pentru a le defini pe scurt, acestea sunt modele computaționale inspirate de creierul uman. O rețea neurală funcționează prin preluarea datelor și manipularea lor prin ajustarea “greutăților”, care sunt ipoteze despre cum sunt legate caracteristicile de intrare de clasa obiectului. Pe măsură ce rețeaua este antrenată, valorile greutăților sunt ajustate și, ÃŪn cele din urmă, ar trebui să converge către greutăți care captează cu acuratețe relațiile dintre caracteristici.

Acesta este modul ÃŪn care funcționează o rețea neurală feed-forward, iar CNN-urile sunt compuse din două părți: o rețea neurală feed-forward și un grup de straturi convolutive.

Ce sunt Rețelele Neurale Convolutive (CNN)?

Ce sunt “convoluțiile” care au loc ÃŪntr-o rețea neurală convolutivă? O convoluție este o operație matematică care creează un set de greutăți, creÃĒnd, ÃŪn esență, o reprezentare a părților imaginii. Acest set de greutăți se numește nucleu sau filtru. Filtrul creat este mai mic decÃĒt imaginea de intrare ÃŪn ÃŪntregime, acoperind doar o subsecțiune a imaginii. Valorile din filtru sunt ÃŪnmulțite cu valorile din imagine. Filtrul este apoi mutat pentru a forma o reprezentare a unei noi părți a imaginii, și procesul este repetat pÃĒnă cÃĒnd ÃŪntreaga imagine a fost acoperită.

O altă modalitate de a gÃĒndi despre acest lucru este să imaginați un zid de cărămizi, cu cărămizile reprezentÃĒnd pixelii din imaginea de intrare. O “fereastră” este trasă ÃŪnainte și ÃŪnapoi de-a lungul zidului, care este filtrul. Cărămizile care pot fi văzute prin fereastră sunt pixelii ai căror valori sunt ÃŪnmulțite cu valorile din filtru. Din acest motiv, această metodă de creare a greutăților cu un filtru este adesea numită tehnica “ferestrelor alunecătoare”.

Ieșirea din filtrele mutate pe toată imaginea de intrare este o matrice bidimensională care reprezintă ÃŪntreaga imagine. Această matrice se numește “hartă de caracteristici”.

De ce Convoluțiile sunt Esențiale

Care este scopul creării convoluțiilor, oricum? Convoluțiile sunt necesare pentru că o rețea neurală trebuie să poată interpreta pixelii dintr-o imagine ca valori numerice. Funcția straturilor convolutive este de a converti imaginea ÃŪn valori numerice pe care rețeaua neurală le poate interpreta și, ulterior, extrage tipare relevante din ele. Rolul filtrelor din rețeaua convolutivă este de a crea o matrice bidimensională de valori care poate fi transmisă ÃŪn straturile ulterioare ale rețelei neurale, care vor ÃŪnvăța tiparele din imagine.

Filtre și Canale

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

CNN-urile nu folosesc doar un filtru pentru a ÃŪnvăța tipare din imaginile de intrare. Se folosesc filtre multiple, deoarece matricele diferite create de filtre diferite conduc la o reprezentare mai complexă și mai bogată a imaginii de intrare. Numerele comune de filtre pentru CNN-uri sunt 32, 64, 128 și 512. Cu cÃĒt sunt mai multe filtre, cu atÃĒt mai multe oportunități are CNN-ul de a examina datele de intrare și de a ÃŪnvăța din ele.

O CNN analizează diferențele ÃŪn valorile pixelilor pentru a determina marginile obiectelor. Într-o imagine ÃŪn tonuri de gri, CNN-ul ar urmări doar diferențele dintre negru și alb, de la lumină la ÃŪntuneric. CÃĒnd imaginile sunt imagini color, nu numai că CNN-ul ia ÃŪn considerare ÃŪntunericul și lumina, dar trebuie să ia ÃŪn considerare și cele trei canale de culoare – roșu, verde și albastru. În acest caz, filtrele posedă 3 canale, la fel ca imaginea ÃŪnsăși. Numărul de canale pe care ÃŪl are un filtru se numește adÃĒncimea acestuia, și numărul de canale din filtru trebuie să se potrivească cu numărul de canale din imagine.

Arhitectura Rețelei Neurale Convolutive (CNN)

Să aruncăm o privire asupra arhitecturii complete a unei rețele neurale convolutive. Un strat convolutiv se găsește la ÃŪnceputul fiecărei rețele convolutive, deoarece este necesar să se transforme datele imaginii ÃŪn matrice numerice. Cu toate acestea, straturile convolutive pot apărea și după alte straturi convolutive, ceea ce ÃŪnseamnă că aceste straturi pot fi suprapuse unele peste altele. A avea multiple straturi convolutive ÃŪnseamnă că ieșirile dintr-un strat pot suferi convoluții suplimentare și pot fi grupate ÃŪn tipare relevante. În practică, acest lucru ÃŪnseamnă că, pe măsură ce datele imaginii trec prin straturile convolutive, rețeaua ÃŪncepe să “recunoască” caracteristici mai complexe ale imaginii.

Straturile inițiale ale unei rețele convolutive sunt responsabile pentru extragerea caracteristicilor de nivel scăzut, cum ar fi pixelii care alcătuiesc linii simple. Straturile ulterioare ale rețelei convolutive vor combina aceste linii ÃŪn forme. Acest proces de trecere de la o analiză de suprafață la o analiză ÃŪn profunzime continuă pÃĒnă cÃĒnd rețeaua convolutivă recunoaște forme complexe, cum ar fi animale, fețe umane și mașini.

După ce datele au trecut prin toate straturile convolutive, ele intră ÃŪn partea conectată dens a CNN-ului. Straturile conectate dens sunt ceea ce arată ca o rețea neurală feed-forward tradițională, o serie de noduri dispuse ÃŪn straturi care sunt conectate unele cu altele. Datele trec prin aceste straturi conectate dens, care ÃŪnvață tiparele extrase de straturile convolutive, și, prin urmare, rețeaua devine capabilă să recunoască obiecte.

Blogger și programator cu specializări ÃŪn Machine Learning și Deep Learning subiecte. Daniel speră să ajute pe alții să folosească puterea inteligenței artificiale pentru binele social.