Acabei de ler o artigo de Geoff Hinton sobre a transformação de autoencodificadores
Hinton, Krizhevsky e Wang: transformando codificadores automáticos . Em Redes Neurais Artificiais e Machine Learning, 2011.
e gostaria muito de brincar com algo assim. Mas, depois de ler, não consegui obter detalhes suficientes do artigo sobre como realmente poderia implementá-lo.
- Alguém sabe como o mapeamento entre pixels de entrada para cápsulas deve funcionar?
- O que exatamente deveria estar acontecendo nas unidades de reconhecimento?
- Como deve ser treinado? É apenas suporte traseiro padrão entre todas as conexões?
Melhor ainda seria um link para algum código-fonte para isso ou algo semelhante.
neural-network
deep-learning
autoencoder
Daniel Slater
fonte
fonte
Respostas:
Reunimos alguns exemplos de código tensorflow para ajudar a explicar (o código completo e de trabalho está nessa essência ). Este código implementa a rede de cápsulas da primeira parte da seção 2 no documento que você vinculou:
Isso depende da estrutura da rede. Para a primeira experiência nesse artigo (e o código acima), cada cápsula possui um campo receptivo que inclui toda a imagem de entrada. Esse é o arranjo mais simples. Nesse caso, é uma camada totalmente conectada entre a imagem de entrada e a primeira camada oculta em cada cápsula.
Alternativamente, os campos receptivos da cápsula podem ser organizados mais como núcleos da CNN com passos, como nas experiências posteriores desse artigo.
As unidades de reconhecimento são uma representação interna que cada cápsula possui. Cada cápsula usa essa representação interna para calcular
p
, a probabilidade de que o recurso da cápsula esteja presente exy
os valores de conversão inferidos. A Figura 2 desse documento é uma verificação para garantir que a rede esteja aprendendo a usarxy
corretamente (é).Especificamente, você deve treiná-lo como um auto-codificador, usando uma perda que imponha semelhança entre a saída gerada e a original. O erro quadrático médio funciona bem aqui. Além disso, sim, você precisará propagar a descida do gradiente com o backprop.
fonte