Quais são os objetivos dos autoencoders?

10

Autoencoders são redes neurais que aprendem uma representação compactada da entrada para reconstruí-la posteriormente, para que possam ser usadas para redução de dimensionalidade. Eles são compostos de um codificador e um decodificador (que podem ser redes neurais separadas). A redução da dimensionalidade pode ser útil para lidar ou atenuar os problemas relacionados à maldição da dimensionalidade, onde os dados se tornam escassos e é mais difícil obter "significância estatística". Portanto, autoencodificadores (e algoritmos como PCA) podem ser usados ​​para lidar com a maldição da dimensionalidade.

Por que nos preocupamos com a redução de dimensionalidade usando especificamente codificadores automáticos? Por que não podemos simplesmente usar o PCA, se o objetivo é a redução da dimensionalidade?

Por que precisamos descomprimir a representação latente da entrada se queremos apenas realizar uma redução de dimensionalidade ou por que precisamos da parte do decodificador em um autoencoder? Quais são os casos de uso? Em geral, por que precisamos compactar a entrada para descompactá-la posteriormente? Não seria melhor usar apenas a entrada original (para começar)?

nbro
fonte
11
Consulte também a seguinte pergunta stats.stackexchange.com/q/82416/82135 no CrossValidated SE.
nbro

Respostas:

6

É importante pensar sobre que tipo de padrões nos dados estão sendo representados.

Suponha que você tenha um conjunto de dados de imagens em escala de cinza, de modo que cada imagem tenha uma intensidade uniforme. Como cérebro humano, você perceberia que todos os elementos deste conjunto de dados podem ser descritos em termos de um único parâmetro numérico, que é esse valor de intensidade. Isso é algo pelo qual o PCA funcionaria bem, porque cada uma das dimensões (podemos pensar em cada pixel como uma dimensão diferente) está perfeitamente linearmente correlacionada.

Suponha, em vez disso, que você tenha um conjunto de dados de imagens em bitmap em preto e branco de 128x128px de círculos centralizados. Como cérebro humano, você perceberia rapidamente que todos os elementos deste conjunto de dados podem ser totalmente descritos por um único parâmetro numérico, que é o raio do círculo. Esse é um nível de redução muito impressionante em relação às 16384 dimensões binárias e, talvez mais importante, é uma propriedade semanticamente significativa dos dados. No entanto, o PCA provavelmente não será capaz de encontrar esse padrão.

Sua pergunta foi "Por que não podemos simplesmente usar o PCA, se o objetivo é reduzir a dimensionalidade?" A resposta simples é que o PCA é a ferramenta mais simples para redução de dimensionalidade, mas pode perder muitos relacionamentos que técnicas mais poderosas, como auto-codificadores, podem encontrar.

Josiah
fonte
3

Um caso de uso de auto-codificadores (em particular, do decodificador ou modelo generativo do auto-codificador) é para suavizar a entrada. Esse tipo de auto-codificador, chamado auto-codificador de denoising , recebe uma entrada parcialmente corrompida e tenta reconstruir a entrada não corrompida correspondente. Existem várias aplicações deste modelo. Por exemplo, se você tiver uma imagem corrompida, poderá recuperar a imagem corrompida usando um codificador automático denoising.

Autoencoders e PCA estão relacionados:

um codificador automático com uma única camada oculta totalmente conectada, uma função de ativação linear e uma função quadrada de custo de erro treina pesos que abrangem o mesmo subespaço que o abrangido pelos vetores de carregamento do componente principal, mas que não são idênticos aos vetores de carregamento.

Para obter mais informações, consulte o artigo De subespaços principais a componentes principais com auto-codificadores lineares (2018), de Elad Plaut. Veja também esta resposta , que também explica a relação entre PCA e autoencoders.

nbro
fonte
3

O PCA é um método linear que cria uma transformação capaz de alterar as projeções dos vetores (mudança de eixo)

Como o PCA procura a direção da variância máxima, geralmente ela possui alta discriminação, mas não garante que a direção da maior variação seja a direção da maior discriminação.

LDA é um método linear que cria uma transformação capaz de encontrar a direção mais relevante para decidir se um vetor pertence à classe A ou B.

O PCA e o LDA têm versões não lineares do Kernel que podem superar suas limitações lineares.

Os codificadores automáticos podem executar redução de dimensionalidade com outros tipos de função de perda, podem não ser lineares e podem ter um desempenho melhor que o PCA e o LDA para muitos casos.

Provavelmente, não existe o melhor algoritmo de aprendizado de máquina para fazer alguma coisa; algumas vezes, o Deep Learning e as Redes Neurais são um exagero em problemas simples e o PCA e o LDA podem ser tentados antes de outras reduções de dimensionalidade mais complexas.

Pedro Henrique Monforte
fonte
11
O que a LDA tem a ver com a pergunta?
nbro
O LDA pode ser usado como redução de dimensionalidade. Os deriva algoritmo original apenas uma projeção, mas você pode usá-lo para obter mais baixo escalão direção discriminativo por mais de modelagem acurate
Pedro Henrique Monforte
O PCA também não garante a variação máxima, pois é um algoritmo ganancioso que apenas se aproxima do máximo.
Mathieu Bouville
O PCA possui uma solução fechada, o eixo principal será sempre a direção da variação máxima. Não é um algoritmo guloso (mas pode ser implementado como um)
Pedro Henrique Monforte
1
  1. A metade do decodificador é necessária para calcular a função de perda para o treinamento da rede. Semelhante à forma como o 'adversário' ainda é necessário em uma GAN, mesmo que você esteja interessado apenas no componente generativo.
  2. Os codificadores automáticos podem aprender a incorporação não linear dos dados e, portanto, são mais poderosos que o PCA de baunilha.
  3. Os autoencodificadores têm aplicações além da redução de dimensionalidade:
    • Gerando novos pontos de dados ou execute interpolação (consulte VAE)
    • Crie filtros denoising (por exemplo, no processamento de imagens)
    • Compactar / descomprimir dados
    • Previsão de link (por exemplo, na descoberta de drogas)
brazofuerte
fonte