Arhitectura de bază CNN: Explicarea celor 5 straturi ale rețelei neuronale convoluționale [SUA]

Publicat: 2023-04-16

O CNN (Convolutional Neural Network) este un tip de rețea neuronală de învățare profundă care utilizează o combinație de straturi convoluționale și de subeșantionare pentru a învăța caracteristici din seturi mari de date. Este folosit în mod obișnuit pentru sarcinile de recunoaștere și clasificare a imaginilor. Straturile convoluționale aplică filtre datelor de intrare, iar straturile de subeșantionare reduc dimensiunea datelor de intrare. Arhitectura rețelei neuronale convoluționale își propune să învețe caracteristici din date care pot fi utilizate pentru a clasifica sau detecta obiecte din intrare. Mai jos sunt explicate cele 5 straturi CNN .

Înscrieți-vă la cursul de învățare automată de la cele mai bune universități din lume. Câștigă programe de master, Executive PGP sau Advanced Certificate pentru a-ți accelera cariera.

Cuprins

5 straturi ale unei rețele neuronale convoluționale

1. Stratul convoluțional:

Acest strat efectuează operația de convoluție pe datele de intrare, care extrage diverse caracteristici din date.

Straturile convoluționale dintr-o arhitectură model CNN sunt una dintre cele mai importante componente ale straturilor CNN . Aceste straturi sunt responsabile pentru extragerea caracteristicilor din datele de intrare și formează baza pentru procesarea și învățarea ulterioară.

Un strat convoluțional constă dintr-un set de filtre (cunoscute și ca nuclee) aplicate datelor de intrare într-o fereastră glisantă. Fiecare filtru extrage un set specific de caracteristici din datele de intrare pe baza ponderilor asociate acestuia.

Numărul de filtre utilizate în stratul convoluțional este unul dintre hiperparametrii cheie ai arhitecturii. Se determină în funcție de tipul de date care sunt prelucrate, precum și de acuratețea dorită a modelului. În general, mai multe filtre vor avea ca rezultat extragerea mai multor caracteristici din datele de intrare, permițând arhitecturii de rețea mai complexe să înțeleagă mai bine datele.

Operația de convoluție constă în înmulțirea fiecărui filtru cu datele din fereastra glisantă și însumarea rezultatelor. Această operație se repetă pentru toate filtrele, rezultând mai multe hărți de caracteristici pentru un singur strat convoluțional. Aceste hărți de caracteristici sunt apoi utilizate ca intrare pentru următoarele straturi, permițând rețelei să învețe caracteristici mai complexe din date.

Straturile convoluționale reprezintă fundamentul arhitecturilor de învățare profundă și sunt utilizate în diverse aplicații, cum ar fi recunoașterea imaginilor, procesarea limbajului natural și recunoașterea vorbirii. Prin extragerea celor mai critice caracteristici din datele de intrare, straturile convoluționale permit rețelei să învețe modele mai complexe și să facă predicții mai bune.

2. Stratul de grupare:

Acest strat efectuează o operație de subeșantionare pe hărțile caracteristicilor, ceea ce reduce cantitatea de calcul necesară și, de asemenea, ajută la reducerea supraajustării.

Stratul de pooling este o componentă vitală a arhitecturii CNN . Este de obicei folosit pentru a reduce dimensiunea volumului de intrare în timp ce extrage informații semnificative din date. Straturile de grupare sunt utilizate de obicei în etapele ulterioare ale unui CNN, permițând rețelei să se concentreze pe caracteristici mai abstracte ale unei imagini sau alt tip de intrare. Stratul de grupare funcționează prin glisarea unei ferestre peste volumul de intrare și calculând o statistică rezumată pentru valorile din fereastră.

Statisticile comune includ luarea maximului, mediei sau suma valorilor din fereastră. Acest lucru reduce dimensiunea volumului de intrare, păstrând în același timp informații importante despre date.

Stratul de pooling este, de asemenea, utilizat în mod obișnuit pentru a introduce invarianța spațială, ceea ce înseamnă că rețeaua va produce aceeași ieșire, indiferent de locația intrării în imagine. Acest lucru permite rețelei să moștenească caracteristici mai generale despre imagine, mai degrabă decât să-și memoreze pur și simplu locația exactă.

3. Stratul de activare:

Acest strat adaugă neliniaritate modelului prin aplicarea unei funcții de activare neliniară, cum ar fi ReLU sau tanh.

Un strat de activare într-un CNN este un strat care servește ca o transformare neliniară la ieșirea stratului convoluțional. Este o componentă principală a rețelei, permițându-i să învețe relații complexe între datele de intrare și de ieșire.

Stratul de activare poate fi gândit ca o funcție care preia rezultatul stratului convoluțional și îl mapează la un set diferit de valori. Acest lucru permite rețelei să învețe modele mai complexe în date și să generalizeze mai bine.

Funcțiile obișnuite de activare utilizate în CNN-uri includ ReLu (Unitate liniară rectificată), sigmoid și tanh. Fiecare funcție de activare are un scop diferit și poate fi utilizată în diferite scenarii.

ReLu este cea mai utilizată funcție de activare în majoritatea rețelelor convoluționale. Este o transformare neliniară care scoate 0 pentru toate valorile negative și aceeași valoare ca intrarea pentru toate valorile pozitive. Acest lucru permite rețelei să absoarbă modele mai complexe în date.

Sigmoid este o altă funcție de activare folosită în mod obișnuit, care emite valori între 0 și 1 pentru orice intrare dată. Acest lucru ajută rețeaua să înțeleagă relațiile complexe dintre datele de intrare și de ieșire, dar este mai costisitor din punct de vedere computațional decât ReLu.

Tanh este cea mai puțin utilizată funcție de activare, care emite valori între -1 și 1 pentru orice intrare dată.

Stratul de activare este o componentă esențială a CNN, deoarece previne liniaritatea și îmbunătățește neliniaritatea în ieșire. Alegerea funcției de activare potrivite pentru rețea este esențială, deoarece fiecare funcție de activare are un scop diferit și poate fi utilizată în diferite scenarii. Selectarea unei funcții de activare adecvate poate duce la o performanță mai bună a structurii CNN .

4. Strat complet conectat:

Acest strat conectează fiecare neuron dintr-un strat la fiecare neuron din stratul următor, rezultând o rețea complet conectată.

Un strat complet conectat într-un CNN este un strat de neuroni conectați la fiecare neuron din stratul anterior din rețea. Acest lucru este în contrast cu straturile convoluționale, în care neuronii sunt conectați doar la un subset de neuroni din stratul anterior pe baza unui model specific.

Prin conectarea fiecărui neuron dintr-un strat la fiecare neuron din stratul următor, stratul complet conectat permite ca informațiile din stratul anterior să fie partajate în întreaga rețea, oferind astfel oportunitatea unei înțelegeri mai cuprinzătoare a datelor.

Straturile complet conectate în CNN sunt utilizate în mod obișnuit spre sfârșitul unei arhitecturi model CNN , după straturile convoluționale și straturile de grupare, deoarece ajută la identificarea modelelor și corelațiilor pe care straturile convoluționale ar putea să nu le fi recunoscut.

În plus, straturi complet conectate sunt utilizate pentru a genera o graniță de decizie neliniară care poate fi utilizată pentru clasificare. În concluzie, straturile complet conectate sunt o parte integrantă a oricărui CNN și oferă un instrument puternic pentru identificarea tiparelor și corelațiilor în date.

5. Strat de ieșire:

Acesta este stratul final al rețelei, care produce etichetele sau valorile de ieșire.

Stratul de ieșire al unui CNN este stratul final din rețea și este responsabil pentru producerea ieșirii. Este stratul care preia caracteristicile extrase din straturile anterioare și le combină într-un mod care îi permite să producă rezultatul dorit.

Un strat complet conectat este utilizat de obicei atunci când rezultatul este o singură valoare, cum ar fi o problemă de clasificare sau regresie. Un singur strat de neuron este utilizat în general atunci când rezultatul este un vector, cum ar fi o distribuție de probabilitate.

O funcție de activare softmax este utilizată atunci când rezultatul este o distribuție de probabilitate, cum ar fi o distribuție de probabilitate pe clase. Stratul de ieșire al unui CNN este, de asemenea, responsabil pentru efectuarea calculelor necesare pentru a obține rezultatul dorit. Aceasta include finalizarea transformărilor liniare sau neliniare necesare ale intrărilor pentru a primi rezultatul necesar.

În cele din urmă, stratul de ieșire al unui CNN poate fi folosit și pentru a efectua tehnici de regularizare, cum ar fi renunțarea sau normalizarea loturilor, pentru a îmbunătăți performanța rețelei.

Concluzie

Arhitectura CNN este un instrument puternic pentru sarcinile de procesare a imaginilor și video. Este o combinație de straturi convoluționale, straturi de grupare și straturi complet conectate. Permite extragerea de funcții din imagini, videoclipuri și alte surse de date și poate fi utilizat pentru diverse sarcini, cum ar fi recunoașterea obiectelor, clasificarea imaginilor și recunoașterea facială. În general, acest tip de arhitectură este foarte eficient atunci când este aplicat la funcții și seturi de date adecvate.

Dobândiți un set de abilități competente în ML și DL cu upGrad

Cu programul de certificat avansat upGrad în învățare automată și învățare profundă oferit de IIIT-B, puteți obține competențe în învățarea automată și învățare profundă. Programul acoperă elementele fundamentale ale ML și DL, inclusiv subiecte precum învățarea supravegheată și nesupravegheată, regresia liniară și logistică, rețelele neuronale convoluționale, învățarea prin consolidare și procesarea limbajului natural. De asemenea, veți învăța să construiți și să implementați modele ML și DL în Python și TensorFlow și veți câștiga experiență practică lucrând la proiecte din lumea reală.

Acest curs include și beneficii precum:

  • Mentorship și îndrumare din partea experților din industrie
  • Asistență de plasare pentru a vă ajuta să găsiți locul de muncă potrivit
  • Un certificat avansat de la IIIT Bangalore

De asemenea, puteți consultacursurile noastre gratuiteoferite de upGrad în management, știința datelor, învățare automată, marketing digital și tehnologie.Toate aceste cursuri au resurse de învățare de top, prelegeri live săptămânale, sarcini din industrie și un certificat de absolvire a cursului - totul gratuit!

Care sunt bibliotecile din Python care pot fi folosite pentru un CNN?

Bibliotecile din Python care pot fi utilizate pentru un CNN includ TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV și SciPy. Aceste biblioteci pot fi folosite pentru a obține module pre-construite pentru a crea aplicații și pentru a implementa cu ușurință algoritmi CNN.

Câte dimensiuni sunt în straturile CNN?

Rețelele neuronale convoluționale conțin neuroni aranjați în 3 dimensiuni: lățime, înălțime și adâncime. Această structură tridimensională a neuronilor este prezentă în stratul de convoluție, care funcționează prin procesul de calcul cu intrarea dată pentru a furniza rezultatul rezultat.

Pot dezvolta un CNN în R?

Da, CNN-urile pot fi dezvoltate atât folosind Python, cât și R. Cu R oferind biblioteci excepțional de detaliate, crearea unei rețele neuronale de convoluție cu R este destul de ușoară.