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

Publicat: 2020-12-07

Cuprins

Introducere

În ultimii câțiva ani ai industriei IT, a existat o cerere uriașă pentru un anumit set de abilități cunoscut sub numele de Deep Learning. Deep Learning un subset al Machine Learning care constă din algoritmi care sunt inspirați de funcționarea creierului uman sau a rețelelor neuronale.

Aceste structuri sunt numite rețele neuronale. Învață computerul să facă ceea ce le vine în mod natural oamenilor. Învățare profundă, există mai multe tipuri de modele, cum ar fi rețelele neuronale artificiale (ANN), codificatoarele automate, rețelele neuronale recurente (RNN) și învățarea prin consolidare. Dar a existat un model special care a contribuit foarte mult în domeniul viziunii computerizate și al analizei imaginii, care este Rețelele Neurale Convoluționale (CNN) sau ConvNets.

CNN-urile sunt o clasă de rețele neuronale profunde care pot recunoaște și clasifica anumite caracteristici din imagini și sunt utilizate pe scară largă pentru analiza imaginilor vizuale. Aplicațiile lor variază de la recunoașterea imaginilor și video, clasificarea imaginilor, analiza imaginilor medicale, viziunea computerizată și procesarea limbajului natural.

Termenul „Convoluție” în CNN denotă funcția matematică de convoluție, care este un tip special de operație liniară în care două funcții sunt multiplicate pentru a produce o a treia funcție care exprimă modul în care forma unei funcții este modificată de cealaltă. În termeni simpli, două imagini care pot fi reprezentate ca matrici sunt multiplicate pentru a da o ieșire care este utilizată pentru a extrage caracteristici din imagine.

Învață învățarea 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-ți accelera cariera.

Învățați: Introducere în învățare profundă și rețele neuronale

Arhitectura de bază

Există două părți principale într-o arhitectură CNN

  • Un instrument de convoluție care separă și identifică diferitele caracteristici ale imaginii pentru analiză într-un proces numit Extragerea caracteristicilor
  • Un strat complet conectat care utilizează rezultatul procesului de convoluție și prezice clasa imaginii pe baza caracteristicilor extrase în etapele anterioare.

Sursă

Straturi de convoluție

Există trei tipuri de straturi care alcătuiesc CNN, care sunt straturi convoluționale, straturi de grupare și straturi complet conectate (FC). Când aceste straturi sunt stivuite, se va forma o arhitectură CNN. Pe lângă aceste trei straturi, mai există doi parametri importanți, care sunt stratul de abandon și funcția de activare, care sunt definiți mai jos.

1. Stratul convoluțional

Acest strat este primul strat care este utilizat pentru a extrage diferitele caracteristici din imaginile de intrare. În acest strat, operația matematică de convoluție este efectuată între imaginea de intrare și un filtru de o anumită dimensiune MxM. Prin glisarea filtrului peste imaginea de intrare, produsul punctual este luat între filtru și părțile imaginii de intrare în funcție de dimensiunea filtrului (MxM).

Ieșirea este denumită harta caracteristică care ne oferă informații despre imagine, cum ar fi colțurile și marginile. Mai târziu, această hartă a caracteristicilor este transmisă altor straturi pentru a afla câteva alte caracteristici ale imaginii de intrare.

2. Stratul de pooling

În cele mai multe cazuri, un strat convoluțional este urmat de un strat de grupare. Scopul principal al acestui strat este de a reduce dimensiunea hărții de caracteristici convoluate pentru a reduce costurile de calcul. Aceasta se realizează prin scăderea conexiunilor dintre straturi și funcționează independent pe fiecare hartă caracteristică. În funcție de metoda utilizată, există mai multe tipuri de operațiuni de Pooling.

În Max Pooling, cel mai mare element este luat din harta caracteristicilor. Average Pooling calculează media elementelor dintr-o secțiune de imagine cu dimensiuni predefinite. Suma totală a elementelor din secțiunea predefinită este calculată în Sum Pooling. Stratul de pooling servește de obicei ca o punte între Stratul Convoluțional și Stratul FC

Trebuie citit: Idei de proiecte pentru rețele neuronale

3. Strat complet conectat

Stratul Fully Connected (FC) constă din greutăți și părtiniri împreună cu neuronii și este folosit pentru a conecta neuronii între două straturi diferite. Aceste straturi sunt de obicei plasate înaintea stratului de ieșire și formează ultimele straturi ale unei arhitecturi CNN.

În aceasta, imaginea de intrare din straturile anterioare este aplatizată și alimentată la stratul FC. Vectorul aplatizat mai suferă apoi câteva straturi FC unde au loc de obicei operațiile cu funcțiile matematice. În această etapă începe să aibă loc procesul de clasificare.

4. Abandonul

De obicei, atunci când toate caracteristicile sunt conectate la stratul FC, aceasta poate provoca supraadaptare în setul de date de antrenament. Supraajustarea apare atunci când un anumit model funcționează atât de bine pe datele de antrenament, ceea ce provoacă un impact negativ asupra performanței modelului atunci când este utilizat pe date noi.

Pentru a depăși această problemă, se utilizează un strat de abandon în care câțiva neuroni sunt scăpați din rețeaua neuronală în timpul procesului de antrenament, rezultând dimensiunea redusă a modelului. La trecerea unui abandon de 0,3, 30% dintre noduri sunt abandonate aleatoriu din rețeaua neuronală.

5. Funcții de activare

În sfârșit, unul dintre cei mai importanți parametri ai modelului CNN este funcția de activare. Ele sunt folosite pentru a învăța și aproxima orice fel de relație continuă și complexă între variabilele rețelei. Cu cuvinte simple, decide ce informații ale modelului ar trebui să se declanșeze în direcția înainte și care nu ar trebui la sfârșitul rețelei.

Adaugă neliniaritate rețelei. Există mai multe funcții de activare utilizate în mod obișnuit, cum ar fi funcțiile ReLU, Softmax, tanH și Sigmoid. Fiecare dintre aceste funcții are o utilizare specifică. Pentru un model CNN de clasificare binară, funcțiile sigmoid și softmax sunt preferate și pentru o clasificare multiclasă, în general softmax us.

LeNet-5 CNN Architecture

În 1998, arhitectura LeNet-5 a fost introdusă într-o lucrare de cercetare intitulată „Învățare bazată pe gradient aplicată la recunoașterea documentelor” de Yann LeCun, Leon Bottou, Yoshua Bengio și Patrick Haffner. Este una dintre cele mai vechi și de bază arhitecturi CNN.

Este format din 7 straturi. Primul strat constă dintr-o imagine de intrare cu dimensiuni de 32×32. Este combinat cu 6 filtre de dimensiunea 5×5 rezultând o dimensiune de 28x28x6. Al doilea strat este o operațiune de Pooling care filtrează dimensiunea 2×2 și pasul de 2. Prin urmare, dimensiunea imaginii rezultată va fi 14x14x6.

În mod similar, al treilea strat implică și o operație de convoluție cu 16 filtre de dimensiune 5×5 urmată de un al patrulea strat de pooling cu dimensiunea filtrului similară de 2×2 și pas de 2. Astfel, dimensiunea imaginii rezultată va fi redusă la 5x5x16.

Odată ce dimensiunea imaginii este redusă, al cincilea strat este un strat convoluțional complet conectat cu 120 de filtre fiecare cu dimensiunea 5×5. În acest strat, fiecare dintre cele 120 de unități din acest strat va fi conectată la cele 400 (5x5x16) de unități din straturile anterioare. Al șaselea strat este, de asemenea, un strat complet conectat cu 84 de unități.

Ultimul al șaptelea strat va fi un strat de ieșire softmax cu „n” clase posibile, în funcție de numărul de clase din setul de date.

Sursă

Diagrama de mai sus este o reprezentare a celor 7 straturi ale arhitecturii LeNet-5 CNN.

Mai jos sunt instantanee ale codului Python pentru a construi o arhitectură LeNet-5 CNN folosind biblioteca Keras cu framework TensorFlow

În programarea Python, tipul de model care este cel mai frecvent utilizat este tipul secvenţial. Este cel mai simplu mod de a construi un model CNN în keras. Ne permite să construim un model strat cu strat. Funcția „add()” este folosită pentru a adăuga straturi la model. După cum s-a explicat mai sus, pentru arhitectura LeNet-5, există două perechi Convolution și Pooling urmate de un strat Flatten care este de obicei folosit ca o conexiune între Convolution și straturile Dense.

Straturile dense sunt cele care sunt utilizate cel mai mult pentru straturile de ieșire. Activarea folosită este „Softmax” care oferă o probabilitate pentru fiecare clasă și acestea însumează total la 1. Modelul își va face predicția pe baza clasei cu cea mai mare probabilitate.

Rezumatul modelului este afișat mai jos.

Concluzie

Prin urmare, în acest articol am înțeles structura de bază CNN, arhitectura sa și diferitele straturi care alcătuiesc modelul CNN. De asemenea, am văzut un exemplu arhitectural al unui model LeNet-5 foarte faimos și tradițional cu programul său Python.

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

Care sunt funcțiile de activare în CNN?

Funcția de activare este una dintre cele mai vitale componente din modelul CNN. Ele sunt utilizate pentru a învăța și aproxima orice formă de asociere variabilă-variabilă de rețea care este atât continuă, cât și complexă. În termeni simpli, determină ce informații despre model ar trebui să circule în direcția înainte și care nu ar trebui să fie la capătul rețelei. Oferă rețelei neliniaritate. Funcțiile ReLU, Softmax, tanH și Sigmoid sunt unele dintre cele mai des utilizate funcții de activare. Toate aceste funcții au utilizări distincte. Pentru un model CNN cu 2 clase, funcțiile sigmoid și softmax sunt favorizate, în timp ce softmax este folosit de obicei pentru clasificarea multiclasă.

Care sunt componentele de bază ale arhitecturii rețelei neuronale convoluționale?

Un strat de intrare, un strat de ieșire și mai multe straturi ascunse formează rețelele convoluționale. Neuronii din straturile unei rețele convoluționale sunt aranjați în trei dimensiuni, spre deosebire de cei dintr-o rețea neuronală standard (dimensiunile lățimii, înălțimii și adâncimii). Acest lucru permite CNN să convertească un volum de intrare tridimensional într-un volum de ieșire. Straturile de convoluție, punerea în comun, normalizarea și complet conectate formează straturile ascunse. Straturi de conversie multiple sunt utilizate în CNN-uri pentru a filtra volumele de intrare la niveluri mai înalte de abstractizare.

Care este beneficiul arhitecturilor standard CNN?

În timp ce arhitecturile tradiționale de rețea constau numai din straturi convoluționale stivuite, arhitecturile mai noi caută modalități noi și noi de a construi straturi convoluționale pentru a îmbunătăți eficiența învățării. Aceste arhitecturi oferă recomandări arhitecturale generale pentru ca practicienii de învățare automată să se adapteze pentru a gestiona o varietate de probleme de vedere pe computer. Aceste arhitecturi pot fi utilizate ca extractoare bogate de caracteristici pentru clasificarea imaginilor, identificarea obiectelor, segmentarea imaginilor și o varietate de alte sarcini avansate.