C'è qualche differenza tra l'addestramento di un codificatore automatico in pila e una rete neurale a 2 strati?


14

Diciamo che sto scrivendo un algoritmo per la creazione di un codificatore automatico sovrapposto a 2 strati e di una rete neurale a 2 strati. Sono le stesse cose o le stesse differenze?

Quello che capisco è che quando costruisco un codificatore automatico in pila, costruisco strato per strato. Per la rete neurale, inizializzerei tutti i parametri nel netowork, e quindi per ogni punto dati, lo passerei attraverso la rete e calcolerei la perdita (ad esempio, la distanza eucleana) e fare backpropagation.

Risposte:


16

I codificatori automatici impilati e le reti neurali multistrato sono diversi. In pratica, le due reti condivideranno i pesi e possibilmente condivideranno i buffer di memoria. Quindi nella tua implementazione le due reti si intrecciano.

In genere, i codificatori automatici vengono addestrati in modo non supervisionato, avido, a livello di strati. (Nessuna etichetta, inizia l'allenamento solo con il primo livello della rete e poi aggiungi nuovi livelli man mano che procedi.) I pesi possono essere appresi utilizzando una varietà di tecniche che vanno dalla discesa del gradiente "batch" (per favore, non farlo), alla discendenza stocastica a gradiente mini-batch (SGD), a metodi quasi-Newton come L-BFGS.

L'idea è che i pesi appresi in modo non supervisionato per ridurre al minimo l'errore di ricostruzione per l'attività di apprendimento della rappresentazione offrono un buon punto di partenza per inizializzare una rete per un'attività discriminatoria supervisionata come la classificazione o la somiglianza. Vale a dire, la rete apprende qualcosa sulla distribuzione sottostante osservando i dati senza etichetta, permettendole di discriminare tra i dati etichettati. Tuttavia, i pesi devono ancora essere "perfezionati" per questo nuovo compito. Quindi aggiungi un livello di regressione logistica nella parte superiore della rete e quindi fai l'apprendimento supervisionato con un set di dati etichettato. La fase di regolazione fine eseguirà la discesa del gradiente e regolerà contemporaneamente i pesi per tutti i livelli della rete.

I vantaggi di questo modo di addestrare le reti neurali sono:

  1. La formazione senza supervisione consente di mostrare alla rete più dati perché è molto più semplice ottenere set di dati di grandi dimensioni senza supervisione rispetto a quelli etichettati.
  2. Puoi utilizzare la rete pre-allenata come "punto di partenza" per allenare nuovi classificatori in modo da non dover ricominciare da capo ogni volta.

Per l'articolo, vedi Autoencoders di denoising in pila: apprendimento di rappresentazioni utili in una rete profonda con un criterio di denoising locale .


Sono confuso riguardo al secondo passaggio in cui si allena il livello di codifica con un livello di classificazione (ad esempio livello softmax) per un'attività di classificazione. Riutilizzi nuovamente il set di dati di addestramento per questa parte per apprendere le etichette? Lo trovo strano perché il set di allenamento è stato usato solo per apprendere un'approssimazione di se stesso.
ragazzo

Non ha molto senso se hai tutti i dati etichettati comunque. È più per le situazioni in cui hai molti più dati senza etichetta da pre-inventare e quindi utilizzare i dati di "allenamento" etichettati per ottimizzare.
miagolio il
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.