Domanda

Di recente ho studiato la rete backpropagation e ho fatto qualche esercizio manuale. Dopo di che, mi si avvicinò con una domanda (forse non ha senso): c'è qualche cosa importante nel seguire due diversi metodi di sostituzione: 1. incrementale di formazione: i pesi vengono aggiornati immediatamente volta che tutti i delta Wij del sono noti e prima di presentare il prossimo vettore di formazione. 2. Batch Formazione: delta Wij di vengono calcolati e memorizzati per ogni vettore di formazione esemplare. Tuttavia, i Delta Wij non sono immediatamente utilizzati per aggiornare i pesi. aggiornamento peso è fatto alla fine di un'epoca di formazione.

Googled per un po ', ma non ho trovato alcun risultato.

È stato utile?

Soluzione

Allora, cosa si fa riferimento sono le due modalità per eseguire l'apprendimento discesa del gradiente. In modalità batch, modifiche alla matrice peso vengono accumulati su un'intera presentazione del set di dati di addestramento (un 'epoca'); formazione on-line aggiorna il peso dopo presentazione di ogni vettore che comprende l'insieme di addestramento.

Credo che il consenso è che la formazione online è superiore perché converge molto più veloce (la maggior parte degli studi riportano differenze evidenti nella precisione). (Si veda ad esempio, Randall Wilson & Tony Martinez, l'inefficienza generale della formazione in lotti per Gradient Descent apprendimento , in Reti Neurali (2003).

Il motivo per cui converge formazione online più veloce è che può seguire le curve nella superficie errore sopra ogni epoca. Il significato pratico di questo è che è possibile utilizzare una velocità di apprendimento più grande (e quindi convergere con un minor numero di cicli attraverso i dati di formazione).

Detto in altro modo, la variazione di peso accumulato per gli aumenti di formazione dei lotti con la dimensione del training set. Il risultato è che la formazione in batch utilizza grandi passi ad ogni iterazione, e quindi manca minimi locali nella topologia spazio errori -. Vostri oscilla solver piuttosto che converge

formazione Batch è di solito il 'default' (più spesso utilizzato nei libri di testo ML, ecc) e non c'è niente di sbagliato con l'utilizzo di esso fino a quando converge entro i limiti di tempo accettabili. Ancora una volta, la differenza di prestazioni (risoluzione, o accuratezza classificazione) è piccolo o trascurabile.

Altri suggerimenti

Sì, c'è una differenza tra questi due metodi. I delta che vengono calcolate sono una funzione del vettore di ingresso e dei pesi della rete. Se si modificano i pesi, i delta che sono calcolati a partire dalla prossima vettore di ingresso sarà diverso se non è stato modificato i pesi.

Quindi, per la prima vettore di ingresso, gli stessi delta otterrà calcolata indipendentemente dal metodo scelto. Ora, per il metodo successivo, i pesi della rete cambieranno, mentre nel metodo simultanea, i pesi rimarrà la stessa per ora. Quando il secondo vettore di ingresso è presentata, entrambi i metodi saranno ora producono diversi delta, dal momento che i pesi sono diversi tra le due reti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top