Por que precisamos de auto-codificadores?


17

Recentemente, tenho estudado auto-codificadores. Se bem entendi, um autoencoder é uma rede neural em que a camada de entrada é idêntica à camada de saída. Portanto, a rede neural tenta prever a saída usando a entrada como padrão-ouro.

Qual é a utilidade desse modelo? Quais são os benefícios de tentar reconstruir alguns elementos de saída, tornando-os o mais iguais possível aos elementos de entrada? Por que alguém deveria usar todo esse maquinário para chegar ao mesmo ponto de partida?

Respostas:


17

Os codificadores automáticos possuem uma camada de entrada, camada oculta e uma camada de saída. A entrada é forçada a ser tão idêntica à saída, por isso é a camada oculta na qual estamos interessados.

A camada oculta forma um tipo de codificação da entrada. "O objetivo de um codificador automático é aprender uma representação compactada e distribuída (codificação) para um conjunto de dados". Se a entrada for um vetor de 100 dimensões e você tiver 60 neurônios na camada oculta, o algoritmo do codificador automático replicará a entrada como um vetor de 100 dimensões na camada de saída, no processo, fornecendo um vetor de 60 dimensões que codifica sua entrada .

Portanto, o objetivo dos codificadores automáticos é a redução da dimensionalidade , entre muitos outros.


Obrigado @ Madhulika, talvez eu tenha entendido. O algoritmo funciona da seguinte maneira: possui uma camada de entrada, treina a rede neural para ter uma camada de saída idêntica à camada de entrada. Ele compara a camada de entrada com a camada de saída e, se forem diferentes, continua treinando novamente a rede neural. Para quando são idênticos. Quando termina, tomamos a última camada oculta como a melhor aproximação de redução de dimensionalidade da camada de entrada e a usamos para qualquer objetivo de que precisamos. Isso está correto?
Larry

Sim, você acertou quase tudo. :) Leia mais literatura sobre isso.
Madhulika Mukherjee

5

Ele também pode modelar sua população para que, ao inserir um novo vetor, você possa verificar a diferença entre a saída e a entrada. Se eles são "praticamente" iguais, você pode assumir que a entrada corresponde à população. Se eles são "bastante" diferentes, provavelmente a entrada não pertence à população que você modelou.

Eu vejo isso como uma espécie de "regressão por redes neurais", na qual você tenta ter uma função que descreve seus dados: sua saída é igual à entrada.


3

Talvez essas fotos tenham alguma intuição. Como comentador acima, os codificadores automáticos tentam extrair alguns recursos de alto nível dos exemplos de treinamento. Você pode ver como o algoritmo de prognóstico é usado para treinar cada nível oculto separadamente para o NN profundo na segunda foto.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

As fotos são tiradas da Wikipedia russa.


2
Comentar as imagens seria útil.
Tim
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.