Você está certo sobre dados não rotulados. RBMs são modelos generativos e mais comumente usados como aprendizes não supervisionados.
Quando usado para construir uma rede de crenças profundas, o procedimento mais típico é simplesmente treinar cada novo RBM, um de cada vez, à medida que são empilhados um sobre o outro. Uma divergência tão contrastante não está subindo e descendo no sentido que eu acho que você quer dizer. Ele está trabalhando apenas com um RBM por vez, usando a camada oculta do RBM superior anterior como entrada para o novo RBM superior. Depois de tudo isso, você pode tratar a pilha de pesos RBM como pesos iniciais para uma rede neural de avanço de alimentação padrão e treinar usando os dados rotulados e a retropropagação ou fazer algo mais exótico, como usar o algoritmo wake-sleep. Observe que não usamos dados rotulados até a última etapa, esse é um dos benefícios desses tipos de modelos.
Por outro lado, existem várias maneiras de usar RBMs para classificação.
- Treine um RBM ou uma pilha de vários RBMs. Use a camada oculta mais acima como entrada para algum outro aluno supervisionado.
- Treine um RBM para cada classe e use as energias não normalizadas como entrada para um classificador discriminativo.
- Treine o RBM para ser um modelo de densidade conjunta de P (X, Y). Então, dada a entrada x, basta escolher a classe y, que minimiza a função de energia (normalização não é um problema aqui, como acima, pois a constante Z é a mesma para todas as classes).
- Treine um RBM discriminativo
Eu sugiro que você leia o relatório técnico Um Guia Prático de Treinamento de Máquinas Boltzmann Restritas de Geoff Hinton. Ele discute várias dessas questões com muito mais detalhes, fornece dicas inestimáveis, cita muitos documentos relevantes e pode ajudar a esclarecer qualquer outra confusão que você possa ter.