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.
Dê uma olhada na implementação, http://code.google.com/p/matrbm/ . Possui uma função de classificação rmb fit que vale a pena considerar. Além disso, deixe-me saber se você encontra melhores implementações de DBNs e RMBs para classificação e regressão.
fonte
Eu acho que uma maneira de testar redes neurais como a RBM (Restricted Boltzman Machine) é aplicá-las a novos conjuntos de dados, ou mais comumente a um subconjunto do conjunto total de dados, e ver como eles funcionam. Você também pode testar o modelo com validação cruzada. Eu usei um popular kit de ferramentas de software de aprendizado de máquina de código aberto (ML) que é simples de instalar e usar, e permite testar facilmente vários tipos de algoritmos de ML separadamente, com várias estatísticas de regressão do modelo ( http: // www. cs.waikato.ac.nz/ml/weka/ ). Isso pode fornecer uma análise rápida, sem muita intervenção, exceto os princípios básicos da execução do programa, embora, dependendo disso, pode não valer a pena se for difícil formatar seus dados (embora você possa pesquisar no Google "csv to arff convert online", por exemplo) para formatação em uma etapa).
fonte