2013-03-20 19 views
5

Ho problemi con alcuni concetti nell'apprendimento automatico tramite reti neurali. Uno di questi è backpropagation. Nell'equazione aggiornamento peso,Apprendimento automatico: Backpropagation senza supervisione

delta_w = a*(t - y)*g'(h)*x 

t è il "output di destinazione", che sarebbe la vostra etichetta di classe, o qualcosa del genere, nel caso di apprendimento supervisionato. Ma quale sarebbe il "risultato obiettivo" per l'apprendimento senza supervisione?

Qualcuno può gentilmente fornire un esempio di come si utilizzerebbe BP nell'apprendimento non supervisionato, in particolare per il raggruppamento della classificazione?

Grazie in anticipo.

risposta

6

Non sono sicuro di quale algoritmo di apprendimento automatico non supervisionato utilizzi specificamente il backpropagation; se ce n'è uno non ne ho sentito parlare. Puoi indicare un esempio?

La backpropagation viene utilizzata per calcolare le derivate della funzione di errore per l'addestramento di una rete neurale artificiale rispetto ai pesi nella rete. È chiamato così perché gli "errori" si stanno "propagando" attraverso la rete "all'indietro". Ne hai bisogno in questo caso perché l'errore finale rispetto all'obiettivo dipende da una funzione di funzioni (di funzioni ... a seconda di quanti livelli nella tua ANN.) Le derivate ti permettono di aggiustare i valori per migliorare l'errore funzione, temperato dal tasso di apprendimento (questo è gradient descent).

In algoritmi non supervisionati, non è necessario eseguire questa operazione. Ad esempio, in k-Means, dove si sta tentando di ridurre al minimo l'errore quadratico medio (MSE), è possibile minimizzare l'errore direttamente a ogni passaggio in base ai compiti assegnati; non sono necessarie sfumature. In altri modelli di clustering, come ad esempio un mixture of Gaussians, l'algoritmo expectation-maximization (EM) è molto più potente e preciso di qualsiasi metodo basato sulla discesa del gradiente.

+2

Quindi, suppongo che una domanda di follow-up che ho è questa .. Possiamo usare EM per addestrare una rete neurale sorvegliata? In tal caso, perché preferiremmo BackPropagation su EM? – Shatu

6

La cosa più comune da fare è addestrare an autoencoder, dove le uscite desiderate sono uguali agli ingressi. Questo fa sì che la rete tenti di apprendere una rappresentazione che meglio "comprime" la distribuzione di input.

Here's a patent che descrive un approccio diverso, in cui le etichette di uscita sono assegnate casualmente e quindi a volte capovolte in base ai tassi di convergenza. Sembra strano per me, ma va bene.

Non ho familiarità con altri metodi che utilizzano backpropogation per il clustering o altre attività non controllate. Gli approcci di clustering con le ANN sembrano utilizzare altri algoritmi (example 1, example 2).

+1

+1 su menzionare l'autoencoder. Totalmente dimenticato di questo. :) –

1

Per utilizzare la retropropagazione per l'apprendimento non supervisionato è semplicemente necessario impostare t, l'output di destinazione, in ogni fase dell'algoritmo alla classe per la quale la distanza media per ogni elemento della classe prima dell'aggiornamento è minima. In breve, cerchiamo sempre di addestrare l'ANN per inserire il suo input nella classe i cui membri sono i più simili in termini di input. Poiché questo processo è sensibile alla scala di input, è necessario prima normalizzare i dati di input in ogni dimensione sottraendo la media e dividendo per la deviazione standard per ciascun componente al fine di calcolare la distanza in modo scala-invariante.

Il vantaggio di utilizzare una rete neurale back-prop piuttosto che una semplice distanza da una definizione centrale dei cluster è che le reti neurali possono consentire confini più complessi e irregolari tra i cluster.

2

Quello che potresti chiederti riguarda l'apprendimento di funzioni non supervisionate e l'apprendimento approfondito.

apprendimento Caratteristica è l'unico metodo non supervisionato mi viene in mente rispetto della NN o la sua recente variante. (Una variante denominata miscela di RBM di c'è analoga alla miscela di gaussiane ma si può costruire un sacco di modelli basati sui due). Ma fondamentalmente due modelli con cui ho familiarità sono RBM (macchine boltzman con restrizioni) e Autoencoder.

I codificatori automatici (opzionalmente le attivazioni sparse possono essere codificati in funzione di ottimizzazione) sono solo reti neurali feedforward che accordano i pesi in modo tale che l'uscita sia un ingresso ricostruito. È possibile utilizzare più livelli nascosti, ma l'inizializzazione del peso utilizza un addestramento di livello avido per un migliore punto di partenza. Quindi, per rispondere alla domanda, la funzione obiettivo verrà immessa automaticamente.

Le RBM sono reti stocastiche generalmente interpretate come modello grafico che presenta restrizioni sulle connessioni. In questa impostazione non esiste un livello di output e la connessione tra input e layer latente è bidirezionale come un modello grafico non orientato. Quello che cerca di imparare è una distribuzione sugli input (variabili osservate e non osservate). Anche qui la tua risposta sarebbe l'input è l'obiettivo.

La miscela di RBM (analogo alla miscela di gaussiani) può essere utilizzata per clustering soft o KRBM (analogo a K-means) può essere utilizzata per clustering difficile. Che in effetti sembra di imparare più sottospecie non lineari.

http://deeplearning.net/tutorial/rbm.html

http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial

2

Un approccio alternativo è quello di usare qualcosa come backpropagation generativa. In questo scenario, si allena una rete neurale che aggiorna i pesi E i valori di input. I valori dati vengono utilizzati come valori di output poiché è possibile calcolare direttamente un valore di errore. Questo approccio è stato utilizzato nella riduzione della dimensionalità, nel completamento della matrice (imputazione del valore mancante) tra le altre applicazioni. Per ulteriori informazioni, vedere non-linear principal component analysis (NLPCA) e unsupervised backpropagation (UBP) che utilizza l'idea di backpropagation generativo. UBP estende NLPCA introducendo una fase di pre-allenamento. Un'implementazione di UBP e NLPCA e backpropagation senza supervisione può essere trovata nel toolkit di apprendimento della macchina per waffle. La documentazione per UBP e NLPCA può essere trovata usando il comando nlpca.

1

La backpropagation nel suo nucleo consiste semplicemente di applicare ripetutamente la regola della catena attraverso tutti i possibili percorsi nella nostra rete neurale. La backpropagation funziona solo quando viene fornita l'etichetta di output. Senza un'etichetta, il backpropagation non può funzionare bene.