Por que o decodificador do autoencoder geralmente é a arquitetura reversa como o codificador?

7

Toda arquitetura de autoencoder que eu vi tem uma arquitetura semelhante, principalmente porque o decodificador é exatamente o inverso do codificador. Se o objetivo do autoencodificador é o aprendizado de recursos de baixa dimensão, por que o decodificador não é simples? Um exemplo seria uma transformação linear onde é uma observação pela matriz de recursos (ou seja, o gargalo) e é uma matriz de pesos aprendida que mapeia para o tamanho do recurso de entrada original. No caso de um autoencoder profundo com várias camadas ocultas, o decodificador no exemplo acima teria baixa capacidade em comparação com o codificador.FWFnfWF

Minha intuição é a seguinte:

Se o decodificador for simples, o autoencoder será forçado a aprender recursos de maior qualidade no gargalo para compensar. Por outro lado, se o decodificador tiver alta capacidade de representação, ele pode mapear um gargalo pouco aprendido para as reconstruções de saída de forma eficaz. O erro de reconstrução pode ser menor nesse caso, mas isso não significa necessariamente que os recursos aprendidos sejam realmente melhores.

Em meu próprio aplicativo (aprendizado de recursos em gráficos), descobri que um decodificador simples resulta em recursos aprendidos melhor do que um decodificador que apenas espelha o codificador. No presente estudo, os autores conceber um autoencoder gráfico com um descodificador muito simples como , onde é a matriz gráfico adjacência reconstruído, é a matriz e característica aprendido é alguma transformação não linear como uma ReLU.UMA^=σ(ZZT)UMA^Zσ

Estou procurando uma resposta para essa pergunta há algum tempo, mas não encontrei explicações ou resultados teóricos sobre por que um decodificador de capacidade mais alta é preferível a um decodificador de baixa capacidade (ou vice-versa). ) Se alguém puder me dar uma explicação ou me indicar a direção certa, ficaria grato.

duncster94
fonte

Respostas:

1

Sua intuição está correta, mas não está no contexto certo. Para iniciantes, vamos definir "recursos de alta qualidade" como recursos que podem ser reciclados para o treinamento de outros modelos, por exemplo, transferíveis. Por exemplo, o treinamento de um codificador (não rotulado) no ImageNet pode ajudar a fornecer uma linha de base sólida para classificação no ImageNet e em outros conjuntos de dados de imagem.

A maioria dos autoencodificadores clássicos é treinada em alguma forma de perda de L2 (regularizada). Isso significa que, após codificar uma representação, o decodificador deve reproduzir a imagem original e é penalizado com base no erro de cada pixel . Embora a regularização possa ajudar aqui, é por isso que você tende a obter imagens difusas. A questão é que a perda não é semântica: não se importa que os humanos tenham ouvidos, mas se importa que a cor da pele tenda a ser uniforme em todo o rosto. Portanto, se você substituir o decodificador por algo realmente simples, a representação provavelmente se concentrará em obter a cor média correta em cada região da imagem (cujo tamanho será aproximadamente proporcional à complexidade do seu decodificador e inversamente proporcional ao seu tamanho oculto). tamanho da camada).

Por outro lado, existem inúmeras técnicas auto-supervisionadas gerais que podem aprender recursos semânticos de maior qualidade . A chave aqui é encontrar uma melhor função de perda. Você pode encontrar um conjunto muito bom de slides de Andrew Zisserman aqui . Um exemplo simples é uma rede siamesa treinada para prever a posição relativa de pares de culturas aleatórias:

insira a descrição da imagem aqui

No exposto, a primeira colheita da face do gato e a rede precisam prever que a colheita da orelha deve ocorrer a nordeste da face do gato. Observe que as culturas são escolhidas aleatoriamente e o truque é equilibrar a distância mínima e máxima entre as culturas, para que as culturas relacionadas ocorram com frequência.

Em outras palavras, a rede usa um codificador compartilhado e um classificador rudimentar para comparar a incorporação de diferentes culturas. Isso força a rede a aprender o que realmente é um gato, em oposição a um conjunto suave de cores e formas comuns.

Você encontrará muitos outros exemplos nos slides acima, que também mostram que essas incorporações transferem consideravelmente melhor do que os autoencodificadores rotativos quando treinados para prever aulas.

Alex R.
fonte
1

Eu me pergunto se parte do motivo pode ser histórico (aparentemente o artigo de Hinton em 2006 mostrou isso dessa maneira) e porque (acredito) era / é comum amarrar os pesos. Ou seja, o decodificador está usando os mesmos pesos que o codificador e eles estão sendo efetivamente aprendidos juntos.

Esta pergunta e resposta https://stackoverflow.com/q/36889732/841830 discutem as vantagens do uso de pesos vinculados. E mais algumas informações aqui: https://amiralavi.net/blog/2018/08/25/tied-autoencoders

Darren Cook
fonte