Sono in ritardo al gioco, ma volevo postare per riflettere alcuni sviluppi attuali nelle reti neurali convoluzionali rispetto alle connessioni da saltare .
Un team di ricerca Microsoft ha recentemente vinto il concorso ImageNet 2015 e pubblicato un rapporto tecnico Deep Residual Learning for Image Recognition che descrive alcune delle loro idee principali.
Uno dei loro principali contributi è questo concetto di strati residui profondi . Questi strati residui profondi utilizzano connessioni salta . Usando questi strati residui profondi, sono stati in grado di addestrare una rete conv di 152 strati per ImageNet 2015. Hanno persino addestrato una rete conv di 1000+ strati per CIFAR-10.
Il problema che li ha motivati è il seguente:
Quando le reti più profonde sono in grado di iniziare a convergere, è stato riscontrato un problema di degrado : con l'aumentare della profondità della rete, l'accuratezza si satura (che potrebbe non sorprendere) e quindi degrada rapidamente. Inaspettatamente, tale degrado non è causato da un eccesso di adattamento e l'aggiunta di più strati a un modello adeguatamente profondo porta a un errore di allenamento superiore ...
L'idea è che se si prende una rete "superficiale" e si impila semplicemente su più livelli per creare una rete più profonda, le prestazioni della rete più profonda dovrebbero essere almeno buone quanto la rete superficiale come la rete più profonda potrebbe apprendere l'esatta superficialità rete impostando i nuovi livelli sovrapposti su livelli identità (in realtà sappiamo che è molto improbabile che ciò accada senza l'utilizzo di precedenti architetturali o metodi di ottimizzazione attuali). Hanno osservato che non era così e che l'errore di allenamento a volte peggiorava quando impilavano più strati sopra un modello più superficiale.
Quindi questo li ha motivati a usare salta connessioni e usare i cosiddetti strati residui profondi per consentire alla loro rete di apprendere deviazioni dal livello di identità, da qui il termine residuo , residuo qui che si riferisce alla differenza dall'identità.
Implementano le connessioni saltate nel modo seguente:
Quindi visualizzano la mappa come una mappa residua. Usano una connessione skip layer per trasmettere questa mappatura in . Quindi se il residuo è "piccolo", la mappa è approssimativamente l'identità.F( x ) : = H ( x ) - xF( x ) + x = H ( x )F( x )H (x)
In questo modo l'uso di strati residui profondi tramite connessioni skip consente alle loro reti profonde di apprendere livelli di identità approssimativi, se questo è effettivamente ciò che è ottimale o localmente ottimale. Infatti sostengono che i loro strati residui:
Mostriamo con esperimenti (Fig. 7) che le funzioni residue apprese in generale hanno piccole risposte
Sul motivo per cui esattamente questo funziona non hanno una risposta esatta. È altamente improbabile che i livelli di identità siano ottimali, ma ritengono che l'utilizzo di questi livelli residui aiuti a precondizionare il problema e che sia più facile apprendere una nuova funzione dato un riferimento / linea di base di confronto alla mappatura dell'identità piuttosto che apprenderne uno "da zero" senza usare la base di identità. Chissà. Ma ho pensato che sarebbe stata una bella risposta alla tua domanda.
A proposito, col senno di poi: la risposta di Sashkello è ancora migliore, no?