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 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 força 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 chamada espaço latente ou gargalo. Essa compressão força a rede a aprender padrões significativos e a descartar 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 gargalo e tenta reconstruir os dados de entrada originais com a maior precisão possível. Espelha a estrutura do codificador, mas no sentido inverso, aumentando a amostragem dos dados de volta às suas dimensões originais.

O treinamento envolve alimentar a rede com dados de entrada e comparar a saída (dados reconstruídos) com a entrada original usando 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 usando backpropagation e um algoritmo de otimização como Adam ou SGD para minimizar esse 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. Sabe mais sobre os Autoencoders de Denoising.
  • Autoencodificadores esparsos: Introduz uma penalidade de esparsidade (uma forma de regularização) na camada de gargalo, forçando a rede a aprender representações onde apenas alguns nós estão ativos 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. Lê o artigo sobre VAE.
  • Autoencodificadores contratuais: Adiciona 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 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. Explora mais a deteção de anomalias.
  • Compressão e redução de ruído de imagens: Os autoencoders podem aprender representações compactas de imagens, efectuando uma compressão eficaz. Os autoencoders de redução de ruído são usados especificamente para remover o ruído das imagens, o que é valioso na análise de imagens médicas (por exemplo, aprimorando exames de ressonância magnética ou tomografia computadorizada) ou restaurando fotografias antigas. Vê as soluções de imagiologia médica.
  • Redução de 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 codificadora 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. Enquanto modelos como o Ultralytics YOLO utilizam backbones especializados, os princípios do codificador automático informam a aprendizagem da 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 geral 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.

Lê tudo