un scurt ghid pentru rețeaua neuronală convoluțională (CNN)

introducere:

Manan Parekh
Manan Parekh

urmați

iulie 16 · 2019 * 5 min citit

rețeaua neuronală convoluțională (CNN sau ConvNet)este o clasă de rețele neuronale profunde care este folosită mai ales pentru recunoașterea imaginii, clasificarea imaginii, detectarea obiectelor etc.

progresele în viziunea computerizată cu învățarea profundă au fost construite și perfecționate cu timpul, în primul rând printr — un anumit algoritm-o rețea neuronală convoluțională.

Google îl folosește pentru căutarea fotografiilor, Facebook pentru algoritmii lor de etichetare automată, Amazon pentru recomandările lor de produse, iar lista continuă și continuă…

cu ajutorul CNN, puteți face o mulțime de lucruri interesante, cum ar fi, am făcut un model de recunoaștere a cifrelor scrise de mână care prezice cifra din imagine cu 98.Precizie de 82%.

primă:

Cod -> https://github.com/UPPERCASEGUY/CNN-implementation

puteți face, de asemenea, modelele se răcească cu puțin ajutor în concepte cu privire la CNN. Acest blog va începe să vă construiască conceptele despre CNNs și sunteți bine să mergeți!

rețele neuronale convoluționale:

Clasificarea imaginii este sarcina de a lua o imagine de intrare și de a scoate o clasă sau o probabilitate de clase care descrie cel mai bine imaginea. În CNN, luăm o imagine ca intrare, acordăm importanță diferitelor sale aspecte/caracteristici din imagine și putem diferenția una de alta. Pre-procesarea necesară în CNN este mult mai mică în comparație cu alți algoritmi de clasificare.

un clasic CNN clasificarea între un câine și o pisică

arhitectura:

reprezentarea matricială a unei imagini.

computerele nu pot vedea lucrurile așa cum facem noi, pentru calculatoare imaginea nu este altceva decât o matrice.

un CNN are de obicei trei straturi: un strat convoluțional, un strat comun și un strat complet conectat.

diferite straturi într-un strat convoluțional CNN

:

sunt destul de sigur că ați întâlnit cuvântul convoluție în viața voastră înainte și aici sensul Nu se schimbă. Da! ai dreptate, acest strat este totul despre convolving obiecte pe unul pe altul. Stratul convoluție este blocul de bază al CNN. Acesta transportă porțiunea principală a sarcinii de calcul a rețelei.

obiectivul principal al convoluție este de a extrage caracteristici, cum ar fi margini, culori, colțuri de intrare. Pe măsură ce intrăm mai adânc în rețea, rețeaua începe să identifice caracteristici mai complexe,cum ar fi forme, cifre, părți ale feței.

Convolutarea imaginii 5x5x1 cu un nucleu 3x3x1 pentru a obține o caracteristică convolută 3x3x1

acest strat realizează un produs punct între două matrice, unde o matrice(cunoscută sub numele de filtru/kernel)este setul de parametri care pot fi învățați, iar cealaltă matrice este porțiunea restricționată a imaginii.

dacă imaginea este RGB, atunci filtrul va avea înălțime și lățime mai mici în comparație cu imaginea, dar va avea aceeași adâncime(înălțime x Lățime x 3) ca a imaginii.

pentru imaginile RGB, partea convolving poate fi vizualizată după cum urmează:

operație de convoluție pe o matrice de imagine MxNx3 cu un nucleu 3x3x3

la sfârșitul procesului de convoluție, avem o matrice prezentată care are parametri(dimensiuni) mai mici decât imaginea reală, precum și caracteristici mai clare decât cea reală. Deci, acum vom lucra cu matricea noastră prezentată de acum înainte.

Strat De Punere În Comun:

acest strat este exclusiv pentru a reduce puterea de calcul necesară pentru procesarea datelor. Se face prin scăderea dimensiunilor matricei prezentate și mai mult. În acest strat, încercăm să extragem caracteristicile dominante dintr-o cantitate limitată de vecinătate. Să clarificăm acest lucru luând un exemplu.

stratul de punere în comun

matricea portocalie este matricea noastră prezentată, cea maro este un nucleu de punere în comun și obținem matricea noastră albastră ca ieșire după ce se face punerea în comun. Deci, aici ceea ce facem este să luăm maximul dintre toate numerele care sunt în regiunea de grupare și să schimbăm regiunea de grupare de fiecare dată pentru a procesa un alt cartier al matricei.

există două tipuri de tehnici de punere în comun: medie-punere în comun și MAX – punere în comun.

diferența dintre aceste două este, în medie-pooling, luăm media tuturor valorilor regiunii pooling și în Max-pooling, luăm doar maximul dintre toate valorile situate în interiorul regiunii pooling.

Deci, după punerea în comun strat, avem o matrice care conține principalele caracteristici ale imaginii și această matrice are dimensiuni chiar mai mici, care va ajuta foarte mult în pasul următor.

strat complet conectat:

până acum nu am făcut nimic despre clasificarea diferitelor imagini, ceea ce am făcut este evidențiat unele caracteristici dintr-o imagine și reduce drastic dimensiunile imaginii.

strat complet conectat în interiorul CNN

de aici înainte, suntem de fapt de gând să facă procesul de clasificare.

acum că ne-am convertit imaginea de intrare într-o formă adecvată pentru arhitectura noastră complet conectată pe Mai multe niveluri, vom aplatiza imaginea într-un vector de coloană. Ieșirea aplatizată este alimentată într-o rețea neuronală feed-forward și backpropagation aplicată fiecărei iterații de antrenament. Pe parcursul unei serii de epoci, modelul poate distinge între caracteristicile dominante și anumite caracteristici de nivel scăzut din imagini și le poate clasifica.

rezumat:

  1. furnizați imaginea de intrare în stratul de convoluție.
  2. ia convoluție cu kernel recomandate/filtre.
  3. aplicați stratul de punere în comun pentru a reduce dimensiunile.
  4. adăugați aceste straturi de mai multe ori.
  5. aplatizați ieșirea și alimentați într-un strat complet conectat.
  6. acum antrenează modelul cu backpropagare folosind regresia logistică.

și v-ați creat rețeaua neuronală convoluțională.

Lasă un răspuns

Adresa ta de email nu va fi publicată.