Architettura della rete neurale convoluzionale | Architettura della CNN

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 !!

Tomemos una convolucional neuronale rosso semplice,

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 función de activación es un nodo que se coloca al final o entre las redes neuronales. Aiutano a decidere se il neurone si attiverà o meno.. Tenemos diferentes tipos de funciones de activación como en la figura anteriore, 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, estudiemos una neuronale rosso básica llamada 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.