L'aggiunta di rumore casuale ai livelli nascosti è considerata una regolarizzazione? Qual è la differenza tra farlo e aggiungere dropout e normalizzazione batch?


Risposta 1:

Sì, l'aggiunta di rumore casuale ai livelli nascosti è una regolarizzazione esattamente come il dropout. L'intuizione chiave qui è che se la risposta neurale su ogni strato è rumorosa, l'allenamento deve regolare i pesi in modo da separare le categorie con un gioco maggiore del rumore. Pertanto, al momento del test, quando il rumore è assente, la classificazione dovrebbe essere più stabile. Questo è molto simile a come funziona la classificazione del margine massimo e sappiamo tutti quanto siano state efficaci le tecniche del margine massimo (ad es. Support Vector Machines). Tuttavia, devi fare attenzione per assicurarti che il rumore non travolga il segnale.

Il dropout è considerato un metodo di regolarizzazione perché esegue la media del modello. Cioè, durante l'allenamento, il modello in un determinato momento è in realtà una distribuzione di probabilità su una classe di modelli di reti neurali in cui sono fissati i pesi ma può mancare uno qualsiasi dei neuroni nel modello. La probabilità complessiva di ciascuna rete neurale è determinata dalla probabilità individuale di un particolare neurone presente o assente. Questa è regolarizzazione perché fa una media sulla distorsione di ciascuna istanza, levigando la funzione di costo.

L'aggiunta di rumore casuale al livello nascosto funziona allo stesso modo, ma con una diversa distribuzione della probabilità. Invece di avere pesi fissi, hai una topologia fissa e la distribuzione di probabilità sceglie i pesi a caso secondo una distribuzione gaussiana centrata sui pesi "veri", cioè i pesi che stai memorizzando sul tuo disco rigido. Ancora una volta, questa è una media modello e dovrebbe avere un'influenza regolarizzante, con l'avvertenza che il rumore (la varianza) non dovrebbe sopraffare il segnale. Pertanto, ad esempio, se si applica BatchNorm per la prima volta, si avrà un profilo di output normale approssimativamente standard (unità centrate a zero con una varianza) e quindi è possibile applicare il rumore con una varianza, diciamo, di 0,1. Puoi giocare con la varianza per vedere cosa funziona.

EDIT: Poiché la domanda menzionava BatchNorm, volevo sottolineare che BatchNorm non è realmente utilizzato per la regolarizzazione. Cioè, BatchNorm non leviga il costo. Invece, viene aggiunto BatchNorm al fine di migliorare le prestazioni della backpropagation. In sostanza, impedisce che il gradiente propagato alla schiena diventi troppo grande o piccolo ridimensionando e aggiornando; come tecnica, ha connessioni più profonde con i metodi di ottimizzazione del secondo ordine che tentano di modellare la curvatura della superficie dei costi. Come accennato in precedenza, BatchNorm può anche essere utilizzato per garantire che il relativo ridimensionamento sia corretto se si intende aggiungere rumore casuale alle attività neurali.


Risposta 2:

Lo considererei un trucco di ottimizzazione più che la regolarizzazione.

L'effetto dovrebbe essere equivalente all'effetto della stocastica nella SGD.

SGD e la sua ispirazione i metodi Monte Carlo evitano di rimanere bloccati in minimi locali poveri facendo un passo casuale ogni tanto invece di seguire rigorosamente la direzione della discesa più ripida; o facendo qualcosa di equivalente nelle loro varie incarnazioni, ad esempio aggiungendo un componente casuale ad ogni passo invece di fare periodicamente un passo casuale.

L'aggiunta di un rumore casuale debole ai pesi otterrà esattamente lo stesso. [Suggerimento: la discesa gradiente aggiunge anche qualcosa ai pesi in ogni iterazione!]


Risposta 3:

MODIFICARE:

L'aggiunta di rumore casuale distribuito gaussiano ai dati di input di ciascun livello potrebbe rendere il modello più robusto alle piccole modifiche dei dati, consentendo alla rete di distinguere meglio il rumore dal segnale. Come diceva Zeeshan Zia, questo sarebbe essenzialmente un gradiente stocastico decente. Non prenderei ancora in considerazione questa regolarizzazione. È più una tecnica per aiutare il tuo modello a imparare schemi per separare il rumore dal segnale.

Il dropout disattiva casualmente una certa proporzione dei nodi in un livello nascosto su ogni passaggio. Ciò migliora la rete perché la costringe a imparare a riconoscere gli stessi schemi in più modi, il che porta a un modello migliore.

La normalizzazione in batch è il punto in cui prendi gli input in un layer e assicurati che siano tutti normalizzati tra 0 e 1. Questo aiuta la rete a imparare meglio perché mantiene il gradiente decente più coerente e uniforme. In questo modo, eviti di saltare attorno ai minimi perché la pendenza è troppo grande.