Os Autoencoders preservam distâncias?

7

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?

Mahdi
fonte
11
Eu não esperaria que isso valesse nada - afinal, as pessoas usam espaços latentes do autoencoder para ter uma semelhança mais significativa - por exemplo, se você treina um autoencoder conv em imagens, vetores latentes semelhantes correspondem a imagens semanticamente relacionadas, em oposição às imagens semelhante no espaço em pixels.
Jakub Bartczuk
2
Quando você diz "preservar (emparelhadas) distâncias", você quer dizer entre todos os pontos do espaço de entrada ou apenas entre os pontos do conjunto de treinamento? Em outras palavras, suponha que eu receba um novo ponto de entrada (ponto de teste) que não foi usado no tempo de treinamento. Você espera que o autoencodificador aprenda uma representação modo que a distância de de qualquer ponto no espaço reduzido seja a mesma distância que a distância de no espaço original? PZZP
DeltaIV
11
Ou você se contentaria com um autoencoder que apenas aprende representações do conjunto de treinamento que preserva as distâncias em pares dos pontos no conjunto de treinamento ? Ou seja, algo como Escala Multidimensional?
DeltaIV
11
@DeltaIV A propriedade que eu gostaria de ver é que, se uma amostra no conjunto de testes estiver próxima de um ponto no conjunto de treinamento / teste no espaço original, ela também estará próxima no espaço reduzido.
Mahdi
Muito obrigado. Inclua esta informação no corpo da pergunta: todas as informações importantes devem estar lá. Os comentários devem ser temporários.
DeltaIV 18/06/19

Respostas:

5

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,,vn}, para um conjunto finito de elementos O={w1,,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.

DeltaIV
fonte
2
+1 bom encontrar esse papel! (vai ler!) Me lembrou uma afirmação que li anos atrás: " um codificador automático linear básico aprende essencialmente a mesma representação que uma Análise de Componentes Principais (PCA) " Längkvist et al. Cartas de reconhecimento de padrões 42 (2014) 11-24. (Tantos grandes papéis para ler eu sinto que se eu ler metade dos artigos que eu quero ler, mas eu não li, eu lia mais papel do que as que eu li..)
usεr11852
2

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.

Hugh Perkins
fonte
11
a abordagem 2 é falha - além do fato de o grupo isométrico ser composto de reflexões, rotações e translações (portanto, não apenas rotações, mas qualquer composição das três: no entanto, isso é apenas uma tecnicidade), de qualquer maneira o grupo isométrico é constituído por bijections de um espaço métrico Xem si mesmo. Assim, eles preservam a dimensão e, como tal, não são o tipo de transformação aprendida pelos auto-codificadores, mas não por causa das não linearidades (um auto-codificador sem a camada de gargalo poderia aprender a transformação da identidade): por causa da redução da dimensionalidade.
DeltaIV
@DeltaIV Adicionada uma 'edição' para abordar seu ponto, ou seja, eu concordo que os codificadores automáticos geralmente não preservam a distância; e eu estava dando um passo adiante e pensando: "o que se pode fazer se quiser que preservem a distância?".
Hugh Perkins
11
@DeltaIV Na verdade, eu percebi, não li completamente o seu comentário antes de responder: D adicionou 'edit 2', abordando a parte de redução de dimensionalidade, que confesso, não tinha chegado tão longe a pensar antes :)
Hugh Perkins