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 utilizado para aprender codificações de dados eficientes de forma não supervisionada. O principal objetivo de um autoencoder é aprender uma representação (codificação) para um conjunto de dados, normalmente para redução da dimensionalidade, treinando a rede para ignorar o "ruído" do sinal. Essencialmente, comprime a entrada num código de dimensão inferior e depois reconstrói a saída a partir desta representação. Os autoencoders são amplamente utilizados em várias aplicações, incluindo a redução de ruído dos dados, a deteção de anomalias e a extração de caraterísticas.

Componentes principais e arquitetura

Os codificadores automáticos são compostos por duas partes principais: um codificador e um descodificador. O codificador comprime os dados de entrada numa representação no espaço latente, que é um vetor de dimensão inferior. O descodificador reconstrói então os dados de entrada a partir desta representação latente.

  • Codificador: Esta parte da rede comprime os dados de entrada numa representação de dimensão inferior. Normalmente, consiste em várias camadas que reduzem progressivamente a dimensionalidade da entrada.
  • Descodificador: Esta parte da rede reconstrói os dados a partir da representação de dimensão inferior criada pelo codificador. Espelha a estrutura do codificador, mas ao contrário, aumentando progressivamente a dimensionalidade de volta ao tamanho original da entrada.
  • Representação do espaço latente: É a representação comprimida e de dimensão inferior dos dados de entrada criada pelo codificador. Captura as caraterísticas mais importantes dos dados de entrada.

Tipos de Autoencoders

Existem vários tipos de codificadores automáticos que respondem a diferentes necessidades e aplicações:

  • Autoencodificadores subcompletos: Estes são o tipo mais comum, onde a representação do espaço latente tem uma dimensionalidade menor do que os dados de entrada. Isso força a rede a aprender as caraterísticas mais salientes da entrada.
  • Autoencodificadores esparsos: Estes autoencodificadores introduzem restrições de esparsidade na representação do espaço latente, o que significa que apenas alguns nós no espaço latente estão activos num dado momento. Isto pode levar a uma aprendizagem de caraterísticas mais robusta.
  • Autoencodificadores de redução de ruído: Estes são treinados para remover o ruído dos dados. A entrada para a rede é uma versão corrompida dos dados, e a rede é treinada para reconstruir os dados originais, não corrompidos. Sabe mais sobre a deteção de anomalias e a sua utilização na identificação de padrões invulgares.
  • Autoencodificadores variacionais (VAEs): Estes são modelos generativos que aprendem uma distribuição probabilística dos dados de entrada. Os VAEs são utilizados para gerar novas amostras de dados que se assemelham aos dados de treino.

Como os codificadores automáticos diferem de termos semelhantes

Embora os autoencoders estejam relacionados com outros conceitos de aprendizagem profunda, têm diferenças distintas:

  • Análise de componentes principais (PCA): Tanto os autoencoders como a PCA são utilizados para a redução da dimensionalidade. No entanto, a PCA é uma técnica linear, enquanto os autoencoders podem aprender transformações não lineares, o que os torna mais poderosos para dados complexos.
  • Redes Adversariais Generativas (GANs): Tanto os autoencoders como as GANs podem ser utilizados para gerar dados. No entanto, as GANs utilizam uma abordagem diferente que envolve um gerador e uma rede discriminadora que competem entre si. Explora mais sobre a IA generativa e as suas aplicações.
  • Máquinas de Boltzmann restritas (RBMs): Tal como os autoencoders, as RBMs são utilizadas para a aprendizagem não supervisionada de caraterísticas. No entanto, os RBMs são modelos probabilísticos, enquanto os autoencoders são determinísticos.

Aplicações reais de autoencodificadores

Os codificadores automáticos têm uma vasta gama de aplicações em várias indústrias:

  • Denoising de imagens: Os autoencoders, especialmente os autoencoders de denoising, são utilizados para remover o ruído das imagens, melhorando a sua qualidade. Isto é particularmente útil em áreas como a análise de imagens médicas, onde imagens claras são cruciais para um diagnóstico preciso.
  • Deteção de anomalias: Os codificadores automáticos podem detetar anomalias nos dados, aprendendo os padrões normais e identificando os desvios desses padrões. Isto é utilizado na deteção de fraudes, segurança de redes e controlo de qualidade industrial. Sabe mais sobre como a segurança dos dados é vital para proteger informações sensíveis nestas aplicações.
  • Extração de caraterísticas: Os codificadores automáticos podem aprender caraterísticas úteis a partir de dados brutos, que podem depois ser utilizados como entrada para outros modelos de aprendizagem automática. Isto é particularmente útil em tarefas de visão computacional, onde os autoencoders podem aprender caraterísticas relevantes a partir de imagens.
  • Redução de dimensionalidade: Ao comprimir os dados numa representação de menor dimensão, os autoencoders podem ser utilizados para a redução da dimensionalidade, facilitando a visualização e o processamento de dados de elevada dimensão.
  • Descoberta de medicamentos: Os autoencoders são utilizados em bioinformática para analisar dados biológicos e identificar potenciais candidatos a medicamentos. Podem aprender padrões complexos em estruturas moleculares e prever a eficácia de novos medicamentos.

Ferramentas e tecnologias

Várias ferramentas e estruturas são normalmente utilizadas para desenvolver e implementar modelos de autoencoder:

  • TensorFlow: Uma estrutura de aprendizagem automática de código aberto desenvolvida por Google. TensorFlow fornece uma plataforma flexível para construir e treinar modelos de aprendizagem profunda, incluindo autoencoders. Lê mais sobre TensorFlow e as suas capacidades.
  • Keras: Uma biblioteca de redes neurais de fácil utilização escrita em Python. O Keras é frequentemente utilizado com TensorFlow como uma API de alto nível para construir e treinar modelos. Sabe mais sobre o Keras e as suas funcionalidades.
  • PyTorch: Uma estrutura de aprendizagem automática de código aberto desenvolvida pelo Facebook. PyTorch é conhecida pela sua flexibilidade e facilidade de utilização, tornando-a popular para investigação e produção.
  • Ultralytics YOLO: A primeira vez que Ultralytics YOLO é mencionado numa página, tens de estabelecer uma ligação para a página de destino Ultralytics YOLO em https://www.ultralytics.com/yolo. Embora seja conhecido principalmente pela deteção de objectos, Ultralytics YOLO pode ser adaptado a várias outras tarefas de visão por computador e os seus princípios subjacentes podem ser utilizados para compreender a extração de caraterísticas e a aprendizagem de representações.

Ao compreender os codificadores automáticos e as suas aplicações, os utilizadores podem apreciar melhor as complexidades e as capacidades dos sistemas de IA modernos. Os autoencoders desempenham um papel crucial ao permitirem que as máquinas aprendam a partir de dados de forma não supervisionada, impulsionando a inovação em vários domínios.

Lê tudo