In realtà immagino che la domanda sia un po 'ampia! Comunque.
Comprensione delle reti di convoluzione
Ciò che viene appreso ConvNets
cerca di ridurre al minimo la funzione di costo per classificare correttamente gli input nelle attività di classificazione. Tutti i parametri modificati e i filtri appresi servono a raggiungere l'obiettivo indicato.
Funzionalità apprese in diversi livelli
Tentano di ridurre i costi apprendendo caratteristiche di basso livello, a volte insignificanti, come le linee orizzontali e verticali nei loro primi livelli e quindi impilandole per creare forme astratte, che spesso hanno un significato, negli ultimi livelli. Per illustrare questa fig. 1, che è stato utilizzato da qui , può essere considerato. L'ingresso è il bus e la cintura mostra le attivazioni dopo aver passato l'ingresso attraverso diversi filtri nel primo livello. Come si può vedere, il riquadro rosso che è l'attivazione di un filtro, che i suoi parametri sono stati appresi, è stato attivato per bordi relativamente orizzontali. La cornice blu è stata attivata per bordi relativamente verticali. È possibile questoConvNets
apprendere i filtri sconosciuti che sono utili e noi, come ad esempio i professionisti della visione artificiale, non abbiamo scoperto che potrebbero essere utili. La parte migliore di queste reti è che cercano di trovare i filtri appropriati da soli e non usano i nostri filtri scoperti limitati. Imparano i filtri per ridurre la quantità della funzione di costo. Come accennato, questi filtri non sono necessariamente noti.
In strati più profondi, le caratteristiche apprese nei livelli precedenti si uniscono e formano forme che spesso hanno un significato. In questo articolo è stato discusso che questi strati possono avere attivazioni che sono significative per noi o che i concetti che hanno significato per noi, come esseri umani, possono essere distribuiti tra altre attivazioni. In fig. 2 la cornice verde mostra le attivazioni di un filtro nel quinto strato di aConvNet
. Questo filtro si prende cura dei volti. Supponiamo che a quello rosso importi dei capelli. Questi hanno un significato. Come si può vedere ci sono altre attivazioni che sono state attivate proprio nella posizione delle facce tipiche nell'input, la cornice verde è una di queste; La cornice blu è un altro esempio di questi. Di conseguenza, l'astrazione delle forme può essere appresa da un filtro o da numerosi filtri. In altre parole, ogni concetto, come la faccia e i suoi componenti, può essere distribuito tra i filtri. Nei casi in cui i concetti sono distribuiti su diversi livelli, se qualcuno li osserva, possono essere sofisticati. Le informazioni sono distribuite tra loro e per capire che tutte le informazioni su quei filtri e le loro attivazioni devono essere prese in considerazione sebbene possano sembrare molto complicate.
CNNs
non dovrebbe essere considerato come una scatola nera. Zeiler e tutti in questo straordinario articolo hanno discusso dello sviluppo di modelli migliori ridotti a tentativi ed errori se non si capisce cosa viene fatto all'interno di queste reti. Questo documento tenta di visualizzare le mappe caratteristiche in ConvNets
.
Capacità di gestire diverse trasformazioni da generalizzare
ConvNets
utilizzare i pooling
livelli non solo per ridurre il numero di parametri, ma anche per avere la capacità di essere insensibili alla posizione esatta di ciascuna funzione. Inoltre, il loro utilizzo consente ai livelli di apprendere diverse funzionalità, il che significa che i primi livelli apprendono semplici funzioni di basso livello come bordi o archi, mentre i livelli più profondi apprendono caratteristiche più complicate come occhi o sopracciglia. Max Pooling
ad es. cerca di verificare se esiste una funzione speciale in una regione speciale o meno. L'idea dei pooling
livelli è così utile ma è solo in grado di gestire la transizione tra altre trasformazioni. Sebbene i filtri in diversi livelli provino a trovare modelli diversi, ad esempio una faccia ruotata viene appresa utilizzando livelli diversi rispetto a una faccia normale,CNNs
di per sé non hanno alcun livello per gestire altre trasformazioni. Per illustrare questo supponiamo che tu voglia imparare facce semplici senza alcuna rotazione con una rete minima. In questo caso il tuo modello potrebbe farlo perfettamente. supponiamo che ti venga chiesto di imparare tutti i tipi di facce con rotazione delle facce arbitraria. In questo caso il tuo modello deve essere molto più grande della precedente rete appresa. Il motivo è che devono essere presenti filtri per apprendere queste rotazioni nell'input. Purtroppo queste non sono tutte trasformazioni. Anche il tuo contributo potrebbe essere distorto. Questi casi hanno fatto arrabbiare Max Jaderberg e tutti . Hanno composto questo documento per affrontare questi problemi al fine di calmare la nostra rabbia come la loro.
Le reti neurali convoluzionali funzionano
Infine, dopo aver fatto riferimento a questi punti, funzionano perché provano a trovare modelli nei dati di input. Li impilano per creare concetti astratti da lì strati di convoluzione. Provano a scoprire se i dati di input hanno ciascuno di questi concetti o no in strati densi per capire a quale classe appartengono i dati di input.
Aggiungo alcuni link utili: