Warum lernt eine eingeschränkte Boltzman-Maschine (RBM) sehr ähnliche Gewichte?

8

Geben Sie hier die Bildbeschreibung ein

Dies sind 4 verschiedene Gewichtsmatrizen, die ich nach dem Training einer eingeschränkten Boltzman-Maschine (RBM) mit ~ 4k sichtbaren Einheiten und nur 96 versteckten Einheiten / Gewichtsvektoren erhalten habe. Wie Sie sehen können, sind die Gewichte sehr ähnlich - sogar schwarze Pixel im Gesicht werden reproduziert. Die anderen 92 Vektoren sind ebenfalls sehr ähnlich, obwohl keines der Gewichte genau gleich ist.

Ich kann dies überwinden, indem ich die Anzahl der Gewichtsvektoren auf 512 oder mehr erhöhe. Aber ich bin dieses Problem schon mehrmals mit verschiedenen RBM-Typen (binär, Gauß, sogar faltungsmäßig), unterschiedlicher Anzahl versteckter Einheiten (einschließlich ziemlich großer), verschiedenen Hyperparametern usw. aufgetreten.

Meine Frage ist: Was ist der wahrscheinlichste Grund dafür, dass Gewichte sehr ähnliche Werte erhalten ? Erreichen sie alle nur ein lokales Minimum? Oder ist es ein Zeichen von Überanpassung?

Ich verwende derzeit eine Art Gauß-Bernoulli-RBM. Code finden Sie hier .

UPD. Mein Datensatz basiert auf CK + , das> 10.000 Bilder von 327 Personen enthält. Allerdings mache ich ziemlich schwere Vorverarbeitung. Zuerst schneide ich nur Pixel innerhalb der Außenkontur eines Gesichts. Zweitens transformiere ich jedes Gesicht (mit stückweise affiner Umhüllung) in dasselbe Raster (z. B. befinden sich Augenbrauen, Nase, Lippen usw. auf allen Bildern in derselben (x, y) Position). Nach der Vorverarbeitung sehen die Bilder folgendermaßen aus:

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Beim Training von RBM nehme ich nur Pixel ungleich Null, sodass der äußere schwarze Bereich ignoriert wird.

Freund
quelle
Bitte teilen Sie einige Informationen zu den Daten, die Sie betrachten.
Bayer
@bayer: Bitte schau dir mein Update an.
Freund
Dies sieht nach einem schlechten Trainingsverfahren aus. Können Sie Informationen zur Anzahl der CD-Schritte, zur Lernrate / zum Lernimpuls, zur Stapelgröße usw. hinzufügen?
Bayer
@bayer: Im Moment dieser Experimente habe ich CD-1 verwendet, eine Stapelgröße von 10 Bildern, eine Lernrate von 0,01 (0,1 / Stapelgröße) und überhaupt keinen Impuls. Ich habe auch festgestellt, dass die Gewichtsinitialisierung einige Auswirkungen hat: Bei Gewichten, die von N (0, 0,01) initialisiert wurden, habe ich das beschriebene Problem fast nie gesehen, aber bei Gewichten von N (0, 0,001) bekomme ich das Problem fast jedes Mal.
Freund
1
Wenn Ihre Lernrate zu hoch ist, entspricht die erste Stichprobe (oder der Mittelwert der Charge) dem RBM. Wenn die "Neuronen" (dh p (h | v)) dann gesättigt sind, bleibt das Lernen stehen - die Gradienten dieser Neuronen liegen nahe bei Null. Dies ist eine Möglichkeit, dies zu tun.
Bayer

Antworten:

1

Eine eingeschränkte Boltzmann-Maschine (RBM) lernt eine verlustbehaftete Komprimierung der ursprünglichen Eingaben oder mit anderen Worten eine Wahrscheinlichkeitsverteilung.

Dies sind 4 verschiedene Gewichtsmatrizen, die alle Darstellungen mit reduzierten Abmessungen der ursprünglichen Gesichtseingaben sind. Wenn Sie die Gewichte als Wahrscheinlichkeitsverteilung visualisieren würden, wäre der Verteilungswert unterschiedlich, aber sie hätten den gleichen Verlust aus der ursprünglichen Bildrekonstruktion.

Brian Spiering
quelle