Máquinas Boltzmann restritas para regressão?

13

Estou acompanhando a pergunta que fiz anteriormente nos RBMs . Vejo muita literatura descrevendo-os, mas nenhum que realmente fale de regressão (nem mesmo classificação com dados rotulados). Sinto que ele é usado apenas para dados não rotulados. Existem recursos para lidar com a regressão? Ou é tão simples quanto adicionar outra camada em cima da camada oculta e executar o algoritmo do CD para cima e para baixo? Muito obrigado antecipadamente.

brócolis
fonte

Respostas:

18

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.

alto
fonte
1
então os RBMs podem ser usados ​​para regressão?
Waspinator
Como você treina um RBM para ser um modelo de densidade conjunta? Fornecendo X e Y como entradas não ocultas, ou seja, você a treina para ser P (X, Y | H) (H é a camada oculta)?
AkiRoss
Eu respondo ao meu comentário: sim, em "um guia prático de treinamento de RBM" (Hinton, 2010), os três métodos descritos acima são explicados em detalhes e, no terceiro método, ele fala sobre ter "dois conjuntos de visíveis units ", onde, além dos dados, é apresentada uma unidade de etiqueta softmax para representar a classe.
AkiRoss
2

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.

Deepan Prabhu Babu
fonte
0

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).

jason albalah
fonte