Come e perché la normalizzazione batch utilizza le medie mobili per tenere traccia dell'accuratezza del modello mentre si allena?


21

Stavo leggendo il documento di normalizzazione in lotti (BN) (1) e non capivo la necessità di utilizzare le medie mobili per tenere traccia dell'accuratezza del modello e anche se ho accettato che era la cosa giusta da fare, non capisco cosa stanno facendo esattamente.

Per quanto ne so (che ho sbagliato), l'articolo menziona che utilizza le statistiche sulla popolazione anziché il mini-batch, statistiche una volta che il modello ha terminato la formazione. Dopo qualche discussione su stime imparziali (che mi sembrano tangenziali e non capisco perché ne parli) vanno e dicono:

Usando invece le medie mobili, seguiamo l'accuratezza del modello mentre si allena.

Questa è la parte che mi confonde. Perché fanno medie mobili per stimare l'accuratezza del modello e su quale set di dati?

Di solito, ciò che le persone fanno per stimare la generalizzazione del loro modello, tengono semplicemente traccia dell'errore di validazione del loro modello (e potenzialmente interrompono presto la discesa del gradiente per regolarizzarlo). Tuttavia, sembra che la normalizzazione batch stia facendo qualcosa di completamente diverso. Qualcuno può chiarire cosa e perché sta facendo qualcosa di diverso?


1 : Ioffe S. e Szegedy C. (2015),
"Normalizzazione in lotti: accelerare la formazione di reti profonde riducendo lo spostamento della covariata interna",
Atti della 32a Conferenza internazionale sull'apprendimento automatico , Lille, Francia, 2015.
Journal of Machine Learning Research: Volume W&CP 37


Sei soddisfatto della risposta votata? Non è affatto una "risposta", se me lo chiedi; se ancora pertinente, posso fornire una risposta migliore.
OverLordGoldDragon

@OverLordGoldDragon fornisce la tua risposta :)
Pinocchio il

Risposte:


8

Quando si utilizza batch_normalization, la prima cosa che dobbiamo capire è che funziona in due modi diversi durante l' addestramento e il test .

  1. Nell'addestramento dobbiamo calcolare la media dei mini lotti per normalizzare il lotto

  2. In conclusione, applichiamo solo statistiche mini batch precalcolate

Quindi nella seconda cosa come calcolare questa statica mini batch

Ecco che arriva la media mobile

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var

Questo non risponde alla domanda in alcun modo; "perché" e "come" è stato chiesto, e un "cosa" superficiale è stato dato. Non dovrebbe essere votato.
OverLordGoldDragon

1

Stanno parlando della normalizzazione in lotti, che hanno descritto per la procedura di addestramento ma non per deduzione.

Questo è un processo di normalizzazione delle unità nascoste usando mezzi di campionamento ecc.

In questa sezione spiegano cosa fare per la fase di inferenza, quando si stanno solo facendo previsioni (cioè dopo che l'allenamento è stato completato).

Tuttavia, nella convalida interrotta interponi la previsione sul set di convalida con l'addestramento per stimare l'errore di convalida.

Quindi durante questo processo non hai una media della popolazione (le medie cambiano ancora mentre ti alleni), quindi usi una media corrente per calcolare i parametri della norma batch per calcolare le prestazioni sul set di validazione.

È in questo senso che

Usando invece le medie mobili, seguiamo l'accuratezza del modello mentre si allena.

nulla a che fare con l'uso letterale dei mezzi di corsa come metrica per le prestazioni della rete neurale.

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.