Perché abbiamo bisogno di codificatori automatici?


17

Di recente, ho studiato autoencoders. Se ho capito bene, un codificatore automatico è una rete neurale in cui il livello di input è identico al livello di output. Pertanto, la rete neurale tenta di prevedere l'output utilizzando l'input come standard aureo.

Qual è l'utilità di questo modello? Quali sono i vantaggi di provare a ricostruire alcuni elementi di output, rendendoli il più uguali possibile agli elementi di input? Perché usare tutti questi macchinari per arrivare allo stesso punto di partenza?

Risposte:


17

Gli encoder automatici hanno un livello di input, un livello nascosto e un livello di output. L'input è costretto ad essere identico all'output, quindi è il livello nascosto a cui siamo interessati.

Il livello nascosto forma una sorta di codifica dell'input. "Lo scopo di un codificatore automatico è quello di apprendere una rappresentazione compressa e distribuita (codifica) per un insieme di dati." Se l'input è un vettore di 100 dimensioni e hai 60 neuroni nel livello nascosto, l'algoritmo di codifica automatica replicherà l'input come vettore di 100 dimensioni nel livello di output, nel processo fornendoti un vettore di 60 dimensioni che codifica il tuo input .

Quindi lo scopo degli encoder automatici è la riduzione della dimensionalità , tra molti altri.


Grazie @Madhulika, forse ho capito. L'algoritmo funziona come segue: ha un livello di input, forma la rete neurale per avere un livello di output identico al livello di input. Quindi confronta il livello di input con il livello di output e, se diversi, continua a riqualificare la rete neurale. Si ferma quando sono identici. Al termine, prendiamo l'ultimo livello nascosto come migliore approssimazione della riduzione della dimensionalità del livello di input e lo utilizziamo per qualsiasi obiettivo di cui abbiamo bisogno. È corretto?
Larry,

Sì, hai capito bene. :) Leggi qualche altra documentazione su di esso.
Madhulika Mukherjee,

5

Può anche modellare la tua popolazione in modo che quando inserisci un nuovo vettore, puoi controllare quanto è diverso l'output dall'input. Se sono "abbastanza" uguali, puoi supporre che l'input corrisponda alla popolazione. Se sono "abbastanza" diversi, probabilmente l'input non appartiene alla popolazione che hai modellato.

Lo vedo come una sorta di "regressione da parte delle reti neurali" in cui si tenta di avere una funzione che descriva i propri dati: il suo output è lo stesso dell'input.


3

Forse queste immagini ti danno un po 'di intuizione. Come commentatore sopra ha detto che gli encoder automatici cercano di estrarre alcune funzionalità di alto livello dagli esempi di addestramento. Si può vedere come l'algoritmo di prognosticazione viene utilizzato per addestrare ciascun livello nascosto separatamente per il NN profondo nella seconda immagine.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Le foto sono tratte da Wikipedia in russo.


2
Commentare le foto sarebbe utile.
Tim
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.