Por que uma máquina Boltzman restrita (RBM) tende a aprender pesos muito semelhantes?

8

insira a descrição da imagem aqui

Estas são 4 matrizes de peso diferentes que obtive após o treinamento de uma máquina Boltzman restrita (RBM) com ~ 4k unidades visíveis e apenas 96 unidades ocultas / vetores de peso. Como você pode ver, os pesos são extremamente semelhantes - até pixels pretos no rosto são reproduzidos. Os outros 92 vetores também são muito semelhantes, embora nenhum dos pesos seja exatamente o mesmo.

Eu posso superar isso aumentando o número de vetores de peso para 512 ou mais. Mas eu encontrei esse problema várias vezes antes com diferentes tipos de RBM (binário, gaussiano e até convolucional), número diferente de unidades ocultas (incluindo bastante grandes), diferentes parâmetros de hiperatividade etc.

Minha pergunta é: qual é a razão mais provável para os pesos obterem valores muito semelhantes ? Todos eles chegam ao mínimo local? Ou é um sinal de excesso de ajuste?

Atualmente, uso um tipo de RBM Gaussiano-Bernoulli. O código pode ser encontrado aqui .

UPD. Meu conjunto de dados é baseado em CK + , que contém> 10k imagens de 327 indivíduos. No entanto, eu faço um pré-processamento bastante pesado. Primeiro, recorte apenas pixels dentro do contorno externo de um rosto. Em segundo lugar, transformo cada face (usando um invólucro afinado por partes) na mesma grade (por exemplo, sobrancelhas, nariz, lábios etc. estão na mesma posição (x, y) em todas as imagens). Após o pré-processamento, as imagens ficam assim:

insira a descrição da imagem aqui insira a descrição da imagem aqui

Ao treinar RBM, tomo apenas pixels diferentes de zero, portanto a região preta externa é ignorada.

amiga
fonte
Compartilhe algumas informações sobre os dados que você está visualizando.
Bayer
@ayer: verifique minha atualização.
ffriend
Parece um mau procedimento de treinamento. Você pode adicionar informações sobre o número de etapas do CD, taxa / momento de aprendizado, tamanho do lote, etc.?
Bayer
@bayer: no momento dessas experiências, usei o CD-1, tamanho de lote de 10 imagens, taxa de aprendizado de 0,01 (0,1 / lote de tamanho) e nenhum momento. Também notei que a inicialização do peso tem algum impacto: com pesos inicializados de N (0, 0,01), quase nunca vi um problema descrito, mas com pesos de N (0, 0,001), eu sempre entendo o problema.
ffriend
1
Se a sua taxa de aprendizado for muito alta, a primeira amostra (ou a média do lote) será a que o RBM se adequa. Se os "neurônios" (ou seja, p (h | v)) saturam, o aprendizado é interrompido - os gradientes desses neurônios estarão próximos de zero. Esta é uma maneira de isso acontecer.
Bayer

Respostas:

1

Uma máquina Boltzmann restrita (RBM) aprende uma compactação com perdas das entradas originais ou, em outras palavras, uma distribuição de probabilidade.

Essas são quatro matrizes de peso diferentes, todas representações de dimensão reduzida das entradas de face originais. Se você visualizasse os pesos como uma distribuição de probabilidade, o valor das distribuições seria diferente, mas elas teriam a mesma quantidade de perda da reconstrução da imagem original.

Brian Spiering
fonte