Glossário

Autoencoder

Descobre 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.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

Um autoencoder é um tipo de rede neural artificial (RNA) utilizado principalmente para tarefas de aprendizagem não supervisionada. O seu principal objetivo é aprender representações eficientes (codificações) dos dados de entrada, normalmente para redução da dimensionalidade ou extração de caraterísticas, treinando a rede para reconstruir as suas próprias entradas. Para tal, comprime a entrada num espaço latente de dimensão inferior e reconstrói a saída a partir desta representação comprimida.

Como funcionam os codificadores automáticos

Um Autoencoder é composto por duas partes principais: um codificador e um descodificador.

  1. Codificador: Esta parte pega nos dados de entrada e mapeia-os para uma representação de dimensão inferior denominada espaço latente ou gargalo. O codificador aprende a captar as caraterísticas mais significativas dos dados, ao mesmo tempo que elimina o ruído ou a informação redundante. Este processo é semelhante à compressão de dados.
  2. Descodificador: Esta parte pega na representação codificada do espaço latente e tenta reconstruir os dados de entrada originais com a maior precisão possível.

A rede é treinada minimizando a diferença entre a entrada original e a saída reconstruída, geralmente medida por uma função de perda como o erro quadrático médio (MSE). A camada de gargalo força a rede a aprender uma representação compacta e significativa, pois ela deve reter informações suficientes para reconstruir a entrada de forma eficaz.

Tipos de Autoencoders

Existem diversas variações de Autoencoders, cada uma concebida para fins específicos:

  • Autoencodificadores de redução de ruído: Treinados para reconstruir a entrada original e limpa a partir de uma versão corrompida ou com ruído. Isto torna-os úteis para tarefas de redução de ruído.
  • Autoencodificadores esparsos: Introduz restrições de esparsidade durante o treinamento, incentivando a rede a aprender representações em que apenas um pequeno número de nós está ativo a qualquer momento.
  • Autoencoders variacionais (VAEs): Um tipo de modelo generativo que aprende uma distribuição de probabilidade sobre o espaço latente, permitindo-lhe gerar novas amostras de dados semelhantes aos dados de treino. Os VAEs diferem significativamente das Redes Adversárias Generativas (GANs), outra técnica generativa popular.
  • Autoencodificadores contractivos: Procura aprender representações que sejam robustas a pequenas alterações nos dados de entrada.

Aplicações no mundo real

Os autoencoders têm encontrado aplicações em vários domínios:

  • Deteção de anomalias: Ao aprender os padrões normais dos dados, os Autoencoders podem identificar anomalias ou valores atípicos como entradas que resultam em erros de reconstrução elevados. Isto é utilizado na deteção de fraudes e no controlo de qualidade industrial. Por exemplo, detetar padrões de tráfego de rede invulgares que possam indicar um ciberataque.
  • Denoising e compressão de imagens: Os Autoencoders de redução de ruído podem limpar imagens ruidosas, enquanto os Autoencoders padrão podem comprimir imagens armazenando apenas a representação latente. Um exemplo é o restauro da nitidez de fotografias antigas ou de imagens de satélite afectadas por interferências atmosféricas. Vê como a visão por computador pode ser utilizada para analisar imagens de satélite.
  • Redução da dimensionalidade: As representações latentes aprendidas podem servir como caraterísticas compactas para entrada noutros modelos de aprendizagem automática (ML), melhorando potencialmente o desempenho e reduzindo o custo computacional. Isto é frequentemente comparado com técnicas como a Análise de Componentes Principais (PCA), embora os Autoencoders possam captar relações mais complexas e não lineares.
  • Geração de dados (VAEs): Os Autoencoders Variacionais podem gerar novas amostras de dados sintéticos, úteis em áreas como a geração de arte ou a criação de aumento de dados de treino. Explora mais os dados sintéticos.

Ferramentas e implementação

Os autoencodificadores são normalmente implementados utilizando estruturas de aprendizagem profunda, tais como PyTorch ou TensorFlow. As arquitecturas envolvem frequentemente Redes Neuronais Convolucionais (CNN) para dados de imagem ou Redes Neuronais Recorrentes (RNN) para dados sequenciais. O treino destes modelos pode ser gerido e acompanhado utilizando plataformas como o Ultralytics HUB ou ferramentas de acompanhamento de experiências como Weights & Biases ou MLflow. Para obter mais detalhes sobre o treinamento de modelos, explora a documentaçãoUltralytics .

Lê tudo