Tutorial de rețele neuronale convoluționale

aug. 18, 2021
admin

Inteligența artificială a parcurs un drum lung și a redus fără probleme decalajul dintre potențialul oamenilor și cel al mașinilor. Iar pasionații de date din întreaga lume lucrează la numeroase aspecte ale IA și transformă viziunile în realitate – iar un astfel de domeniu uimitor este domeniul Computer Vision. Acest domeniu urmărește să permită și să configureze mașinile să vadă lumea așa cum o fac oamenii și să utilizeze cunoștințele pentru mai multe sarcini și procese (cum ar fi recunoașterea imaginilor, analiza și clasificarea imaginilor și așa mai departe). Iar progresele în Computer Vision cu Deep Learning au avut un succes considerabil, în special cu algoritmul Rețelei Neuronale Convoluționale.

În acest tutorial, veți învăța despre:

  • Introducere la CNN
  • Ce este o rețea neuronală convoluțională?
  • Cum recunosc CNN-urile imaginile?
  • Câteva straturi în CNN
  • Implementarea unui caz de utilizare folosind CNN

Introducere la CNN

Yann LeCun, director al grupului de cercetare AI Research Group de la Facebook, este pionierul rețelelor neuronale convoluționale. El a construit prima rețea neuronală convoluțională numită LeNet în 1988. LeNet a fost folosită pentru sarcini de recunoaștere a caracterelor, cum ar fi citirea codurilor poștale și a cifrelor.

V-ați întrebat vreodată cum funcționează recunoașterea facială pe rețelele de socializare, sau cum ajută detectarea obiectelor la construirea mașinilor care se conduc singure sau cum se face detectarea bolilor cu ajutorul imaginilor vizuale în domeniul sănătății? Totul este posibil datorită rețelelor neuronale convoluționale (CNN). Iată un exemplu de rețele neuronale convoluționale care ilustrează modul în care acestea funcționează:

Imaginați-vă că există o imagine a unei păsări și doriți să identificați dacă este într-adevăr o pasăre sau un alt obiect. Primul lucru pe care îl faceți este să introduceți pixelii imaginii sub formă de matrice în stratul de intrare al rețelei neuronale (rețele multistrat folosite pentru a clasifica lucruri). Straturile ascunse realizează extragerea caracteristicilor prin efectuarea de diferite calcule și manipulări. Există mai multe straturi ascunse, cum ar fi stratul de convoluție, stratul ReLU și stratul de grupare, care realizează extragerea caracteristicilor din imagine. În cele din urmă, există un strat complet conectat care identifică obiectul din imagine.

Rețea neuronală convoluțională pentru identificarea imaginii unei păsări

Fig: Rețeaua neuronală convoluțională pentru a identifica imaginea unei păsări

Curs de învățare profundă (cu TensorFlow & Keras)

Master the Deep Learning Concepts and ModelsView Course

Curs de învățare profundă (cu TensorFlow Keras)

Ce este rețeaua neuronală convoluțională?

O rețea neuronală convoluțională este o rețea neuronală de tip feed-forward care este în general utilizată pentru a analiza imagini vizuale prin procesarea datelor cu topologie de tip grilă. Este cunoscută și sub numele de ConvNet. O rețea neuronală convoluțională este utilizată pentru a detecta și clasifica obiectele dintr-o imagine.

Mai jos este o rețea neuronală care identifică două tipuri de flori: Orhidee și Trandafir.

În CNN, fiecare imagine este reprezentată sub forma unei matrice de valori de pixeli.

Operația de convoluție stă la baza oricărei rețele neuronale convoluționale. Să înțelegem operația de convoluție folosind două matrici, a și b, de 1 dimensiune.

a =

b =

În operația de convoluție, matricele se înmulțesc element cu element, iar produsul se însumează pentru a crea o nouă matrice, care reprezintă a*b.

Primile trei elemente ale matricei a se înmulțesc cu elementele matricei b. Produsul se însumează pentru a obține rezultatul.

Următoarele trei elemente din matricea a se înmulțesc cu elementele din matricea b, iar produsul se însumează.

Acest proces continuă până când operația de convoluție este completă.

Cum recunoaște CNN imaginile?

Considerați următoarele imagini:

Căsuțele care sunt colorate reprezintă o valoare a pixelului de 1, iar 0 dacă nu sunt colorate.

Când apăsați backslash (\), imaginea de mai jos este procesată.

Când apăsați bară oblică înainte (/), imaginea de mai jos este procesată:

Iată un alt exemplu pentru a descrie modul în care CNN recunoaște o imagine:

După cum puteți vedea din diagrama de mai sus, sunt luminate doar acele valori care au valoarea 1.

Câmpuri într-o rețea neuronală de convoluție

O rețea neuronală de convoluție are mai multe straturi ascunse care ajută la extragerea de informații dintr-o imagine. Cele patru straturi importante din CNN sunt:

  1. Capa de convoluție
  2. Capa de reLU
  3. Capa de reumplere
  4. Capa complet conectată

Capa de convoluție

Aceasta este prima etapă în procesul de extragere a caracteristicilor valoroase dintr-o imagine. Un strat de convoluție are mai multe filtre care efectuează operația de convoluție. Fiecare imagine este considerată ca o matrice de valori ale pixelilor.

Considerăm următoarea imagine 5×5 ale cărei valori ale pixelilor sunt fie 0, fie 1. Există, de asemenea, o matrice de filtre cu o dimensiune de 3×3. Glisați matricea de filtrare peste imagine și calculați produsul punctelor pentru a obține matricea caracteristicilor convolute.

CapacReLU

ReLU reprezintă unitatea liniară rectificată. Odată ce sunt extrase hărțile de caracteristici, următorul pas este mutarea lor într-un strat ReLU.

ReLU efectuează o operație de tip element-wise și stabilește toți pixelii negativi la 0. Aceasta introduce neliniaritate în rețea, iar rezultatul generat este o hartă de caracteristici rectificată. Mai jos este graficul unei funcții ReLU:

Imaginea originală este scanată cu mai multe convoluții și straturi ReLU pentru localizarea caracteristicilor.

Stratul de grupare

Gruparea este o operație de eșantionare redusă care reduce dimensionalitatea hărții caracteristicilor. Harta de caracteristici rectificată trece acum printr-un strat de grupare pentru a genera o hartă de caracteristici grupate.

Capa de grupare utilizează diverse filtre pentru a identifica diferite părți ale imaginii, cum ar fi marginile, colțurile, corpul, penele, ochii și ciocul.

Iată cum arată până acum structura rețelei neuronale de convoluție:

Postul următor în acest proces se numește aplatizare. Aplatizarea este utilizată pentru a converti toate matricele bidimensionale rezultate din hărțile de caracteristici grupate într-un singur vector liniar continuu lung.

Matricea aplatizată este introdusă ca intrare în stratul complet conectat pentru a clasifica imaginea.

Iată cum anume recunoaște CNN o pasăre:

  • Pixelii din imagine sunt introduși în stratul convoluțional care efectuează operația de convoluție
  • Se obține o hartă convolută
  • Harta convolută este aplicată unei funcții ReLU pentru a genera o hartă a caracteristicilor rectificată
  • Imaginea este procesată cu mai multe convoluții și straturi ReLU pentru localizarea trăsăturilor
  • Diferite straturi de regrupare cu diverse filtre sunt folosite pentru a identifica părți specifice ale imaginii
  • Harta de trăsături regrupate este aplatizată și introdusă într-un strat complet conectat pentru a obține rezultatul final

Curs GRATUIT de învățare automată

Învățați în-cerere Abilități și instrumente de învățare automatăÎncepeți să învățați

Curs GRATUIT de învățare automată

Implementarea cazului de utilizare folosind CNN

Vom folosi setul de date CIFAR-10 de la Canadian Institute For Advanced Research pentru clasificarea imaginilor în 10 categorii folosind CNN.

1. Descărcați setul de date:

2. Importați setul de date CIFAR:

3. Citiți numele etichetelor:

4. Afișați imaginile folosind matplotlib:

5. Folosiți funcția helper pentru a manipula datele:

6. Creați modelul:

7. Aplicați funcțiile helper:

8. Creați straturile pentru convoluție și pooling:

9. Creați stratul aplatizat prin remodelarea stratului de punere în comun:

10. Creați un strat complet conectat:

11. Setați ieșirea pe variabila y_pred:

12. Aplicați funcția de pierdere:

13. Creați optimizatorul:

14. Creați o variabilă pentru a inițializa toate variabilele globale:

15. Rulați modelul prin crearea unei sesiuni grafice:

Construiți modele de învățare profundă în TensorFlow și învățați cadrul open-source TensorFlow cu cursul Deep Learning (cu Keras &TensorFlow). Înscrieți-vă acum!

Învățați mai multe despre CNN și Deep Learning

Acesta este modul în care construiți un CNN cu mai multe straturi ascunse și cum să identificați o pasăre folosind valorile pixelilor săi. De asemenea, ați realizat o demonstrație pentru a clasifica imagini în 10 categorii utilizând setul de date CIFAR.

Puteți, de asemenea, să vă înscrieți la programul postuniversitar în AI și învățare automată cu Universitatea Purdue și în colaborare cu IBM și să vă transformați într-un expert în tehnici de învățare profundă folosind TensorFlow, biblioteca software open-source concepută pentru a efectua cercetări în domeniul învățării automate și al rețelelor neuronale profunde. Acest program în AI și Machine Learning acoperă Python, Machine Learning, Procesarea limbajului natural, Recunoașterea vorbirii, Advanced Deep Learning, Computer Vision și Reinforcement Learning. Acesta vă va pregăti pentru una dintre cele mai interesante frontiere tehnologice din lume.

Lasă un răspuns

Adresa ta de email nu va fi publicată.