Rozumiem, że szkolenie wstępne jest stosowane, aby uniknąć niektórych problemów z konwencjonalnym treningiem. Jeśli używam propagacji wstecznej z, powiedzmy autoencoderem, wiem, że napotkam problemy z czasem, ponieważ propagacja wsteczna jest powolna, a także że mogę utknąć w lokalnych optymach i nie nauczyć się niektórych funkcji.
To, czego nie rozumiem, to to, w jaki sposób wstępnie szkolimy sieć i co konkretnie robimy, aby wstępnie szkolić. Na przykład, jeśli otrzymamy stos ograniczonych maszyn Boltzmanna, w jaki sposób wstępnie przeszkolimy tę sieć?
machine-learning
neural-networks
backpropagation
rbm
pre-training
Michael Yousef
źródło
źródło
Odpowiedzi:
Zaczynasz od wyszkolenia każdego RBM na stosie osobno, a następnie łączysz go w nowy model, który można dalej dostosowywać.
Załóżmy, że masz 3 RBM, trenujesz RBM1 ze swoimi danymi (np. Kilka zdjęć). RBM2 jest trenowany z wyjściem RBM1. RBM3 jest szkolony z wydajnością RBM2. Chodzi o to, że każdy model RBM ma reprezentatywne obrazy, a wagi, których się uczą, są przydatne w innych dyskryminujących zadaniach, takich jak klasyfikacja.
źródło
Wstępne szkolenie stosu RBM polega na łapczywym minimalizowaniu zdefiniowanej energii, tj. Maksymalizowaniu prawdopodobieństwa. G. Hinton zaproponował algorytm CD-k, który można postrzegać jako pojedynczą iterację próbkowania Gibbsa.
źródło