Architettura della rete neurale convoluzionale | Architettura della CNN

Condividere su Facebook
Condividere su twitter
Condividere su linkato
Condividere su telegramma
Condividere su WhatsApp

Contenuti

Questo articolo è stato pubblicato nell'ambito del Blogathon sulla scienza dei dati.

introduzione

Stai lavorando a un progetto sul riconoscimento di immagini o il rilevamento di oggetti ma non hai le basi per costruire un'architettura?

In questo articolo, Vedremo quali sono le architetture di rete neurale convoluzionale dalle basi e prenderemo un'architettura di base come caso di studio per applicare le nostre conoscenze.L'unico prerequisito è che devi solo sapere come funziona la convoluzione. preoccupati è molto semplice !!

Prendiamo una semplice rete neurale convoluzionale,

90650dnn2-5115625

Analizzeremo i livelli per ottenere informazioni dettagliate su questa CNN.

Primo, ci sono alcune cose da imparare dal mantello 1 Che cos'è passi e imbottitura, vedremo ciascuno di essi a breve con degli esempi

Supponiamo questo nell'array di input di 5 × 5 e un filtro a matrice 3X3, per chi non sa cosa Il filtro è un insieme di pesi in una matrice che viene applicato su un'immagine o una matrice per ottenere le caratteristiche richieste.., cerca per convoluzione se è la prima volta.

Nota: Prendiamo sempre la somma o la media di tutti i valori mentre facciamo una convoluzione.

Un filtro può essere di qualsiasi profondità, se un filtro ha una profondità d, può andare a una profondità di d strati e convolve, vale a dire, aggiungi tutto il (pesos x biglietti) di capas

69676dnn3-4639825

Qui l'input è di dimensione 5 × 5 dopo aver applicato un kernel o filtri 3 × 3, da cui si ottiene una mappa delle caratteristiche di output 3 × 3, quindi proviamo a formulare questo

65111screenshot20166-5880710

Quindi, l'altezza di uscita è formulata e lo stesso con la larghezza di o / anche p …

Riempimento

Mentre applichiamo le convoluzioni, non otterremo le stesse dimensioni di output di quelle di input, perderemo i dati sui bordi, quindi aggiungiamo un bordo di zeri e ricalcoliamo la convoluzione che copre tutti i valori di input.

99433dnn4-3579501

Cercheremo di formulare questo,

65969screenshot20175-9136898

Qui 2 è per due colonne di zeri insieme all'altezza e alla larghezza, e formulare lo stesso anche per la larghezza

affondi

A volte non vogliamo acquisire tutti i dati o le informazioni disponibili, quindi saltiamo alcune celle vicine per visualizzarle,

92373dnn5-6792110

Qui la matrice o l'immagine di input è di dimensioni 5 × 5 con un filtro 3 × 3 e un passo di 2 quindi ogni volta saltiamo due colonne e convolviamo, formuliamo questo

21732screenshot20167-1634218

Se le dimensioni sono in float, può prendere il velo () all'uscita, vale a dire (prossimo prossimo intero)

Qui H si riferisce all'altezza, quindi l'altezza di output è formulata e lo stesso con la larghezza di o / p anche e qui 2 è il valore del passo, quindi puoi farlo come S nelle formule.

Raggruppamento

In termini generali, il raggruppamento si riferisce ad una piccola parte, quindi qui prendiamo una piccola parte dell'input e proviamo a prendere il valore medio chiamato pool medio o prendiamo un valore massimo chiamato pool max, così quando si esegue un raggruppamento su un'immagine, non stiamo assumendo tutti i valori stiamo assumendo un valore di sintesi su tutti i valori presenti !!!

54575dnn6-1331138

qui, questo è un esempio di pooling massimo, Ecco, facendo un passo di due, stiamo prendendo il valore massimo presente nell'array

Funzione trigger

La funzione di attivazione è un nodo che si trova all'estremità o tra le reti neurali. Aiutano a decidere se il neurone si attiverà o meno.. Abbiamo diversi tipi di funzioni di attivazione come nella figura sopra, ma per questo post, la mia attenzione sarà su unità lineare rettificata (riprendere)

54331dnn7-8546250

Non abbassare la mascella, questo non è così complesso questa funzione restituisce semplicemente 0 se il suo valore è negativo, altrimenti, restituisce lo stesso valore che hai fornito, nient'altro che rimuove gli output negativi e mantiene i valori in mezzo 0 e + infinito

Ora che abbiamo appreso tutti i concetti di base necessari, Studiamo una rete neurale di base chiamata LeNet.

LeNet-5

Prima di iniziare vedremo quali sono le architetture progettate fino ad oggi. Questi modelli sono stati testati su dati ImageNet in cui abbiamo oltre un milione di immagini e 1000 classi da prevedere

88265dnn8-8570398

LeNet-5 è un'architettura molto semplice, quindi chiunque può iniziare con architetture avanzate

59467dnn9-1012443

quali sono gli ingressi e le uscite (Copertura frontale 0 e strato N):

Qui stiamo prevedendo le cifre in base all'immagine di input data, nota che qui l'immagine ha le dimensioni di altezza = 32 pixel, ancho = 32 pixel e una profondità di 1, quindi possiamo presumere che sia un'immagine in scala di grigi o in bianco e nero, Tenendo conto che l'uscita è un softmax di 10 valori, qui softmax fornisce probabilità o rapporti per tutti 10 cifre, possiamo prendere il numero come output con la probabilità o il rapporto più alti.

convoluzione 1 (Copertura frontale 1):

28844screenshot20168-6310615

Qui prendiamo l'input e convolviamo con i filtri di dimensione 5 X 5, producendo così un output di dimensioni 28 x 28. Controllare la formula sopra per calcolare le dimensioni di output, cos'è che abbiamo preso 6 filtri di questo tipo e, così, il la profondità di conv1 è 6, così, le sue dimensioni erano 28 X 28 X 6 ora passalo al livello del pool

Raggruppamento 1 (Copertura frontale 2):

59702screenshot20170-3922840

Qui stiamo prendendo 28 X 28 X 6 come input e applicando la combinazione media di una matrice di 2 × 2 e un passo da 2, vale a dire, posizionando una matrice di 2 X 2 sull'input e prendendo la media di tutti quei quattro pixel e saltando con un salto di 2 colonne ogni volta, cosa dà 14 X 14 X 6 come uscita, stiamo calcolando il raggruppamento per ogni livello, quindi qui la profondità di output è 6

convoluzione 2 (Copertura frontale 3):

59083dnn10-2418903

Qui stiamo prendendo il 14 X 14 X 6, vale a dire, lui o / py convolvo con un filtro di dimensione 5 x5, con un passo di 1, vale a dire (nessun salto), e con zero ripieni, quindi otteniamo un output di 10 X 10, Ora qui prendiamo 16 filtri di questo tipo di profondità 6 e convolviamo ottenendo così un output di 10 X 10 X 16

Raggruppamento 2 (Copertura frontale 4):

98064dnn11-1381778

Qui prendiamo l'output del livello precedente ed eseguiamo il pooling medio con un passaggio di 2, vale a dire (salta due colonne) e con un filtro taglia 2 X 2, qui sovrapponiamo questo filtro agli strati di 10 X 10 X 16 così per ciascuno 10 X 10 otteniamo output da 5 X 5, così, ottenere 5 X 5 X 16

Copertura frontale (N-2) e Strato (N-1):

90366dnn12-6023324

Finalmente, Appiattiamo tutti i valori di 5 X 5 X 16 alla dimensione di un singolo strato 400 e inserirli in una rete neurale feed-forward di 120 neuroni che hanno una matrice di peso di dimensioni. [400,120] e uno strato nascosto di 84 neuroni collegati da 120 neuroni con matrice di peso di [120,84] e tu sei 84 i neuroni sono effettivamente collegati 10 neuroni in uscita

64119dnn13-6134443

Questi neuroni il / p fine il numero previsto da softmaxing.

Come funziona davvero una rete neurale convoluzionale??

Funziona attraverso la condivisione del peso e la connettività scarsa,

69373screenshot20172-6445235

Ecco, come potete vedere la convoluzione ha dei pesi questi pesi sono condivisi da tutti i neuroni di input, non ogni input ha un peso separato chiamato peso condiviso, e non tutti i neuroni di input sono collegati al neurone di output e solo alcuni che sono contorti vengono attivati, ciò che è noto come connettività sparsa, La CNN non è diversa dalle reti neurali feed-forward, Queste due proprietà le rendono speciali!!

punti da guardare

1. Dopo ogni circonvoluzione, l'output viene inviato a una funzione di trigger per ottenere funzionalità migliori e mantenere la positività, ad esempio: riprendere

2. La scarsa connettività e il peso condiviso sono i motivi principali per il funzionamento di una rete neurale convoluzionale.

3. Il concetto di scegliere una serie di filtri tra strati e imbottiture e le dimensioni della falcata e del filtro viene ripreso conducendo una serie di esperimenti, Non si preoccupi, concentrarsi sulla costruzione delle fondamenta, un giorno farai quegli esperimenti e costruirai un ambiente più produttivo !!!

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.