7

Molti dei documenti che ho letto fino ad ora hanno detto "la rete di pre-addestramento potrebbe migliorare l'efficienza computazionale in termini di errori di propagazione della schiena" e potrebbero essere ottenuti utilizzando RBM o Autoencoder.In che modo il pre-allenamento migliora la classificazione nelle reti neurali?

  1. Se ho capito bene, AutoEncoders lavorare imparando la funzione identità, e se è nascosta unità in meno rispetto alla dimensione del dati di input, poi lo fa anche la compressione, ma ciò che fa questo anche avere nulla a che fare con il miglioramento dell'efficienza computazionale nella propagazione del segnale di errore all'indietro? È perché i pesi delle unità nascoste pre- non divergono molto dai suoi valori iniziali?

  2. Assumendo scienziati di dati che stanno leggendo questo sarebbe da theirselves sapere già che AutoEncoders assumono input come valori di riferimento in quanto stanno imparando funzione identità, che è considerato come apprendimento non supervisionato, ma può tale metodo essere applicati a convoluzionale Reti neurali per le quali il primo livello nascosto è la mappa delle funzioni ? Ciascuna mappa delle caratteristiche viene creata convolvendo un kernel istruito con un campo ricettivo nell'immagine. Questo kernel appreso, come è possibile ottenere pre-allenamento (modalità non supervisionata)?

risposta

11

Una cosa da notare è che gli autoencoder tentano di imparare la funzione di identificazione non banale, non la funzione di identificazione stessa. Altrimenti non sarebbero stati affatto utili. Bene il pre-allenamento aiuta a spostare i vettori di peso verso un buon punto di partenza sulla superficie dell'errore. Quindi l'algoritmo backpropagation, che fondamentalmente sta facendo la discesa del gradiente, viene utilizzato per migliorare tali pesi. Si noti che la discesa del gradiente rimane bloccata nei minimi locali di chiusura.

enter image description here

[Ignorare il termine globale Minima nell'immagine distaccato e pensare ad esso come un altro, meglio, minimi locali]

Intuitivamente parlando, si supponga siete alla ricerca di un percorso ottimale per arrivare dall'origine A a destinazione B. Avere una mappa senza percorsi mostrati su di essa (gli errori che si ottengono all'ultimo livello del modello di rete neurale) ti dice dove andare. Ma potresti metterti in una strada che ha molti ostacoli, su colline e colline. Supponiamo quindi che qualcuno ti parli di un percorso e di una direzione che ha attraversato prima (il pre-allenamento) e ti consegna una nuova mappa (il punto di partenza della fase pre = allenamento).

Questo potrebbe essere un motivo intuitivo sul perché iniziare con pesi casuali e iniziare immediatamente a ottimizzare il modello con backpropagation potrebbe non necessariamente aiutare a raggiungere le prestazioni ottenute con un modello pre-addestrato. Tuttavia, si noti che molti modelli che raggiungono risultati allo stato dell'arte non usano necessariamente il pre-allenamento e possono usare la backpropagation in combinazione con altri metodi di ottimizzazione (ad esempio adagrad, RMSProp, Momentum e ...) per evitare di ottenere bloccato in un minimo locale .

enter image description here

Here s' la sorgente per la seconda immagine.

+0

Grazie per la spiegazione lucida. –

+0

@VM_AI Prego. Se disponi di molti dati, puoi utilizzare nuove tecniche di ottimizzazione e probabilmente non avrai bisogno di fare alcun pre-allenamento sul modello. – Amir

0

Non so molto sulla teoria degli autoencoder, ma ho lavorato un po 'con gli RBM. Che cosa fanno i RBM predicono quale sia la probabilità di vedere il tipo specifico di dati al fine di ottenere i pesi inizializzati al giusto parco palla - è considerato un modello probabilistico (non supervisionato), quindi non si corregge usando le etichette conosciute . Fondamentalmente, l'idea è che avere un tasso di apprendimento troppo grande non porterà mai a una convergenza, ma avere uno che è troppo piccolo richiederà un allenamento per sempre. Così, con "pretrattamento" in questo modo si scopre il parco giochi dei pesi e quindi si può impostare il tasso di apprendimento in modo che sia piccolo per portarli ai valori ottimali.

Per quanto riguarda la seconda domanda, no, in genere non si prelevano i kernel, almeno non in modo non supervisionato. Sospetto che ciò che si intende per pretrattamento qui sia un po 'diverso rispetto alla prima domanda - questo è per dire che ciò che sta accadendo è che stanno prendendo un modello preliminare (diciamo dal modello zoo) e lo si sintonizza con un nuovo set di dati.

Quale modello si utilizza in genere dipende dal tipo di dati che hai e l'attività in corso. Convnets Ho trovato un allenamento più veloce ed efficiente, ma non tutti i dati hanno un significato quando sono convoluti, nel qual caso dbns potrebbe essere la strada da percorrere. Salvo dire, hai una piccola quantità di dati, quindi userei qualcosa di diverso dalle reti neurali.

In ogni caso, spero che questo aiuti a chiarire alcune delle vostre domande.

Problemi correlati