Arhitectura rețelei neuronale convoluționale: ce trebuie să știți?

Publicat: 2020-12-01

Rețelele neuronale convoluționale denumite de obicei sub numele de ConvNets sau CNN sunt una dintre cele mai frecvent utilizate arhitecturi de rețele neuronale. CNN-urile sunt utilizate în general pentru date bazate pe imagini. Recunoașterea imaginilor, clasificarea imaginilor, detectarea obiectelor etc., sunt câteva dintre domeniile în care CNN-urile sunt utilizate pe scară largă.

Ramura AI aplicată în special asupra datelor de imagine este denumită Computer Vision. A existat o creștere monumentală în Computer Vision de la introducerea CNN-urilor. Prima parte a CNN extrage caracteristici din imagini folosind funcția de convoluție și activare pentru normalizare.

Ultimul bloc folosește aceste caracteristici cu Neural Network pentru a rezolva orice problemă specifică, de exemplu, o problemă de clasificare va avea „n” număr de neuroni de ieșire în funcție de numărul de clase prezente pentru clasificare. Să încercăm să înțelegem arhitectura și funcționarea unui CNN.

Cuprins

Convoluţie

Convoluția este o tehnică de procesare a imaginii care utilizează un nucleu ponderat (matrice pătrată) pentru a se învârti peste imagine, a înmulți și a adăuga elementele nucleului cu pixeli de imagine. Această metodă poate fi vizualizată cu ușurință prin imaginea de mai jos.

Imagine de: Peltarion

Filtru de convoluție și ieșire

După cum putem vedea atunci când folosim un cotel cu convoluție 3×3, o parte a imaginii 3×3 este operată și după înmulțire și adăugare ulterioară, o valoare vine ca rezultat. Deci, pe o imagine 4×4, vom obține o ieșire de matrice contortă de 2×2, având în vedere că dimensiunea nucleului este de 3×3.

Ieșirea convolută poate varia în funcție de dimensiunea nucleului utilizat pentru convoluție. Acesta este stratul de pornire tipic al unui CNN. Ieșirea complicată sunt caracteristicile găsite din imagine. Acest lucru este direct legat de dimensiunea nucleului utilizat.

Dacă caracteristica unei imagini este de așa natură încât chiar și diferențele mici dintr-o imagine o vor face să se încadreze într-o categorie de ieșire diferită, atunci o dimensiune mică a nucleului este utilizată pentru extragerea caracteristicilor. În caz contrar, se poate folosi un nucleu mai mare. Valorile utilizate în nucleu sunt adesea numite greutăți convoluționale. Acestea sunt inițializate și apoi actualizate la retropropagare folosind coborârea gradientului.

Citiți: Tutorial de detectare a obiectelor TensorFlow pentru începători

Pooling

Stratul de pooling este plasat între straturile de convoluție. Este responsabil pentru efectuarea operațiunilor de pooling pe hărțile caracteristicilor trimise de un strat de convoluție. Operația de pooling reduce dimensiunea spațială a caracteristicilor cunoscute și sub numele de reducere a dimensionalității.

Unul dintre motivele majore pentru pooling este reducerea puterii de calcul necesare procesării datelor. Deși, un strat de grupare reduce dimensiunea imaginilor, le păstrează caracteristicile importante. Funcționarea este similară cu un filtru CNN. Nucleul trece peste caracteristicile și cumulează valorile acoperite de filtru.

Din imagine se vede clar că pot exista diverse funcții de agregare. Adunarea medie și maximă sunt cele mai frecvent utilizate operațiuni de pooling. Regruparea reduce dimensiunile caracteristicilor, dar păstrează caracteristicile intacte.

Prin reducerea numărului de parametri, calculele se reduc și în rețea. Acest lucru reduce supraînvățarea și crește eficiența rețelei. Pool-ul maxim este utilizat în mare parte deoarece valorile maxime sunt observate mai puțin precis în harta grupată în comparație cu hărțile de la convoluție.

Acest lucru este bun pentru multe cazuri. Să spunem că dacă cineva dorește să recunoască un câine, urechile acestuia nu trebuie să fie localizate cât mai precis posibil, știind că sunt situate aproape lângă cap este suficient.

Max Pooling funcționează și ca suprimator de zgomot. Îndepărtează complet activările zgomotoase și efectuează, de asemenea, eliminarea zgomotului împreună cu reducerea dimensionalității. Pe de altă parte, Average Pooling realizează pur și simplu reducerea dimensionalității ca mecanism de suprimare a zgomotului. Prin urmare, putem spune că Max Pooling are performanțe mult mai bune decât Average Pooling.

Funcția de activare

ReLU (Rectified Linear Units) este stratul de funcții de activare cel mai frecvent utilizat.

Ecuația pentru același lucru este: ReLU(x)=max(0,x)

Și reprezentarea grafică este dată mai jos:

Sursa: Mediu

reprezentare ReLU

ReLU mapează valorile negative la zero și păstrează pozitivele așa cum sunt.

Strat complet conectat

Un strat complet conectat este de obicei ultimul strat al oricărei rețele neuronale. Acest strat primește vectori de intrare și produce un nou strat de ieșire. Acest strat de ieșire are n număr de neuroni, unde n este numărul de clase din clasificarea imaginii. Fiecare element al vectorului oferă probabilitatea ca imaginea să fie dintr-o anumită clasă. Prin urmare, suma tuturor vectorilor din stratul de ieșire este întotdeauna 1.

Calculele care au loc în stratul de ieșire sunt după cum urmează:

  1. Element înmulțit cu greutatea neuronului
  2. Aplicați funcția de activare pe strat (logistică când n=2, sigmoid când n>2)

Rezultatul va fi acum probabilitatea ca imaginea să aparțină unei anumite clase. Greutățile stratului sunt învățate în timpul antrenamentului prin propagarea inversă a gradientului.

Citiți și: Introducere model de rețea neuronală

Stratul de abandon

Straturile de abandon funcționează ca un strat de regularizare care reduce supraadaptarea și îmbunătățește eroarea de generalizare. Supraadaptarea este o preocupare majoră în timpul utilizării unei rețele neuronale. Abandonul, așa cum sugerează și numele, elimină un anumit procent de neuron din straturile după care este utilizat.

Metoda de regularizare folosită de abandon este că aproximează antrenarea unui număr mare de rețele neuronale cu arhitecturi paralele diferite. În timpul perioadei de antrenament, unele dintre ieșirile stratului sunt abandonate sau ignorate aleatoriu. Acest lucru face ca stratul să arate ca un strat cu un număr diferit de noduri și unii neuroni sunt dezactivați. Prin urmare, conectivitatea se schimbă și în funcție de stratul anterior.

Hiperparametri

Există anumiți parametri care pot fi controlați în funcție de datele de imagine tratate. Fiecare strat al unui CNN poate fi parametrizat, fie el strat de convoluție sau strat de pooling. Parametrii afectează dimensiunea hărții de caracteristici care este rezultatul pentru acel strat specific.

Fiecare imagine (intrare) sau hartă caracteristică (ieșiri ulterioare ale straturilor) au dimensiunile: L x H x D unde L x H este lățime x înălțime, adică dimensiunea hărții sau a imaginii. D reprezintă dimensiunea pe baza segmentelor de culoare. Imaginile monocrome vor avea D=1 și RGB, adică imaginile colorate vor avea D=3.

Hiperparametrii stratului de convoluție

  1. Număr de filtre (K)
  2. Dimensiunea filtrului (F) a dimensiunii FxFxD
  3. Pasi: Numărul de pași făcuți pentru ca nucleul să se deplaseze peste imagine. S=1 înseamnă că nucleul se va mișca cu 1 pixel ca pas.
  4. Zero padding: zero padding se face pentru imaginile cu dimensiune mai mică, deoarece straturile de convoluție și max pool reduc dimensiunea hărții caracteristicilor la fiecare iterație.

Sursa: XRDS

Zero padding a crescut dimensiunea imaginii de intrare

Pentru fiecare imagine de intrare cu dimensiunea L×H×D, stratul de pooling returnează o matrice de dimensiuni Wc×Hc×Dc. Unde

Wc= (W-F+2P)/S+1

Hc= (H-F+2P)/S+1

Dc= K

Rezolvarea ecuațiilor pentru a găsi valoarea Padding(P)=F-1/2 și Stride(S)=1

În general, alegem apoi F=3,P=1,S=1 sau F=5,P=2,S=1

Hiperparametrii stratului de grupare

  1. Dimensiunea celulei (F): Dimensiunea celulei pătrate în care harta va fi împărțită pentru grupare. FxF
  2. Dimensiunea pasului (S): celulele sunt separate prin S pixeli

Pentru fiecare imagine de intrare cu dimensiunea L×H×D, stratul de pooling returnează o matrice de dimensiuni Wp×Hp×Dp, unde

Wp= (WF)/S+1

Hp= (HF)/S+1

Dp = D

Pentru stratul de grupare, F=2 și S=2 este ales pe scară largă. 75% din pixelii de intrare sunt eliminați. De asemenea, se poate alege F=3 și S=2. Dimensiunea mai mare a celulei va duce la pierderi mari de informații, prin urmare potrivită numai pentru imagini de intrare de dimensiuni foarte mari.

Hiperparametri generali

  • Rata de învățare: Optimizatoare precum SGD, AdaGrad sau RMSProp pot fi alese pentru a optimiza rata de învățare.
  • Epoci: Numărul de epoci ar trebui crescut până când apare o eroare de antrenament și validare
  • Dimensiunea lotului: pot fi selectate de la 16 la 128. Depinde de puterea de procesare pe care o are.
  • Funcția de activare: introduce neliniaritatea modelului. ReLu este de obicei folosit pentru Conv Nets. Alte variante sunt: ​​sigmoid, tanh.
  • Abandonul: o valoare de abandon de 0,1 scade cu 10% din neuroni. 0,5 este un bun punct de plecare. 0.25 este o opțiune finală bună.
  • Inițializarea greutății: greutățile mici aleatorii pot fi inițializate pentru a devia posibilitatea de apariție a neuronilor morți. Dar nu prea mic pentru coborârea în gradient. Distribuția uniformă este potrivită.
  • Straturi ascunse: Straturile ascunse pot fi mărite până când eroarea de testare scade. Creșterea straturilor ascunse va crește calculul și va necesita regularizare.

Concluzie

Avem informațiile de bază pentru a crea un CNN de la zero. Deși este un articol cuprinzător care acoperă totul la un nivel de bază, fiecare parametru sau strat poate fi scufundat mai profund. Matematica din spatele fiecărui concept este, de asemenea, ceva care poate fi înțeles pentru îmbunătățirea modelului

Dacă sunteți interesat să aflați mai multe despre învățarea automată, consultați Diploma PG de la IIIT-B și upGrad în Învățare automată și AI, care este concepută pentru profesioniști care lucrează și oferă peste 450 de ore de pregătire riguroasă, peste 30 de studii de caz și sarcini, IIIT- B Statut de absolvenți, peste 5 proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Conduceți revoluția tehnologică condusă de inteligența artificială

PG DIPLOMĂ ÎN ÎNVĂŢAREA MACHINĂ ŞI INTELIGENTĂ ARTIFICIALĂ
Aflați mai multe