Glossário

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 Neuronal Artificial (RNA) utilizado principalmente para tarefas de aprendizagem não supervisionada, em especial a redução da dimensionalidade e a extração de caraterísticas. O seu objetivo fundamental é aprender uma representação comprimida (codificação) dos dados de entrada, normalmente treinando a rede para reconstruir as suas próprias entradas. Consiste em duas partes principais: um codificador que mapeia os dados de entrada num espaço latente de dimensão inferior e um descodificador que reconstrói os dados originais a partir desta representação comprimida. Este processo obriga o autoencoder a captar as caraterísticas mais salientes dos dados de treino.

Como funcionam os codificadores automáticos

O funcionamento de um autoencoder envolve duas fases: codificação e descodificação.

  1. Codificador: Esta parte pega nos dados de entrada (por exemplo, uma imagem ou um vetor) e comprime-os numa representação de dimensão inferior denominada espaço latente ou gargalo. Esta compressão força a rede a aprender padrões significativos e a eliminar o ruído ou a redundância. O codificador é normalmente constituído por várias camadas, utilizando frequentemente funções de ativação como ReLU ou Sigmoid.
  2. Gargalo: Esta é a camada central do autoencoder onde reside a representação comprimida e de baixa dimensão dos dados de entrada. É o "código" que capta a informação essencial. A dimensionalidade desta camada é um hiperparâmetro crítico.
  3. Descodificador: Esta parte pega na representação comprimida do estrangulamento e tenta reconstruir os dados de entrada originais com a maior precisão possível. Reflecte a estrutura do codificador, mas em sentido inverso, aumentando a amostragem dos dados para as suas dimensões originais.

O treino consiste em alimentar a rede com dados de entrada e comparar a saída (dados reconstruídos) com a entrada original utilizando uma função de perda, como o erro quadrático médio (MSE) para dados contínuos ou a entropia cruzada binária para dados binários. Os pesos da rede são ajustados utilizando a retropropagação e um algoritmo de otimização como o Adam ou o SGD para minimizar este erro de reconstrução.

Tipos de Autoencoders

Existem diversas variações da arquitetura básica do autoencoder, cada uma concebida para tarefas específicas:

  • Autoencodificadores de redução de ruído: Treinados para reconstruir uma versão limpa de uma entrada que tenha sido corrompida com ruído. Isto torna-os robustos para tarefas como a eliminação de ruído de imagens. Saiba mais sobre os Autoencoders de Denoising.
  • Autoencodificadores esparsos: Introduzem uma penalização de esparsidade (uma forma de regularização) na camada de estrangulamento, forçando a rede a aprender representações em que apenas alguns nós estão activos de cada vez.
  • Autoencodificadores variacionais (VAEs): Um modelo generativo de IA que aprende um mapeamento probabilístico para o espaço latente, permitindo-lhe gerar novas amostras de dados semelhantes aos dados de treino. Ler o documento VAE.
  • Autoencodificadores contractivos: Adicionar um termo de penalização à função de perda para incentivar o codificador a aprender representações que sejam robustas a pequenas alterações na entrada.

Aplicações no mundo real

Os autoencoders são ferramentas versáteis utilizadas em várias aplicações de aprendizagem automática (ML):

  • Deteção de anomalias: Ao aprenderem os padrões normais dos dados, os codificadores automáticos podem identificar valores aberrantes ou anomalias. Se o erro de reconstrução para um ponto de dados específico for elevado, isso sugere que a entrada é significativamente diferente dos dados de treino, indicando potencialmente uma anomalia, como transacções fraudulentas nas finanças ou equipamento defeituoso no fabrico. Explore mais a deteção de anomalias.
  • Compressão e redução de ruído de imagens: Os auto-codificadores podem aprender representações compactas de imagens, efectuando eficazmente a compressão. Os autoencoders de redução de ruído são especificamente utilizados para remover o ruído das imagens, o que é valioso na análise de imagens médicas (por exemplo, melhorando exames de ressonância magnética ou tomografia computadorizada) ou restaurando fotografias antigas. Veja soluções de imagens médicas.
  • Redução da dimensionalidade: Semelhante à análise de componentes principais (PCA), os autoencoders reduzem as dimensões dos dados, mas podem capturar relações complexas e não lineares que a PCA não consegue. Isto é útil para a visualização de dados e como um passo de pré-processamento para outros modelos ML.
  • Aprendizagem de caraterísticas: A parte do codificador pode ser utilizada como um extrator de caraterísticas para tarefas a jusante, como a classificação de imagens ou a deteção de objectos, fornecendo frequentemente caraterísticas mais robustas do que os dados em bruto. Embora modelos como o Ultralytics YOLO utilizem backbones especializados, os princípios do codificador automático informam a aprendizagem de representação.

Auto-codificadores vs. Conceitos relacionados

  • PCA: Embora ambos reduzam a dimensionalidade, o PCA está limitado 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 os VAEs (um tipo de autoencoder) também possam gerar dados, o seu foco é 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 arquitetónico (codificador-descodificador). Utilizam frequentemente outros tipos de redes, como as Redes Neuronais Convolucionais (CNN) para dados de imagem ou Transformadores para dados sequenciais, como blocos de construção no codificador e descodificador.

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.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Ligue-se, colabore e cresça com inovadores globais

Aderir agora
Ligação copiada para a área de transferência