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)?
Respostas:
É 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.
fonte
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:
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.
fonte
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.
fonte
fonte