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ì:
Durante l'allenamento di RBM, prendo solo pixel diversi da zero, quindi la regione nera esterna viene ignorata.