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:
Ao treinar RBM, tomo apenas pixels diferentes de zero, portanto a região preta externa é ignorada.