Ich verstehe, dass Pretraining verwendet wird, um einige Probleme beim konventionellen Training zu vermeiden. Wenn ich Backpropagation mit beispielsweise einem Autoencoder verwende, weiß ich, dass ich auf Zeitprobleme stoßen werde, weil die Backpropagation langsam ist und ich auch in lokalen Optima stecken bleiben und bestimmte Funktionen nicht lernen kann.
Was ich nicht verstehe, ist, wie wir ein Netzwerk vorbilden und was wir speziell tun, um vorzubilden. Wenn wir zum Beispiel einen Stapel eingeschränkter Boltzmann-Maschinen erhalten, wie würden wir dieses Netzwerk vorab trainieren?
machine-learning
neural-networks
backpropagation
rbm
pre-training
Michael Yousef
quelle
quelle
Antworten:
Sie trainieren zunächst jedes RBM im Stapel separat und kombinieren es dann zu einem neuen Modell, das weiter optimiert werden kann.
Angenommen, Sie haben 3 RBMs, Sie trainieren RBM1 mit Ihren Daten (z. B. einer Reihe von Bildern). RBM2 wird mit dem Ausgang von RBM1 trainiert. RBM3 wird mit dem Ausgang von RBM2 trainiert. Die Idee ist, dass jedes RBM-Modell Merkmale aufweist, die für die Bilder repräsentativ sind, und dass die Gewichte, die sie dabei lernen, für andere diskriminierende Aufgaben wie die Klassifizierung nützlich sind.
quelle
Das Vorbereiten eines gestapelten RBM besteht darin, die definierte Energie gierig schichtweise zu minimieren, dh die Wahrscheinlichkeit zu maximieren. G. Hinton schlug den CD-k-Algorithmus vor, der als einzelne Iteration der Gibbs-Abtastung angesehen werden kann.
quelle