Articles

Convoluțional Rețea Neuronală Model Inovații pentru Clasificarea Imaginilor

Tweet Share

Actualizat la 5 iulie 2019

O usoara Introducere a Inovațiilor în LeNet, AlexNet, VGG, de la Începuturile, și ResNet Convoluțional Rețele Neuronale.rețelele neuronale convoluționale sunt alcătuite din două elemente foarte simple, și anume straturi convoluționale și straturi de grupare.deși este simplu ,există modalități aproape infinite de a aranja aceste straturi pentru o anumită problemă de vedere a computerului.,din fericire ,există atât modele comune pentru configurarea acestor straturi, cât și inovații arhitecturale pe care le puteți utiliza pentru a dezvolta rețele neuronale convoluționale foarte profunde. Studierea acestor decizii de proiectare arhitecturală dezvoltate pentru sarcini de clasificare a imaginilor de ultimă generație poate oferi atât o rațiune, cât și o intuiție pentru modul de utilizare a acestor modele atunci când proiectați propriile modele de rețele neuronale convoluționale profunde.

în acest tutorial, veți descoperi reperele cheie ale arhitecturii pentru utilizarea rețelelor neuronale convoluționale pentru probleme provocatoare de clasificare a imaginilor.,după finalizarea acestui tutorial, veți ști:

  • cum să modelați numărul de filtre și dimensiunile filtrelor atunci când implementați rețele neuronale convoluționale.
  • cum să aranjați straturile convoluționale și de grupare într-un model uniform pentru a dezvolta modele performante.
  • cum se utilizează modulul inițial și modulul rezidual pentru a dezvolta rețele convoluționale mult mai profunde.

începeți proiectul cu noua mea carte Deep Learning for Computer Vision, inclusiv tutoriale pas cu pas și fișierele de cod sursă Python pentru toate exemplele.

Să începem.,

  • actualizare aprilie / 2019: descrierea corectată a dimensiunilor filtrelor pentru LeNet (mulțumesc Huang).

Tutorial imagine de Ansamblu

Acest tutorial este împărțit în șase părți; acestea sunt:

  1. Design Arhitectural pentru CNNs
  2. LeNet-5
  3. AlexNet
  4. VGG
  5. Începuturile și GoogLeNet
  6. Reziduale de Rețea sau ResNet

Design Arhitectural pentru CNNs

elementele unei convoluțional rețele neuronale, cum ar fi convoluțional și punerea în comun straturi, sunt relativ simplu de înțeles.,partea provocatoare a utilizării rețelelor neuronale convoluționale în practică este modul de proiectare a arhitecturilor de model care utilizează cel mai bine aceste elemente simple.o abordare utilă pentru a învăța cum să proiectați arhitecturi eficiente de rețele neuronale convoluționale este studierea aplicațiilor de succes. Acest lucru este deosebit de simplu de făcut din cauza studiului intens și a aplicării CNNs prin 2012 până în 2016 pentru ImageNet Large Scale Visual Recognition Challenge sau ILSVRC., Această provocare a dus atât la avansarea rapidă în stadiul tehnicii pentru sarcini foarte dificile de viziune computerizată, cât și la dezvoltarea inovațiilor generale în arhitectura modelelor de rețele neuronale convoluționale.

Vom începe cu LeNet-5, care este adesea descris ca fiind primul succes important și aplicarea CNNs înainte de ILSVRC, apoi uita-te la cele patru castigatoare diferite inovații arhitecturale pentru convoluțional rețele neuronale dezvoltate pentru ILSVRC, și anume, AlexNet, VGG, de la Începuturile, și ResNet.,

Prin înțelegerea acestor piatră de hotar modele și arhitectura lor sau inovații arhitecturale la un nivel înalt, va dezvolta atât o apreciere de utilizare a acestor elemente arhitecturale moderne aplicații de CNN în computer vision, și să fie capabil să identifice și să aleagă elemente de arhitectura care pot fi utile în proiectarea de propriile modele.

vrei rezultate cu Deep Learning pentru Computer Vision?

ia meu gratuit de 7 zile de e-mail crash course acum (cu codul de probă).,Faceți clic pentru a vă înscrie și pentru a obține, de asemenea, o versiune gratuită de Ebook PDF a cursului.

Descarcă GRATUIT Mini-Curs

LeNet-5

Poate că primul cunoscut și aplicarea cu succes a convoluțional rețele neuronale a fost LeNet-5, descris de Yann LeCun, et al. în lucrarea lor din 1998 intitulată” învățarea bazată pe Gradient aplicată recunoașterii documentelor ” (obțineți PDF-ul).sistemul a fost dezvoltat pentru a fi utilizat într-o problemă de recunoaștere a caracterelor scrisă de mână și demonstrat pe setul de date standard MNIST, atingând aproximativ 99.,2% precizie de clasificare (sau o rată de eroare de 0,8%). Rețeaua a fost apoi descrisă ca tehnica centrală într-un sistem mai larg denumit rețele de transformatoare grafice.

este o lucrare lungă și poate cea mai bună parte pe care trebuie să vă concentrați este Secțiunea II. B. care descrie arhitectura LeNet-5. În secțiune, lucrarea descrie rețeaua ca având șapte straturi cu imagini în tonuri de gri de intrare având forma 32×32, dimensiunea imaginilor din setul de date MNIST.

modelul propune un model al unui strat convoluțional urmat de un strat mediu de grupare, denumit strat subsampling., Acest model se repetă de două ori și jumătate înainte ca hărțile caracteristicilor de ieșire să fie aplatizate și alimentate la un număr de straturi complet conectate pentru interpretare și o predicție finală. O imagine a arhitecturii rețelei este furnizată în lucrare și reprodusă mai jos.

Arhitectura LeNet-5 Convoluțional Rețele Neuronale pentru Recunoașterea caracterelor scrise de Mână (luate din 1998 hârtie).,modelul blocurilor de straturi convoluționale și straturi de grupare grupate și repetate rămâne un model comun în proiectarea și utilizarea rețelelor neuronale convoluționale astăzi, mai mult de douăzeci de ani mai târziu.interesant este că arhitectura folosește un număr mic de filtre ca primul strat ascuns, în special șase filtre fiecare cu dimensiunea de 5×5 pixeli., După punerea în comun (numit subsampling strat), un alt convoluțional strat are mai multe filtre, din nou, cu o dimensiune mai mică, dar mai mic decât înainte convoluțional strat, special 16 filtre cu dimensiunea de 5×5 pixeli, urmat din nou prin comasare. În repetarea acestor două blocuri de convoluție și pooling straturi, tendința este o creștere a numărului de filtre.în comparație cu aplicațiile moderne, numărul de filtre este de asemenea mic, dar tendința de creștere a numărului de filtre cu adâncimea rețelei rămâne, de asemenea, un model comun în utilizarea modernă a tehnicii.,aplatizarea hărților caracteristicilor și interpretarea și clasificarea caracteristicilor extrase prin straturi complet conectate rămâne, de asemenea, un model comun astăzi. În terminologia modernă, secțiunea finală a arhitecturii este adesea menționată ca clasificator, în timp ce straturile convoluționale și de grupare mai devreme în model sunt denumite extractor de caracteristici.putem rezuma aspectele cheie ale arhitecturii relevante în modelele moderne după cum urmează:

  • imagini de intrare de dimensiuni fixe.
  • grupați straturile convoluționale și de grupare în blocuri.,
  • repetarea blocurilor convoluționale în arhitectură.
  • creșterea numărului de filtre cu adâncimea rețelei.
  • extracție caracteristică distinctă și clasificator părți ale arhitecturii.

AlexNet

lucrarea Pe care, probabil, ar putea fi creditat cu scântei interes reînnoit în rețelele neuronale și începutul dominației învățare profundă în multe viziune de calculator aplicații a fost în 2012 de hârtie de Alex Krizhevsky, et al. intitulat ” Clasificarea ImageNet cu rețele neuronale convoluționale profunde.,”

lucrarea descrie un model denumit ulterior „AlexNet” conceput pentru a aborda ImageNet Scară Largă Recunoaștere Vizuală Provocare sau ILSVRC-2010 concurs pentru clasificarea fotografii de obiecte într-unul din 1.000 de diferite categorii.ILSVRC a fost o competiție organizată în perioada 2011-2016, menită să stimuleze inovația în domeniul viziunii pe calculator. Înainte de dezvoltarea AlexNet, sarcina a fost considerată foarte dificilă și mult dincolo de capacitatea metodelor moderne de viziune computerizată., AlexNet a demonstrat cu succes capacitatea de convoluțional rețea neuronală model în domeniu, și a aprins un foc care a dus la mult mai multe îmbunătățiri și inovații, multe de demonstrat pe același ILSVRC sarcină în anii următori. În sens mai larg, lucrarea a arătat că este posibil să se dezvolte profundă și eficientă end-to-end modele pentru o problemă dificilă fără ajutorul nesupravegheat pretraining tehnici care au fost populare la timp.important în proiectarea AlexNet a fost o suită de metode care au fost noi sau de succes, dar nu a adoptat pe scară largă la momentul respectiv., Acum, ele au devenit cerințe atunci când se utilizează CNNs pentru clasificarea imaginilor.AlexNet a folosit funcția de activare liniară rectificată, sau ReLU, ca neliniar după fiecare strat convoluțional, în loc de funcții în formă de S, cum ar fi logistic sau tanh, care erau comune până în acel moment. De asemenea, în stratul de ieșire a fost utilizată o funcție de activare softmax, acum o bază pentru clasificarea în mai multe clase cu rețele neuronale.,

În medie, punerea în comun folosit în LeNet-5 a fost înlocuit cu un max comun metodă, deși în acest caz, suprapunându-se punerea în comun a fost de găsit pentru a depasi non-se suprapun comun, care este frecvent utilizat în prezent (de exemplu, pas de gruparea de funcționare este de aceeași dimensiune ca gruparea de operare, de exemplu, 2 de 2 pixeli). Pentru a aborda supraincarcarea, metoda de abandon nou propusă a fost utilizată între straturile complet conectate ale părții de clasificator a modelului pentru a îmbunătăți eroarea de generalizare.arhitectura AlexNet este profundă și se extinde pe unele dintre modelele stabilite cu LeNet-5., Imaginea de mai jos, preluată din hârtie, rezumă arhitectura modelului, în acest caz, împărțită în două conducte pentru a se antrena pe hardware-ul GPU al vremii.

Arhitectura AlexNet Convoluțional Rețea Neuronală pentru Obiect Fotografie Clasificare (luate din 2012 de hârtie).modelul are cinci straturi convoluționale în partea de extracție a caracteristicilor modelului și trei straturi complet conectate în partea de clasificator a modelului.imaginile de intrare au fost fixate la dimensiunea 224×224 cu trei canale de culoare., În ceea ce privește numărul de filtre utilizate în fiecare strat convoluțional, modelul de creștere a numărului de filtre cu adâncime văzut în LeNet a fost respectat în cea mai mare parte, în acest caz, dimensiunile: 96, 256, 384, 384 și 256. În mod similar, a fost utilizat modelul de scădere a dimensiunii filtrului (kernel) cu adâncime, pornind de la dimensiunea mai mică de 11×11 și scăzând la 5×5 și apoi la 3×3 în straturile mai profunde. Utilizarea filtrelor mici, cum ar fi 5×5 și 3×3 este acum norma.,

un model al unui strat convoluțional urmat de stratul de pooling a fost utilizat la începutul și la sfârșitul părții de detectare a caracteristicilor a modelului. Interesant, a fost folosit un model de strat convoluțional urmat imediat de un al doilea strat convoluțional. Și acest model a devenit un standard modern.

modelul a fost instruit cu augmentarea datelor, mărind în mod artificial dimensiunea setului de date de antrenament și oferind modelului mai mult o oportunitate de a învăța aceleași caracteristici în orientări diferite.,putem rezuma aspectele cheie ale arhitecturii relevante în modelele moderne după cum urmează:

  • utilizarea funcției de activare ReLU după straturile convoluționale și softmax pentru stratul de ieșire.
  • utilizarea Max Pooling în loc de Pooling medie.
  • utilizarea regularizării abandonului între straturile complet conectate.
  • modelul stratului convoluțional alimentat direct la un alt strat convoluțional.
  • utilizarea augmentării datelor.,

VGG

dezvoltarea de adâncime convoluțional rețele neuronale pentru computer vision sarcini părea să fie un pic de un întuneric de artă după AlexNet.

Un lucru important pe care a căutat să standardizeze proiectare de arhitectura pentru deep convoluțional rețelelor și a dezvoltat mult mai profundă și mai performante modele în procesul fost 2014 document intitulat „Foarte Adânc Convoluțional Rețele de Scară Largă Recunoaștere a Imaginilor” de Karen Minsk și Andrew Zisserman.

arhitectura lor este în general menționată ca VGG după numele laboratorului lor, grupul de geometrie vizuală de la Oxford., Modelul lor a fost dezvoltată și demonstrată pe sameILSVRC concurs, în acest caz, ILSVRC-2014 versiune de probă.prima diferență importantă care a devenit un standard de facto este utilizarea unui număr mare de filtre mici. În mod special, filtre cu dimensiunea 3×3 și 1×1, cu pas de unul, diferit de mari dimensiuni filtre în LeNet-5 și mai mici, dar încă relativ mare de filtre și mare pas din patru în AlexNet.,

Max comun straturi sunt folosite după cele mai multe, dar nu toate, convoluțional straturi, de învățare, de exemplu, în AlexNet, dar punerea în comun se realizează cu dimensiuni de 2×2 și același pas, că prea a devenit un standard de facto. Mai exact, rețelele VGG folosesc exemple de două, trei și chiar patru straturi convoluționale stivuite împreună înainte de a fi utilizat un strat maxim de pooling. Motivul a fost că straturile convoluționale stivuite cu filtre mai mici aproximează efectul unui strat convoluțional cu un filtru de dimensiuni mai mari, de ex., trei straturi convoluționale stivuite cu filtre 3×3 aproximează un strat convoluțional cu un filtru 7×7.o altă diferență importantă este numărul foarte mare de filtre utilizate. Numărul de filtre crește odată cu adâncimea modelului, deși începe de la un număr relativ mare de 64 și crește prin filtre 128, 256 și 512 la sfârșitul părții de extracție a caracteristicilor modelului.un număr de variante ale arhitecturii au fost dezvoltate și evaluate, deși două sunt menționate cel mai frecvent având în vedere performanța și profunzimea lor., Ele sunt numite pentru numărul de straturi: ele sunt VGG-16 și VGG-19 pentru 16 și respectiv 19 straturi învățate.

mai Jos este un tabel preluat din hârtie; notă cele două extrema dreaptă coloane indică configurația (numărul de filtre) utilizate în VGG-16 și VGG-19 versiuni de arhitectura.

Arhitectura VGG Convoluțional Rețea Neuronală pentru Obiect Fotografie Clasificare (luate din 2014 de hârtie).,deciziile de proiectare din modelele VGG au devenit punctul de plecare pentru utilizarea simplă și directă a rețelelor neuronale convoluționale în general.în cele din urmă, lucrarea VGG a fost printre primii care au lansat greutățile valoroase ale modelului sub o licență permisivă care a dus la o tendință în rândul cercetătorilor de viziune computerizată de învățare profundă. Acest lucru, la rândul său, a dus la utilizarea grea a modelelor pre-instruite, cum ar fi VGG, în învățarea prin transfer, ca punct de plecare pentru noile sarcini de viziune asupra computerului.,putem rezuma aspectele cheie ale arhitecturii relevante în modelele moderne după cum urmează:

  • utilizarea filtrelor convoluționale foarte mici, de exemplu 3×3 și 1×1 cu un pas de unul.
  • utilizarea de maxim pooling cu o dimensiune de 2×2 și un pas de aceleași dimensiuni.
  • importanța stivuire straturi convoluționale împreună înainte de a utiliza un strat de pooling pentru a defini un bloc.
  • repetarea dramatică a modelului bloc convoluțional-pooling.
  • dezvoltarea modelelor foarte profunde (16 și 19 straturi).,

Inception și GoogLeNet

inovații importante în utilizarea straturilor convoluționale au fost propuse în lucrarea din 2015 de Christian Szegedy și colab. intitulat ” Mergând mai adânc cu convoluții.în lucrare, autorii propun o arhitectură denumită inception (sau inception v1 pentru a o diferenția de extensii) și un model specific numit GoogLeNet care a obținut rezultate de top în versiunea 2014 a ILSVRC challenge.

inovația cheie pe modelele inception se numește modulul inception., Acesta este un bloc de straturi convoluționale paralele cu filtre de dimensiuni diferite (de ex. 1×1, 3×3, 5×5) și un strat de 3×3 max pooling, ale cărui rezultate sunt apoi concatenate. Mai jos este un exemplu al modulului inception preluat din hârtie.

Exemplu de Naiv Începuturile Module (luate din 2015 hârtie).o problemă cu o implementare naivă a modelului inception este că numărul de filtre (adâncime sau canale) începe să se acumuleze rapid, mai ales atunci când modulele inception sunt stivuite.,

Efectuarea convolutions cu dimensiuni mai mari ale filtrelor (de exemplu, 3 și 5) pot fi de calcul scump pe un număr mare de filtre. Pentru a aborda acest lucru, straturile convoluționale 1×1 sunt utilizate pentru a reduce numărul de filtre din modelul inițial. Mai exact înainte de straturile convoluționale 3×3 și 5×5 și după stratul de punere în comun. Imaginea de mai jos preluată din hârtie arată această modificare a modulului inception.

Exemplu de la Începuturile Module Cu Reducerea Dimensionalității (luate din 2015 hârtie).,o a doua decizie importantă de proiectare în modelul inițial a fost conectarea ieșirii în diferite puncte ale modelului. Acest lucru a fost realizat prin crearea de mici rețele de ieșire off-shoot din rețeaua principală care au fost instruite să facă o predicție. Intenția a fost de a furniza un semnal de eroare suplimentar din sarcina de clasificare în diferite puncte ale modelului profund pentru a aborda problema gradienților de dispariție. Aceste rețele mici de ieșire au fost apoi eliminate după antrenament.,

mai Jos prezinta o versiune rotit (de la stânga la dreapta pentru intrare la ieșire) de arhitectura GoogLeNet model luate din hârtie folosind Începuturile module de intrare, pe stânga, la ieșirea de clasificare pe dreapta și două de ieșire suplimentare rețele care au fost utilizate numai în timpul antrenamentului.

Arhitectura GoogLeNet Modelul Folosit în Timpul antrenamentului pentru Obiect Fotografie Clasificare (luate din 2015 hârtie).,interesant, suprapunerea max pooling a fost utilizat și o operațiune de pooling medie mare a fost utilizat la sfârșitul părții de extracție caracteristică a modelului înainte de partea clasificator a modelului.putem rezuma aspectele cheie ale arhitecturii relevante în modelele moderne după cum urmează:

  • dezvoltarea și repetarea modulului inițial.
  • utilizarea grea a convoluției 1×1 pentru a reduce numărul de canale.
  • utilizarea feedback-ului de eroare în mai multe puncte din rețea.dezvoltarea modelelor foarte profunde (cu 22 de straturi).,
  • utilizarea de pooling medie globală pentru producția modelului.

Reziduale de Rețea sau ResNet

Un final inovație importantă în convoluțional plase neuronale pe care le vom examina fost propus de Kaiming A, et al. în lucrarea lor din 2016 intitulată ” învățare reziduală profundă pentru recunoașterea imaginii.”

În lucrare, autorii au propus o foarte profundă model numit un reziduu de Rețea, sau ResNet pe scurt, un exemplu de care a atins succesul pe 2015 versiune a ILSVRC provocare.modelul lor a avut un impresionant 152 de straturi., Cheia designului modelului este ideea blocurilor reziduale care utilizează conexiunile rapide. Acestea sunt pur și simplu conexiuni în arhitectura de rețea în care intrarea este păstrată ca atare (nu este ponderată) și transmisă unui strat mai profund, de ex.sărind peste următorul strat.

un bloc rezidual este un model de două straturi convoluționale cu activare ReLU în care ieșirea blocului este combinată cu intrarea în bloc, de exemplu conexiunea rapidă. O versiune proiectată de intrare utilizate prin 1×1 în cazul în care forma de intrare la blocul este diferit de ieșire a blocului, așa-numitele 1×1 convoluții., Acestea sunt denumite conexiuni de scurtături proiectate, în comparație cu conexiunile de scurtături neponderate sau de identitate.

autorii începe cu ceea ce ei numesc o simplă rețea, care este o VGG-a inspirat adânc convoluțional rețea neuronală cu filtre mici (3×3), grupate convoluțional straturi urmat cu nici o acumulare în între, și un mediu comun la sfârșitul caracteristică detector parte de modelul anterior pe deplin conectat strat de ieșire cu o softmax funcție de activare.,

rețeaua simplă este modificată pentru a deveni o rețea reziduală prin adăugarea de conexiuni rapide pentru a defini blocuri reziduale. De obicei, forma de intrare pentru conexiunea de comenzi rapide este aceeași dimensiune ca și ieșirea blocului rezidual.

imaginea De mai jos a fost luat de la ziar și de la stânga la dreapta compară arhitectura unui VGG model, un simplu convoluțional model, și o versiune de câmpie convoluțional cu reziduale module, numește rețea reziduală.,

Arhitectura de Rețea Reziduală pentru Obiect Fotografie Clasificare (luate din 2016 hârtie).putem rezuma aspectele cheie ale arhitecturii relevante în modelele moderne după cum urmează:

  • utilizarea conexiunilor de comenzi rapide.
  • dezvoltarea și repetarea blocurilor reziduale.
  • dezvoltarea de modele foarte profunde (152-strat).

Lectură suplimentară

această secțiune oferă mai multe resurse pe această temă dacă doriți să aprofundați.,

lucrări

  • învățarea bazată pe Gradient aplicată recunoașterii documentelor, (PDF) 1998.
  • Clasificarea ImageNet cu rețele neuronale convoluționale profunde, 2012.
  • rețele convoluționale foarte adânci pentru recunoașterea imaginilor la scară largă, 2014.
  • Mergând mai adânc cu convoluții, 2015.
  • Adânc Reziduale de Învățare pentru Recunoaștere a Imaginilor, 2016

API

  • Keras Aplicații API

Articole

  • 9 de Învățare Profundă Documentele ce Trebuie Să Știți Despre
  • Un Ghid Simplu pentru Versiunile de la Începuturile Rețelei, în 2018.,
  • CNN Arhitecturi: LeNet, AlexNet, VGG, GoogLeNet, ResNet și mai mult., 2017.

rezumat

În acest tutorial, ați descoperit reperele cheie ale arhitecturii pentru utilizarea rețelelor neuronale convoluționale pentru o clasificare provocatoare a imaginii.mai exact, ați învățat:

  • cum să modelați numărul de filtre și dimensiunile filtrelor atunci când implementați rețele neuronale convoluționale.
  • cum să aranjați straturile convoluționale și de grupare într-un model uniform pentru a dezvolta modele performante.,
  • cum se utilizează modulul inițial și modulul rezidual pentru a dezvolta rețele convoluționale mult mai profunde.

aveți întrebări?
puneți întrebările în comentariile de mai jos și voi face tot posibilul pentru a răspunde.

dezvoltați modele de învățare profundă pentru viziune astăzi!

dezvoltați propriile modele de viziune în câteva minute

…,cu doar câteva linii de cod python

a Descoperi modul în noua mea carte Electronică:
Învățare Profundă pentru Viziune de Calculator

Acesta oferă auto-studiu tutoriale pe teme cum ar fi:
de clasificare, de detectare a obiectelor (yolo și rcnn), de recunoaștere a feței (vggface și facenet), pregătirea datelor și mult mai mult…

în cele din urmă aduceți învățarea profundă proiectelor dvs. de viziune

săriți academicienii. Doar Rezultate.

vezi ce este în interiorul

Tweet Share Share