Com base no meu entendimento, os auto-codificadores são usados para encontrar uma representação compacta dos recursos de entrada que carregam as informações subjacentes essenciais.
Existe alguma relação entre as distâncias L2 no espaço de entrada original e o espaço reduzido (compacto)? Caso contrário, posso treinar a rede de modo que a representação compacta preserve a distância após a transformação?
Respostas:
Não, eles não. Nós os projetamos basicamente para que eles não possam preservar distâncias. Um autoencoder é uma rede neural que aprende uma representação "significativa" da entrada, preservando seus recursos "semânticos". As palavras citadas (como tantos termos nos artigos do Deep Learning) não têm definição rigorosa, mas digamos que, treinado em um conjunto de entradas, o autoencoder deve aprender alguns recursos comuns dessas entradas, que permitem reconstruir uma entrada invisível com pequenas erro 1 .
A maneira mais simples de o autoencoder minimizar as diferenças entre entrada e saída (entrada reconstruída) seria apenas enviar a entrada, ou seja, aprender a função de identidade, que é uma isometria, preservando distâncias. No entanto, não queremos que o autoencodificador simplesmente aprenda o mapa de identidade, porque, caso contrário, não aprendemos representação "significativa" ou, para dizer melhor, não aprendemos a "comprimir" a entrada aprendendo suas informações básicas. características semânticas e "jogando fora" os mínimos detalhes (o ruído, no caso do autoencoder denoising).
Para impedir que o autoencoder aprenda a transformação de identidade e forçá-lo a compactar a entrada, reduzimos o número de unidades nas camadas ocultas do autoencoder (camada ou camadas de gargalo). Em outras palavras, forçamos a aprender uma forma de redução não linear da dimensionalidade: não é por acaso que existe uma conexão profunda entre os autoencodificadores lineares e o PCA , um procedimento estatístico bem conhecido para a redução linear da dimensionalidade.
No entanto, isso tem um custo : forçando o autoencoder a executar algum tipo de redução não linear da dimensionalidade, impedimos que ele preserve distâncias. De fato, você pode provar que não existe isometria, ou seja, nenhuma transformação de preservação de distância, entre dois espaços euclidianosEn e Em E se m < n (isso está implicitamente comprovado nesta prova de outra declaração ). Em outras palavras, uma transformação de redução de dimensão não pode ser uma isometria. Isso é bastante intuitivo, na verdade: se o autoencoder precisar aprender a mapear elementos de um espaço vetorial de alta dimensãoV , para elementos de um coletor de dimensões inferiores M embarcado em V , ele terá que "sacrificar" algumas direções em V , o que significa que dois vetores que diferem apenas nessas direções serão mapeados para o mesmo elemento de M . Assim, sua distância, inicialmente diferente de zero, não é preservada (passa a 0).
NOTA : pode ser possível aprender um mapeamento de um conjunto finito de elementos deV S= {v1 1, ... ,vn} , para um conjunto finito de elementos O = {W1 1, ... ,Wn} ∈ M , de modo que as distâncias aos pares sejam conservadas. Isso é o que escala multidimensional tenta fazer. No entanto, é impossível mapear todos os elementos deV para elementos de um espaço de menor dimensão W preservando distâncias.
As coisas ficam mais complicadas quando nos referimos ao meu sabor favorito de autoencoder, o Variational Autoencoder, mas não vou focar neles aqui.
fonte
Você pode treinar uma rede com qualquer função de perda que desejar. Assim, na abordagem 1, você pode criar uma função de perda que empurra a rede para garantir que a distância entre pares em um mini lote na saída seja igual à entre pares na entrada. Se você fizer isso em mini lotes, e o tamanho do lote for 16 ou 32, isso parece impraticável. Ou você pode amostrar alguns pares e calcular a perda desses (mesmo número de pares a cada mini lote, por exemplo, amostrados aleatoriamente).
Quanto à criação de uma rede não linear que garante a preservação da distância, uma abordagem 2, acho que uma abordagem poderia ser construir a rede a partir de blocos que preservam as distâncias, por exemplo, rotações. Não tenho certeza de que essa rede possa ser outra coisa senão uma transformação linear e apenas uma rotação. Qualquer não linearidade, como uma compressão sigmóide, deformaria as distâncias.
Acho que a abordagem 1 parece viável para mim, embora não haja garantia de que as distâncias sejam sempre preservadas e elas não serão exatamente preservadas. A segunda abordagem me parece intuitivamente que você estaria limitado a uma única transformação de rotação?
Editar: para esclarecer. Estou respondendo à pergunta "como fazer um codificador automático preservar a distância?". A resposta implícita que estou dando a "Um codificador automático preserva a distância?" é "Não por padrão; embora você possa fazer um monte de trabalho de perna para incentivar esse caso, ou seja, a abordagem 1 acima".
Edit 2: @DeltaIV tem um bom argumento sobre a redução de dimensão. Observe que a existência de t-SNE e assim por diante, ou seja, projeções de baixa dimensão do espaço de alta dimensão, mostra as limitações de tentar preservar a distância (conflito entre distâncias globais e distâncias locais; desafio de preservar distâncias em dimensões reduzidas), mas também que isso é possível, dadas certas advertências / compromissos.
fonte