ciot Ce sunt CNN-urile (Rețelele neuronale convoluționale)? - Unite.AI
Conectează-te cu noi
Masterclass AI:

AI 101

Ce sunt CNN-urile (Rețelele neuronale convoluționale)?

mm
Actualizat on

Poate v-ați întrebat cum Facebook sau Instagram pot recunoaște automat fețele dintr-o imagine sau cum Google vă permite să căutați pe web fotografii similare doar prin încărcarea unei fotografii proprii. Aceste caracteristici sunt exemple de viziune computerizată și sunt alimentate de rețele neuronale convoluționale (CNN). Totuși, ce sunt exact rețelele neuronale convoluționale? Să aruncăm o privire profundă în arhitectura unui CNN și să înțelegem cum funcționează.

Ce sunt rețelele neuronale?

Înainte de a începe să vorbim despre rețelele neuronale convoluționale, să ne luăm un moment pentru a defini rețelele neuronale obișnuite. Există un alt articol pe tema rețelelor neuronale disponibile, așa că nu vom aprofunda prea mult în ele aici. Cu toate acestea, pentru a le defini pe scurt, acestea sunt modele computaționale inspirate de creierul uman. O rețea neuronală funcționează prin preluarea datelor și manipularea datelor prin ajustarea „greutăților”, care sunt ipoteze despre modul în care caracteristicile de intrare sunt legate între ele și clasa obiectului. Pe măsură ce rețeaua este antrenată, valorile ponderilor sunt ajustate și sperăm că vor converge către ponderi care surprind cu exactitate relațiile dintre caracteristici.

Acesta este modul în care funcționează o rețea neuronală feed-forward, iar CNN-urile sunt compuse din două jumătăți: o rețea neuronală feed-forward și un grup de straturi convoluționale.

Ce sunt rețelele neuronale de convoluție (CNN)?

Care sunt „convoluțiile” care se întâmplă într-o rețea neuronală convoluțională? O convoluție este o operație matematică care creează un set de greutăți, creând în esență o reprezentare a unor părți ale imaginii. Acest set de greutăți este denumit un nucleu sau un filtru. Filtrul care este creat este mai mic decât întreaga imagine de intrare, 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, iar procesul se repetă până când întreaga imagine a fost acoperită.

Un alt mod de a vă gândi la acest lucru este să vă imaginați un zid de cărămidă, cu cărămizile reprezentând pixelii din imaginea de intrare. O „fereastră” este glisată înainte și înapoi de-a lungul peretelui, care este filtrul. Cărămizile care pot fi vizualizate prin fereastră sunt pixelii care au valoarea înmulțită cu valorile din filtru. Din acest motiv, această metodă de a crea greutăți cu un filtru este adesea denumită tehnica „ferestre glisante”.

Ieșirea de la filtrele mutate în jurul întregii imagini de intrare este o matrice bidimensională reprezentând întreaga imagine. Această matrice se numește a „hartă caracteristică”.

De ce convoluțiile sunt esențiale

Oricum, care este scopul creării de circumvoluții? Convoluțiile sunt necesare deoarece o rețea neuronală trebuie să fie capabilă să interpreteze pixelii dintr-o imagine ca valori numerice. Funcția straturilor convoluționale este de a converti imaginea în valori numerice pe care rețeaua neuronală le poate interpreta și apoi extrage modele relevante. Sarcina filtrelor din rețeaua convoluțională este de a crea o matrice bidimensională de valori care pot fi trecute în straturile ulterioare ale unei rețele neuronale, cele care vor învăța modelele din imagine.

Filtre și canale

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

CNN-urile nu folosesc un singur filtru pentru a afla modele din imaginile de intrare. Sunt folosite mai multe filtre, deoarece diferitele matrice create de diferitele filtre conduc la o reprezentare mai complexă și mai bogată a imaginii de intrare. Numărul obișnuit de filtre pentru CNN-uri este 32, 64, 128 și 512. Cu cât există mai multe filtre, cu atât mai multe oportunități are CNN de a examina datele de intrare și de a învăța din acestea.

Un CNN analizează diferențele dintre valorile pixelilor pentru a determina marginile obiectelor. Într-o imagine în tonuri de gri, CNN ar analiza doar diferențele în termeni alb-negru, de la lumină la întuneric. Când imaginile sunt imagini color, CNN nu numai că ia în considerare întuneric și lumină, dar trebuie să ia în considerare și cele trei canale de culoare diferite - roșu, verde și albastru. În acest caz, filtrele posedă 3 canale, la fel ca imaginea în sine. Numărul de canale pe care le are un filtru este denumit adâncimea sa, iar numărul de canale din filtru trebuie să se potrivească cu numărul de canale din imagine.

Rețea neuronală convolutională (CNN) Arhitectură

Să aruncăm o privire la arhitectura completă a o rețea neuronală convoluțională. Un strat convoluțional se găsește la începutul fiecărei rețele convoluționale, deoarece este necesar să se transforme datele imaginii în rețele numerice. Cu toate acestea, straturile convoluționale pot veni și după alte straturi convoluționale, ceea ce înseamnă că aceste straturi pot fi stivuite unul peste altul. Având mai multe straturi convoluționale înseamnă că ieșirile dintr-un strat pot suferi convoluții ulterioare și pot fi grupate împreună în modele relevante. Practic, aceasta înseamnă că, pe măsură ce datele imaginii trec prin straturile convoluționale, rețeaua începe să „recunoaște” caracteristici mai complexe ale imaginii.

Straturile timpurii ale unui ConvNet sunt responsabile pentru extragerea caracteristicilor de nivel scăzut, cum ar fi pixelii care alcătuiesc linii simple. Straturile ulterioare ale ConvNet vor uni aceste linii împreună în forme. Acest proces de trecere de la analiza la nivel de suprafață la analiza la nivel profund continuă până când ConvNet recunoaște forme complexe precum animale, fețe umane și mașini.

După ce datele au trecut prin toate straturile convoluționale, acestea trec în partea dens conectată a CNN. Straturile dens conectate sunt așa cum arată o rețea neuronală tradițională de tip feed-forward, o serie de noduri aranjate în straturi care sunt conectate unul la altul. Datele trec prin aceste straturi dens conectate, care învață tiparele care au fost extrase de straturile convoluționale și, astfel, rețeaua devine capabilă să recunoască obiecte.