Perché i codificatori automatici per la riduzione dimensionale sono simmetrici?


13

Non sono un esperto di autoencoder o reti neurali in alcun modo, quindi perdonami se questa è una domanda sciocca.

Ai fini della riduzione dimensionale o della visualizzazione di cluster in dati ad alta dimensione, è possibile utilizzare un codificatore automatico per creare una rappresentazione bidimensionale (con perdita) ispezionando l'output del livello di rete con 2 nodi. Ad esempio, con la seguente architettura, verificheremo l'output del terzo livello

[X]N1=100N2=25(N3=2)N4=25N5=100[X]

dove sono i dati di input e N 1 è il numero di nodi nel livello 1 °.XNll

Ora, la mia domanda è: perché vogliamo un'architettura simmetrica? Uno specchio della profonda fase di "compressione" non significa che potremmo avere una fase di "decompressione" allo stesso modo complessa che si traduce in un output a 2 nodi che non è costretto ad essere molto intuitivo? In altre parole, una fase di decodifica più semplice non determinerebbe necessariamente l'output del layer con 2 nodi?

Il mio pensiero qui è che meno complessa è la fase di decompressione, più semplice (più lineare?) Deve essere la rappresentazione 2D. Una fase di decompressione più complessa consentirebbe una rappresentazione 2D più complessa.

Risposte:


12

Non esiste alcun vincolo specifico per la simmetria di un autoencoder.

All'inizio, le persone tendevano a imporre tale simmetria al massimo: non solo gli strati erano simmetrici, ma anche i pesi degli strati nell'encoder e nel decodificatore erano condivisi . Questo non è un requisito, ma consente di utilizzare determinate funzioni di perdita (ad es. Corrispondenza del punteggio RBM) e può agire come regolarizzazione , poiché si riduce efficacemente della metà il numero di parametri da ottimizzare. Oggi, tuttavia, penso che nessuno imponga la condivisione del peso tra encoder e decodificatore.

Per quanto riguarda la simmetria architettonica, è comune trovare lo stesso numero di strati, lo stesso tipo di strati e le stesse dimensioni di strato in encoder e decoder, ma non è necessario .

Ad esempio, negli autoencoders convoluzionali, in passato era molto comune trovare strati convoluzionali nel codificatore e strati deconvoluzionali nel decodificatore, ma ora normalmente si vedono strati di ricampionamento nel decodificatore perché hanno meno problemi di artefatti.


7

La tua domanda è sicuramente a posto, tuttavia ho scoperto che qualsiasi domanda nel formato di "dovrei fare X o Y nell'apprendimento profondo?" ha una sola risposta.

Provali entrambi

Il deep learning è un campo molto empirico e se un auto-codificatore non simmetrico funziona per il tuo dominio, utilizzalo (e pubblica un documento)


2

Ho fatto un lungo esperimento per rispondere alla domanda. I miei esperimenti hanno indicato che il percorso di codifica (gamba sinistra della NN) dovrebbe avere livelli meno ma più ampi. Di solito prendo metà di così tanti livelli, ma raddoppio il numero di nodi per il percorso di codifica. Non ho spiegazioni per questo, solo queste configurazioni hanno spesso portato a una convergenza più rapida.

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.