Entendo que o pré-treinamento é usado para evitar alguns dos problemas do treinamento convencional. Se eu usar a retropropagação com, digamos, um autoencodificador, sei que vou ter problemas de tempo porque a retropropagação é lenta, e também que posso ficar preso no ótimo local e não aprender certos recursos.
O que não entendo é como pré-treinamos uma rede e o que especificamente fazemos para pré-treinar. Por exemplo, se recebermos uma pilha restrita de máquinas Boltzmann, como prepararíamos essa rede?
machine-learning
neural-networks
backpropagation
rbm
pre-training
Michael Yousef
fonte
fonte
Respostas:
Você começa treinando cada RBM na pilha separadamente e depois combina em um novo modelo que pode ser ajustado ainda mais.
Suponha que você tenha 3 RBMs, você treina RBM1 com seus dados (por exemplo, um monte de imagens). O RBM2 é treinado com a saída do RBM1. O RBM3 é treinado com a saída do RBM2. A idéia é que cada modelo de RBM represente as imagens e os pesos que eles aprendem ao fazê-lo sejam úteis em outras tarefas discriminatórias, como classificação.
fonte
O pré-treinamento de um RBM empilhado é minimizar avidamente a camada de energia definida, ou seja, maximizar a probabilidade. G. Hinton propôs o algoritmo CD-k, que pode ser visto como uma única iteração da amostragem de Gibbs.
fonte