Ghid pentru începători pentru rețelele neuronale convoluționale (CNN): explicație pas cu pas

Publicat: 2022-06-06

Deep Learning a facilitat abordări multiple ale vederii computerizate, calculului cognitiv și procesării rafinate a datelor vizuale. Un astfel de exemplu este utilizarea CNN sau a rețelelor neuronale convoluționale pentru clasificarea obiectelor sau imaginilor. Algoritmii CNN oferă un avantaj masiv în clasificarea bazată pe vizual, permițând mașinilor să perceapă lumea din jurul lor (sub formă de pixeli) așa cum o fac oamenii.

CNN este în esență un algoritm de recunoaștere care permite mașinilor să devină suficient de instruite pentru a procesa, clasifica sau identifica o multitudine de parametri din date vizuale prin straturi. Acest lucru promovează identificarea avansată a obiectelor și clasificarea imaginilor, permițând mașinilor sau software-ului să identifice cu precizie obiectele necesare din datele de intrare.

Sistemele bazate pe CNN învață din datele de antrenament bazate pe imagini și pot clasifica viitoare imagini de intrare sau date vizuale pe baza modelului său de antrenament. Atâta timp cât setul de date care este utilizat pentru antrenament conține o serie de indicii vizuale utile (date spațiale), clasificatorul de imagine sau obiect va fi foarte precis.

CNN este una dintre cele mai populare abordări de deep learning care este folosită astăzi în implementări populare, cum ar fi sistemul de clasificare a imaginilor Google Lens sau în vehicule autonome precum Teslas. Acest lucru se datorează mai ales recunoașterii fiabile a modelelor care este posibilă cu ajutorul CNN, pe lângă detectarea obiectelor.

Învățați învățare automată online de la cele mai bune universități din lume - Master, programe executive postuniversitare și program de certificat avansat în ML și AI pentru a vă accelera cariera.

Cuprins

Aplicații ale CNN

Utilizarea sistemelor bazate pe CNN poate fi observată în sistemele de securitate, sistemele de apărare, diagnosticarea medicală, analiza imaginilor, clasificarea media și alte software-uri de recunoaștere. De exemplu, CNN poate fi folosit cu RNN (Recurrent Neural Network) pentru a construi software de recunoaștere video sau dispozitive de recunoaștere a acțiunii.

Aceasta este o aplicație mai avansată a clasificării video, care poate permite sistemelor să identifice obiecte în timp real din videoclipuri prin analizarea informațiilor spațiale disponibile în cadrele care formează secvențial videoclipul.

Secvența acestor cadre conține, de asemenea, informații temporale care ajută la modelarea datelor prin procesare spațială și temporală, permițând utilizarea unei arhitecturi hibride constând atât din convoluții, cât și din straturi recurente. Mașinile Tesla și vehiculele Waymo folosesc CNN pentru a recunoaște și clasifica diferite aspecte ale drumurilor și obiectele sau vehiculele care intră cu ajutorul datelor care sunt capturate de camere în timp real.

Explorați cursurile noastre despre învățare automată și inteligență artificială

Certificare avansată în Machine Learning și Cloud de la IITM Master în învățare automată și IA de la LJMU Program executiv postuniversitar în învățare automată și inteligență artificială de la IITB
Program de certificat avansat în Machine Learning și NLP de la IIITB Program de certificat avansat în Machine Learning și Deep Learning de la IIITB Program de certificat avansat în AI pentru manageri de la IITR

Rețelele neuronale împuternicesc sistemele vehiculelor cu detectarea liniilor, segmentarea mediului, navigare și conducere automată. Aceste abilități permit mașinilor autonome să ia decizii complexe bazate pe modele de clasificare, cum ar fi evitarea obiectelor, schimbarea benzilor, accelerarea, încetinirea sau oprirea completă prin frânare, dacă este necesar.

Cu toate acestea, acestea sunt implementări mai avansate ale CNN care necesită hardware și senzori precum GPS, RADAR, LiDAR, precum și cantități masive de date de antrenament și medii de procesare de înaltă performanță. Acestea ajută modelele de învățare profundă să devină sisteme de luare a deciziilor care procesează datele primite de la senzori în timp real și iau măsuri relevante.

Folosind datele de la senzori, viziunea camerei procură și o percepție 3D a mediului (reconstrucție vizuală, analiză de adâncime etc.) și poate analiza distanța cu precizie (prin lasere). Astfel, modelul poate prezice poziția viitoare a vehiculelor sau a obiectelor, hotărând în final cel mai bun curs de acțiune.

Modelele CNN se bazează pe clasificare, segmentare, localizare și apoi construiesc predicții. Acest lucru le permite acestor mașini să reacționeze aproape așa cum ar face creierul uman în orice situație dată sau, uneori, chiar mai eficient decât șoferii umani.

CNN reduce cu adevărat decalajul dintre mașini și oameni, mai ales când vine vorba de viziunea computerizată și detectarea țintei. Cu toate acestea, pentru a înțelege CNN-urile, trebuie mai întâi să învățăm despre rețelele neuronale și să începem cu utilizarea algoritmilor CNN pentru date vizuale bidimensionale.

Ce este o rețea neuronală în deep learning?

Învățarea profundă este una dintre cele mai importante ramuri ale învățării automate și utilizează ANN-urile sau rețelele neuronale artificiale (ANN) pentru a fi implementate ca o metodologie de învățare automată supravegheată, nesupravegheată sau semi-supravegheată. Aceste tipuri de modele de învățare automată se bazează pe mai multe straturi de procesare pentru a funcționa pe funcții de nivel superior în date.

Straturile sunt în principiu mai multe noduri sau blocuri care sunt stivuite împreună ca unități de calcul. Aceste straturi emulează în mod eficient neuronii umani și funcționează în același mod ca și creierul uman. Prin construirea progresivă a straturilor, un model poate deveni mult mai avansat decât stratul de intrare inițial care conținea doar date preprocesate.

Algoritmii rețelei neuronale extrag ieșirea care poate alimenta calculele straturilor viitoare până când se ajunge la nivelul final de ieșire. Aceasta formează o rețea în care toate nodurile din fiecare strat următor sunt conectate la un singur nod din stratul precedent. Ori de câte ori modelele folosesc mai mult de două straturi, acestea sunt clasificate ca rețele neuronale profunde (DNN). Aceste rețele nu formează un ciclu și permit mai multe straturi de percepție, introducând astfel diverse dimensiuni predicțiilor și procesării datelor.

Citiți articolele noastre populare legate de învățarea automată și inteligența artificială

IoT: istorie, prezent și viitor Tutorial de învățare automată: Învățați ML Ce este algoritmul? Simplu și Ușor
Salariu inginer robotic în India: toate rolurile O zi din viața unui inginer de învățare automată: ce fac ei? Ce este IoT (Internet of Things)
Permutare vs combinație: diferența dintre permutare și combinație Top 7 tendințe în inteligența artificială și învățarea automată Învățare automată cu R: tot ce trebuie să știți

Iată câteva cadre comune utilizate pentru Deep Learning:

  • TensorFlow
  • Keras
  • Apache MXNet

Ce este o rețea neuronală convoluțională?

Rețelele neuronale convoluționale sunt un tip de ANN-uri care sunt utilizate în principal pentru a lucra asupra datelor pixelilor pentru a procesa imagini sau pentru recunoașterea imaginilor. CNN-urile sunt folosite în Deep Learning pentru sarcini generative și descriptive care utilizează viziunea artificială și sisteme bazate pe recomandări.

CNN este un ANN mai eficient, similar cu DNN-urile, dar reduce totuși complexitățile unei rețele neuronale Feedforward. Acest lucru se datorează faptului că CNN se bazează, în general, pe două straturi, stratul hărții de caracteristici și stratul de extracție a caracteristicilor. Intrarea fiecărui nod extrage caracteristica locală din câmpul receptiv local al stratului precedent.

Relația de poziție dintre caracteristicile locale și alte caracteristici este reprezentată sau mapată odată ce extragerea este finalizată. Pentru a face rezoluția finală mai precisă, straturile de convoluție sunt urmate de straturi de calcul care calculează mediile locale și extragerea secundară a caracteristicilor. Chiar dacă CNN-urile funcționează în cea mai mare parte cu două straturi, predicțiile sunt extrem de precise datorită încorporării extracției cu mai multe caracteristici și a distorsiunii invarianței.

Nodurile din același plan al hărții de caracteristici pot învăța simultan datorită ponderilor comune. Acest lucru reduce complexitățile în rețea și permite introducerea de imagini de intrare multidimensionale. Spre deosebire de alte rețele neuronale, CNN-urile nu necesită ca imaginile să fie transformate în imagini cu rezoluție mai mică, deoarece cerințele de procesare sunt scăzute.

Acest model este similar cu percepțiile multistrat, cu excepția faptului că CNN-urile nu sunt predispuse la supraadaptarea datelor, făcându-le astfel mai puțin complexe. Acest lucru se realizează prin regularizarea abordării perceptronului multistrat prin penalizarea parametrilor sau tăierea conexiunilor ignorate.

CNN-urile folosesc modelul ierarhic în date pentru asamblarea modelelor în funcție de nivelul lor de complexitate. Rețelele neuronale convoluționale abia necesită nicio preprocesare în comparație cu alți algoritmi de clasificare, în special pentru imagini și video. Folosind NLP, se poate folosi chiar și CNN-urile pentru aplicații mai avansate în robotică, diagnosticare medicală și automatizare. CNN-urile funcționează excelent cu majoritatea tehnicilor de învățare automată nesupravegheată și continuă să optimizeze în mod independent filtrele modelului prin metodologii de învățare automată.

Iată câteva arhitecturi disponibile ale CNN-urilor

  • GoogleNet
  • AlexNet
  • LeNet
  • ZFNet
  • ResNet
  • VGGNet

Iată un exemplu de implementare CNN

Să presupunem că trebuie să clasificăm păsările, pisicile, câinii, mașinile și oamenii dintr-un set aleatoriu de imagini. Pentru a începe, trebuie mai întâi să găsim un set de date de antrenament care să poată fi folosit ca reper pentru calculele viitoare. Un exemplu de set de date de antrenament bun ar fi un set de date de 50.000 de imagini de 64×64 pixeli cu păsări, pisici, câini, mașini și oameni.

Fiecare dintre aceste obiective va deveni etichete de clasă cu valori întregi asociate. Etichetele clasei vor fi „păsări”, „pisici”, „câini”, „mașini” și „oameni”, având valori de 0, 1, 2, 3 și 4. Odată ce modelul CNN este antrenat folosind acest set de date și reperele , va fi capabil să identifice indicii vizuale din datele de intrare aleatorii și apoi să le clasifice în funcție de etichetele lor. Modelul final poate identifica cu precizie cele cinci tipuri diferite de obiecte (etichete) dintr-un set aleatoriu de imagini care prezintă aceste obiecte.

Iată pașii necesari pentru construirea unui model CNN

  • Se încarcă setul de date.
  • Pregătirea datelor pixelilor.
  • Definirea modelului.
  • Evaluarea modelului.
  • Prezentarea rezultatelor.
  • Eșantionare completă.
  • Dezvoltați un model de bază.
  • Implementați tehnici de regularizare pentru îmbunătățirea modelului.
  • Mărirea datelor.
  • Finalizarea modelului și evaluarea ulterioară.

CNN Deep Learning este un domeniu promițător, cu perspective excelente de carieră. Dacă intenționați să vă construiți o carieră în CNN, puteți consulta Programul de certificat avansat al upGrad în programul de învățare automată și învățare profundă .

Care este diferența dintre rețelele neuronale clasice (alte ANN) și CNN?

Principala diferență dintre rețelele neuronale clasice, cum ar fi Rețeaua neuronală artificială (ANN) și CNN, constă în faptul că numai ultimul strat al unui CNN este conectat complet, iar în ANN, fiecare neuron este conectat la orice alt neuron.

Ce sunt rețelele neuronale profunde?

Învățarea profundă provine dintr-o familie mai largă de concepte legate de învățarea automată, care se bazează în continuare pe rețele neuronale artificiale cu învățarea reprezentării.

Poate fi folosit NLP cu CNN?

Similar cu clasificarea propozițiilor, CNN poate fi folosit pentru mai multe sarcini NLP, cum ar fi clasificarea sentimentelor, traducerea automată, rezumarea textului, selecția răspunsurilor și altele asemenea.