Autoencoder
Descubra como os autoencoders comprimem dados, reduzem o ruído e permitem a deteção de anomalias, a extração de caraterísticas e muito mais com técnicas avançadas de IA.
Um autoencoder é um tipo de rede neural artificial utilizado para a aprendizagem não supervisionada. O seu principal objetivo é aprender uma representação comprimida e eficiente (codificação) de um conjunto de dados, normalmente para efeitos de redução da dimensionalidade ou extração de caraterísticas. A rede atinge este objetivo aprendendo a reconstruir a sua própria entrada. É constituída por duas partes principais: um codificador, que comprime os dados de entrada num espaço latente de baixa dimensão, e um descodificador, que reconstrói os dados originais a partir desta representação comprimida. Ao forçar os dados a passar por este "estrangulamento", a rede tem de aprender a identificar e a preservar as caraterísticas mais salientes, eliminando simultaneamente o ruído e a redundância.
Como funcionam os codificadores automáticos
A arquitetura de um autoencoder é composta por uma função codificadora e uma função descodificadora, que podem ser redes simples de feed-forward ou estruturas mais complexas como as Redes Neuronais Convolucionais (CNN).
- Codificador: Esta parte da rede pega nos dados de entrada de alta dimensão e mapeia-os para uma representação latente de baixa dimensão. Este vetor comprimido capta a essência dos dados de entrada.
- Gargalo: Esta é a camada que contém a representação comprimida, em espaço latente, da entrada. É o núcleo do autoencoder e a razão pela qual é eficaz para a redução da dimensionalidade.
- Descodificador: Esta parte pega na representação comprimida do estrangulamento e tenta reconstruir os dados de entrada originais de elevada dimensão.
O processo de formação do modelo envolve a minimização de uma função de perda, frequentemente designada por erro de reconstrução, que mede a diferença entre a entrada original e a saída reconstruída. Este processo é uma forma de aprendizagem auto-supervisionada, uma vez que o modelo aprende a partir dos próprios dados sem necessitar de rótulos explícitos.
Aplicações IA/ML do mundo real
Os autoencoders são versáteis e têm várias aplicações práticas na aprendizagem automática e na aprendizagem profunda.
- Deteção de anomalias: Os autoencoders são altamente eficazes na deteção de anomalias. Um modelo é treinado num conjunto de dados que contém apenas pontos de dados "normais". Quando um novo ponto de dados anómalo (por exemplo, um defeito de fabrico ou uma transação financeira fraudulenta) é introduzido no codificador, o descodificador não consegue reconstruí-lo com precisão. Isto resulta num erro de reconstrução elevado, que pode ser utilizado como um sinal para assinalar a anomalia. Esta é uma técnica fundamental na IA para sistemas de fabrico e de segurança financeira, um tópico explorado por instituições como o Alan Turing Institute.
- Denoising de imagens: Um Autoencoder de Denoising pode ser treinado para remover o ruído das imagens. O modelo recebe imagens com ruído como entrada e é treinado para produzir as versões originais e limpas. Esta capacidade é valiosa na análise de imagens médicas para melhorar a qualidade de exames de ressonância magnética ou tomografia computorizada, ou para restaurar fotografias antigas e granuladas. Esta abordagem aprendida à redução de ruído é mais sofisticada do que os filtros tradicionais de processamento de imagem.
Existem muitos tipos de codificadores automáticos, incluindo codificadores automáticos esparsos, codificadores automáticos de redução de ruído e codificadores automáticos convolucionais. Uma das variações mais significativas é o Autoencoder Variacional (VAE), que é um modelo generativo capaz de produzir novas amostras de dados semelhantes àquelas em que foi treinado. Está disponível no arXiv um resumo exaustivo dos VAE.
Auto-codificadores vs. Conceitos relacionados
- PCA: Embora ambos reduzam a dimensionalidade, a análise de componentes principais (PCA) limita-se a transformações lineares. Os auto-codificadores, sendo redes neuronais, podem aprender mapeamentos não lineares complexos, conduzindo frequentemente a melhores representações para conjuntos de dados complexos.
- GANs: As redes adversariais generativas (GAN) foram concebidas principalmente para gerar novos dados altamente realistas. Embora as VAEs também possam gerar dados, o seu objetivo é frequentemente a aprendizagem de um espaço latente bem estruturado, enquanto as GANs se destacam pela fidelidade dos resultados, por vezes à custa da interpretabilidade do espaço latente.
- CNNs e transformadores: Os auto-codificadores definem um padrão de arquitetura (codificador-descodificador). Utilizam frequentemente outros tipos de rede, como CNNs para dados de imagem ou Transformers para dados sequenciais, como blocos de construção. Isto difere de modelos como o Ultralytics YOLO, que são modelos supervisionados concebidos para tarefas como a deteção de objectos ou a segmentação de imagens.
Ferramentas e implementação
Os autoencoders podem ser implementados utilizando estruturas populares de aprendizagem profunda (DL):
Plataformas como o Ultralytics HUB facilitam o fluxo de trabalho global de ML, incluindo a gestão de dados e a formação de modelos, embora se concentrem principalmente em tarefas supervisionadas, como a deteção e a segmentação, e não na formação não supervisionada de autoencodificadores.