Glossário

Camada de fuga

Descobre como as camadas de abandono evitam o sobreajuste em redes neurais, melhorando a generalização, a robustez e o desempenho do modelo.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

Uma camada de abandono é uma técnica fundamental usada no treinamento de modelos de aprendizado profundo, particularmente redes neurais, para combater o overfitting. O overfitting ocorre quando um modelo aprende os dados de treinamento muito bem, incluindo seu ruído e padrões específicos, o que dificulta sua capacidade de generalizar para dados novos e não vistos. O abandono resolve esse problema "abandonando" temporária e aleatoriamente, ou definindo como zero, uma fração das ativações dos neurônios em uma camada durante cada iteração de treinamento. Isso força a rede a aprender caraterísticas mais robustas que não dependem de um único neurônio.

Como funciona o Dropout

Durante o processo de treinamento, para cada exemplo de treinamento em um lote, cada neurônio na camada de abandono tem uma certa probabilidade (a "taxa de abandono", normalmente entre 0,1 e 0,5) de ser desativado. Isso significa que sua saída é definida como zero para aquela passagem específica para frente e para trás. Os restantes neurónios activos têm as suas saídas aumentadas por um fator equivalente a 1/(1-taxa de desistência) para manter a soma global esperada de activações. Este processo cria efetivamente arquitecturas de rede "diluídas" ligeiramente diferentes para cada passo de treino, evitando que os neurónios se co-adaptem demasiado e encorajando-os a aprender caraterísticas úteis de forma mais independente. É importante ressaltar que, durante a fase de avaliação ou inferência do modelo, a camada de abandono é desligada e todos os neurônios são usados com seus pesos aprendidos, garantindo que toda a capacidade da rede seja utilizada para as previsões.

Benefícios e importância

A principal vantagem da utilização de camadas de abandono é a melhoria da generalização do modelo. Ao evitar co-adaptações complexas entre neurónios, o dropout torna o modelo menos sensível ao ruído e aos padrões específicos nos dados de treino, levando a um melhor desempenho em dados de validação ou de teste não vistos. Actua como uma forma de regularização, semelhante em objetivo a técnicas como o decaimento do peso L1/L2, mas operando através de um mecanismo estocástico. É particularmente eficaz em grandes redes com muitos parâmetros, onde o sobreajuste é um desafio comum. O conceito original foi detalhado no artigo "Dropout: A Simple Way to Prevent Neural Networks from Overfitting".

Aplicações no mundo real

As camadas de abandono são amplamente utilizadas em vários domínios da IA e da aprendizagem automática:

  1. Visão computacional: Em tarefas como a deteção de objectos e a classificação de imagens, o Dropout é frequentemente aplicado às camadas totalmente ligadas das Redes Neuronais Convolucionais (CNN). Modelos como Ultralytics YOLO beneficiam implicitamente de técnicas de regularização durante o treino, ajudando-os a generalizar melhor em diversos conjuntos de dados de imagens como o COCO ou dados personalizados preparados através do Ultralytics HUB. Isto garante robustez na deteção de objectos em cenas variadas do mundo real, crucial para aplicações em veículos autónomos ou sistemas de segurança.
  2. Processamento de linguagem natural (PNL): A desistência é normalmente utilizada em redes neuronais recorrentes (RNN) como as LSTM e em modelos de transformação utilizados em tarefas como a tradução automática ou a análise de sentimentos. Ajuda a evitar que os modelos memorizem frases específicas ou estruturas de frases do corpus de treino, levando a uma melhor compreensão e geração de linguagem natural. Quadros como o Hugging Face Transformers incorporam frequentemente o dropout nas suas arquitecturas de modelos.

Conceitos e distinções relacionados

O abandono é uma das várias técnicas utilizadas para evitar o sobreajuste. Outras incluem:

  • Regularização L1 e L2: Adiciona uma penalidade à função de perda com base na magnitude dos pesos do modelo, incentivando pesos menores.
  • Normalização de lote: Normaliza as entradas para uma camada para cada mini-lote. Embora seja usado principalmente para estabilizar e acelerar o treinamento, também pode ter um leve efeito de regularização.
  • Aumento de dados: Aumenta artificialmente o tamanho e a diversidade do conjunto de dados de treinamento aplicando transformações como rotações, inversões ou alterações de cor nos dados de entrada. Explora as técnicas de aumento de dados na documentaçãoUltralytics .

O Dropout difere ao manipular diretamente as activações dos neurónios de forma estocástica durante o treino, treinando efetivamente um conjunto de redes reduzidas.

Implementação

As camadas de abandono são componentes padrão nas principais estruturas de aprendizagem profunda. Estão prontamente disponíveis em bibliotecas como PyTorch e TensorFlowtornando-as fáceis de incorporar em arquitecturas de redes neuronais.

Lê tudo