Perché una macchina Boltzman con restrizioni (RBM) tende ad apprendere pesi molto simili?


8

inserisci qui la descrizione dell'immagine

Queste sono 4 diverse matrici di peso che ho ottenuto dopo l'allenamento di una macchina Boltzman limitata (RBM) con ~ 4k unità visibili e solo 96 unità / vettori di peso nascosti. Come puoi vedere, i pesi sono estremamente simili: anche i pixel neri sulla faccia vengono riprodotti. Anche gli altri 92 vettori sono molto simili, sebbene nessuno dei pesi sia esattamente lo stesso.

Posso superarlo aumentando il numero di vettori di peso a 512 o più. Ma ho riscontrato questo problema diverse volte prima con diversi tipi di RBM (binario, gaussiano, anche convoluzionale), diverso numero di unità nascoste (incluso piuttosto grande), diversi iperparametri, ecc.

La mia domanda è: qual è la ragione più probabile per cui i pesi ottengano valori molto simili ? Arrivano tutti al minimo locale? O è un segno di overfitting?

Attualmente uso una specie di Gaussian-Bernoulli RBM, il codice può essere trovato qui .

UPD. Il mio set di dati si basa su CK + , che contiene> 10k immagini di 327 individui. Tuttavia eseguo una preprocessing piuttosto pesante. Innanzitutto, taglio solo i pixel all'interno del contorno esterno di una faccia. In secondo luogo, trasformo ogni faccia (usando un avvolgimento affine a tratti) sulla stessa griglia (ad esempio sopracciglia, naso, labbra ecc. Sono nella stessa posizione (x, y) su tutte le immagini). Dopo la preelaborazione delle immagini si presenta così:

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Durante l'allenamento di RBM, prendo solo pixel diversi da zero, quindi la regione nera esterna viene ignorata.


Si prega di condividere alcune informazioni sui dati che si stanno visualizzando.
Bayer,

@bayer: controlla il mio aggiornamento.
amico

Sembra una procedura di allenamento scadente. È possibile aggiungere informazioni sul numero di passaggi del CD, sulla velocità di apprendimento / quantità di moto, sulla dimensione del lotto ecc.?
Bayer,

@bayer: al momento di questi esperimenti ho usato CD-1, dimensione batch di 10 immagini, velocità di apprendimento di 0,01 (0,1 / batch_size) e nessuna quantità di moto. Ho anche notato che l'inizializzazione del peso ha un certo impatto: con i pesi inizializzati da N (0, 0,01) non ho quasi mai visto il problema descritto, ma con i pesi da N (0, 0,001) ottengo il problema quasi ogni volta.
amico

1
Se il tuo tasso di apprendimento è troppo alto, il primo campione (o la media del batch) sarà quello a cui si sovrappone l'RBM. Se i "neuroni" (cioè p (h | v)) quindi saturano, apprendendo bancarelle - i gradienti di questi neuroni saranno vicini allo zero. Questo è un modo per farlo.
Bayer,

Risposte:


1

Una macchina Boltzmann con restrizioni (RBM) apprende una compressione con perdita degli input originali o, in altre parole, una distribuzione di probabilità.

Quelle sono 4 matrici di pesi differenti, tutte rappresentazioni di dimensioni ridotte degli input di facce originali. Se i pesi fossero visualizzati come una distribuzione di probabilità, il valore delle distribuzioni sarebbe diverso ma avrebbero la stessa quantità di perdita rispetto alla ricostruzione dell'immagine originale.

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.