Por que os auto-codificadores para redução de dimensão são simétricos?

13

Eu não sou especialista em auto-codificadores ou redes neurais, por qualquer meio, então me perdoe se essa é uma pergunta boba.

Para fins de redução de dimensão ou visualização de clusters em dados de alta dimensão, podemos usar um autoencoder para criar uma representação bidimensional (com perdas) inspecionando a saída da camada de rede com 2 nós. Por exemplo, com a arquitetura a seguir, inspecionaríamos a saída da terceira camada

[X]N1=100N2=25(N3=2)N4=25N5=100[X]

onde é os dados de entrada e N L é o número de nós da l camada th.XNeueu

Agora, minha pergunta é: por que queremos uma arquitetura simétrica? Um espelho da fase profunda de "compressão" não significa que podemos ter uma fase de "descompressão" igualmente complexa, resultando em uma saída de 2 nós que não é forçada a ser muito intuitiva? Em outras palavras, não ter uma fase de decodificação mais simples resultaria na saída da camada com 2 nós necessariamente sendo mais simples também?

Meu pensamento aqui é que, quanto menos complexa a fase de descompressão, mais simples (mais linear?) A representação 2D deve ser. Uma fase de descompressão mais complexa permitiria uma representação 2D mais complexa.

dcl
fonte

Respostas:

12

Não há restrição específica na simetria de um autoencoder.

No começo, as pessoas tendiam a impor essa simetria ao máximo: não apenas as camadas eram simétricas, mas também os pesos das camadas no codificador e decodificador, onde compartilhadas . Isso não é um requisito, mas permite usar certas funções de perda (ou seja, correspondência de pontuação RBM) e pode atuar como regularização , pois você reduz efetivamente pela metade o número de parâmetros a serem otimizados. Atualmente, porém, acho que ninguém impõe o compartilhamento de peso entre codificador e decodificador.

Sobre simetria arquitetônica, é comum encontrar o mesmo número de camadas, o mesmo tipo de camadas e os mesmos tamanhos de camada no codificador e decodificador, mas não há necessidade disso.

Por exemplo, em autoencodificadores convolucionais, no passado, era muito comum encontrar camadas convolucionais no decodificador e camadas deconvolucionais no decodificador, mas agora você normalmente vê camadas de amostragem ampliada no decodificador porque elas têm menos problemas de artefatos.

ncasas
fonte
7

Sua pergunta está definitivamente pronta, no entanto, descobri que qualquer pergunta no formato de "devo fazer X ou Y na aprendizagem profunda?" tem apenas uma resposta.

Experimente os dois

O aprendizado profundo é um campo muito empírico e, se um codificador automático não simétrico funcionar em seu domínio, use-o (e publique um artigo)

Ankit Suri
fonte
2

Eu fiz um experimento extenso para abordar a pergunta. Minhas experiências indicaram que o caminho de codificação (perna esquerda do NN) deveria ter camadas menos amplas. Normalmente, uso metade do número de camadas, mas o número de nós duplicado para o caminho da codificação. Não tenho explicação para isso, apenas essas configurações geralmente levam a uma convergência mais rápida.

JamesLi
fonte