Divergência Contrastante Persistente para RBMs

9

Ao usar o algoritmo persistente de aprendizado de CD para Restricted Bolzmann Machines, iniciamos nossa cadeia de amostragem Gibbs na primeira iteração em um ponto de dados, mas, ao contrário do CD normal, nas iterações seguintes, não iniciamos novamente em nossa cadeia. Em vez disso, começamos onde a cadeia de amostragem de Gibbs na iteração anterior terminou.

No algoritmo de CD normal, cada iteração avalia um mini lote de pontos de dados e calcula as cadeias de amostragem Gibbs a partir desses próprios pontos de dados.

Em CD persistente, devemos manter as cadeias de amostragem de Gibbs para cada ponto de dados? Ou devemos manter também um mini lote de cadeias de amostragem Gibbs, iniciadas em pontos de dados que atualmente não são avaliados na iteração atual?

Parece-me que manter as cadeias de amostragem de Gibbs para cada ponto de dados será muito complicado, mas, por outro lado, parece inadequado comparar os sinais da amostra atual com os sinais após uma longa cadeia de Gibbs que não começou na corrente. amostra .

Angelorf
fonte
@subha Parece contra-intuitivo, mas é bastante claro que deve ser uma cadeia única que é usada para diferentes dados de entrada. Veja também deeplearning.net/tutorial/rbm.html . Ali se afirma que o que é feito é "não reiniciar uma cadeia para cada exemplo observado". O deeplearning.net tem muitos exemplos excelentes e explicações simples.
Angelorf
@Angelorf você poderia rever estas instruções? Eu estou usando a versão em lote. Portanto, para o primeiro lote, localizo v0-h0-v1-h1.now encontramos + ve e -ve amostras e atualizamos o gradiente. Então, para o próximo lote, a cadeia de gibbs começa em h1 do primeiro lote, no lugar de h0 do segundo lote. Estou certo?
Subhaud 18/08
@subha Acho que está certo, mas é exatamente isso que estou perguntando no post original.
precisa saber é o seguinte
Quando eu faço isso, como ele reconstrói os dados de entrada corretamente? Eu tentei, não está reconstruindo os dados corretamente.
subha 22/08/14

Respostas:

1

O artigo original que descreve isso pode ser encontrado aqui

Na seção 4.4, eles discutem as maneiras pelas quais o algoritmo pode ser implementado. A melhor implementação que eles descobriram inicialmente foi não redefinir nenhuma Cadeia de Markov, fazer uma atualização Gibbs completa em cada Cadeia de Markov para cada estimativa de gradiente e usar um número de Cadeias de Markov igual ao número de pontos de dados de treinamento em um mini- lote.

A Seção 3 pode lhe dar alguma intuição sobre a ideia principal por trás do PCD.

chairbender
fonte
0

Como afirma o chairbender, eles não redefinem a cadeia para a parte do gradiente negativo.

Qual é a intuição por trás disso? Como o documento original declara, para RBMs, você não precisa redefinir a cadeia porque há apenas uma distribuição da qual você precisa amostrar, em oposição a uma distribuição por ponto (que pode ser necessário para redes de crenças). Você está certo de que, para alguns modelos, talvez seja necessário lembrar a cadeia por ponto.

Para métodos contrastantes: O termo negativo na atualização é superior a uma expectativa ou amostra de acordo com alguma distribuição, mas os RBMs possuem apenas uma distribuição (pós-gravação).

beelze-b
fonte