Os autoencoders são um tipo de rede neural artificial que pode aprender a reproduzir um determinado conjunto de dados usando apenas os próprios dados como entrada. Os autoencodificadores são usados com frequência para reduzir a dimensionalidade dos dados, aprender padrões complexos nos dados e aprender representações de dados para tarefas de aprendizado não supervisionado.
Um codificador automático consiste em um codificador, que transforma a entrada em uma representação de camada oculta, e um decodificador, que reconstrói a entrada a partir dessa representação de camada oculta. O codificador e o decodificador podem ser redes feed-forward, redes recorrentes ou uma combinação dos dois. A entrada é codificada em uma representação compacta chamada de espaço latente, que pode ser usada para várias tarefas, como classificação, regressão, agrupamento, redução de ruído e outras.
Os codificadores automáticos podem ser treinados usando uma variedade de algoritmos, sendo o mais comum o de retropropagação. Os autocodificadores também podem ser treinados usando variantes do aprendizado por reforço, como o aprendizado por reforço baseado em proveniência.
Além de reduzir a dimensionalidade dos dados, os autoencoders também são usados para fornecer informações sobre a estrutura dos dados. Por exemplo, eles podem ser usados para descobrir relações entre pontos de dados e aprender recursos que são importantes para tarefas posteriores.
Os autoencodificadores também são usados em outras áreas, como na criação de modelos generativos e na detecção de outlier. Mais recentemente, os autoencoders foram usados em aplicativos de aprendizagem profunda, como segmentação e classificação de imagens.
Os autoencoders são uma ferramenta importante no desenvolvimento de sistemas de inteligência artificial e aprendizado de máquina. Eles são amplamente usados em pesquisas para uma variedade de aplicações e continuam a ser um método popular para aprender representações de dados.