Rete neurale con connessioni skip-layer


26

Sono interessato alla regressione con le reti neurali.

Le reti neurali con zero nodi nascosti + connessioni skip-layer sono modelli lineari.

Che dire delle stesse reti neurali ma con nodi nascosti? Mi chiedo quale sarebbe il ruolo delle connessioni skip-layer?

Intuitivamente, direi che se includi le connessioni skip-layer, il modello finale sarà una somma di un modello lineare + alcune parti non lineari.

C'è qualche vantaggio o svantaggio nell'aggiungere connessioni skip layer alle reti neurali?

Risposte:


38

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: inserisci qui la descrizione dell'immagine

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?


Cosa intendi per precondizione? (anche la tua risposta è molto meglio di quella di Sashkello per molti imho). Inoltre, quindi il problema è che l'aggiunta di ulteriori livelli senza le connessioni skip rende difficile per la rete più profonda persino trovare la mappatura delle identità? (per qualche motivo?)
Charlie Parker,

20

In teoria, le connessioni skip-layer non dovrebbero migliorare le prestazioni della rete. Ma poiché le reti complesse sono difficili da addestrare e facili da equipaggiare, può essere molto utile aggiungere esplicitamente questo come termine di regressione lineare, quando sai che i tuoi dati hanno una forte componente lineare. Questo suggerisce il modello nella giusta direzione ... Inoltre, questo è più interpretabile poiché presenta il tuo modello come lineare + perturbazioni, svelando un po 'di una struttura dietro la rete, che di solito è vista semplicemente come una scatola nera.


@sashkello puoi approfondire "le connessioni skip-layer non dovrebbero migliorare le prestazioni della rete", in modo teorico. Sarebbe bello da capire.
sospetto

@hunch È perché puoi modellarlo senza la necessità di saltare il layer. Skip-layer è solo un termine lineare. La funzione Sigmoid è ~ lineare intorno a 0. Quindi, una connessione skip-layer si comporterà come un nodo nascosto con pesi di input molto piccoli.
sashkello,

5

La mia vecchia cassetta degli attrezzi per la rete neurale (attualmente uso principalmente macchine del kernel) utilizzava la regolarizzazione L1 per eliminare pesi ridondanti e unità nascoste e aveva anche connessioni skip layer. Questo ha il vantaggio che se il problema è essenzialmente lineare, le unità nascoste tendono ad essere potate e ti viene lasciato un modello lineare, che ti dice chiaramente che il problema è lineare.

Come suggerisce sashkello (+1), le MLP sono approssimatori universali, quindi saltare le connessioni dei livelli non migliorerà i risultati nel limite di dati infiniti e di un numero infinito di unità nascoste (ma quando mai ci avviciniamo a quel limite?). Il vero vantaggio è che facilita la stima di buoni valori per i pesi se l'architettura di rete è ben adattata al problema e potresti essere in grado di utilizzare una rete più piccola e ottenere migliori prestazioni di generalizzazione.

Tuttavia, come con la maggior parte delle domande sulla rete neurale, in genere l'unico modo per scoprire se sarà utile o dannoso per un determinato set di dati è quello di provarlo e vedere (utilizzando una procedura di valutazione delle prestazioni affidabile).


3
"provalo e vedi" - parole d'oro :)
sashkello,

0

Basato su Bishop 5.1. Funzioni di rete feed-forward: un modo per generalizzare l'architettura di rete è includere connessioni skip-layer, ognuna delle quali è associata a un parametro adattativo corrispondente. Ad esempio, in una rete a due strati (due strati nascosti) questi andrebbero direttamente dagli input agli output. In linea di principio, una rete con unità nascoste sigmoidali può sempre imitare le connessioni skip layer (per valori di input limitati) utilizzando un peso del primo strato sufficientemente piccolo che, nel suo intervallo operativo, l'unità nascosta è effettivamente lineare, e quindi compensa con un grande valore di peso dall'unità nascosta all'uscita.

In pratica, tuttavia, può essere vantaggioso includere esplicitamente connessioni skip-layer.inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.