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 dropout é uma técnica fundamental usada no treinamento de redes neurais (NN) para combater o problema de sobreajuste. Introduzido por Hinton et al. no seu influente artigo de 2014, o dropout tornou-se um método de regularização amplamente adotado na aprendizagem profunda (DL), particularmente eficaz em grandes redes com muitos parâmetros. O seu principal objetivo é melhorar a capacidade de generalização do modelo, garantindo que tem um bom desempenho em dados não vistos, e não apenas nos dados de treino.

Como funciona o Dropout

Durante o processo de treinamento do modelo, uma camada de abandono aleatoriamente "deixa de lado" ou desativa uma fração dos neurônios (unidades) nessa camada para cada amostra de treinamento. Isso significa que as saídas desses neurônios selecionados são definidas como zero e não contribuem para a passagem para frente nem participam da etapa de retropropagação para essa amostra específica. A fração de neurônios a serem descartados é determinada pela taxa de descarte, um hiperparâmetro normalmente definido entre 0,2 e 0,5.

Crucialmente, o abandono só está ativo durante o treino. Durante a inferência ou previsão nos dados de teste, todos os neurónios estão activos. Para compensar o facto de haver mais neurónios activos durante a inferência do que durante o treino, as saídas da camada são normalmente reduzidas pela taxa de desistência (uma técnica chamada desistência invertida, normalmente implementada em estruturas como PyTorch e TensorFlow).

Vantagens da utilização do Dropout

A principal vantagem da utilização de camadas de abandono é a melhoria da generalização do modelo e a redução do sobreajuste. Consegue isso através de vários mecanismos:

  • Reduz a Co-adaptação: Ao eliminar aleatoriamente os neurónios, o dropout impede que as unidades de uma camada se tornem demasiado dependentes umas das outras (co-adaptação) para corrigir erros durante o treino. Isto força cada neurónio a aprender caraterísticas mais robustas e independentes, úteis por si só.
  • Conjunto implícito: Aplicar o dropout durante o treinamento é semelhante a treinar um grande número de diferentes redes neurais "diluídas" com pesos compartilhados. No momento da inferência, usar a rede completa com ativações escalonadas aproxima a média das previsões desse grande conjunto, o que geralmente leva a um melhor desempenho e robustez.
  • Eficiência computacional: Embora concetualmente semelhante ao treino de vários modelos, o dropout consegue este efeito de conjunto num único ciclo de treino de modelo, tornando-o computacionalmente muito mais barato do que o conjunto de modelos explícitos.

Aplicações no mundo real

O abandono é amplamente utilizado em vários domínios da inteligência artificial (IA) e da aprendizagem automática (ML):

  1. Visão por computador: Na visão computacional (CV), o abandono ajuda modelos como Ultralytics YOLO têm um melhor desempenho em tarefas como a deteção de objectos, classificação de imagens e segmentação de instâncias. Por exemplo, em sistemas de condução autónoma, o abandono pode tornar os modelos de deteção mais robustos a variações de iluminação, condições meteorológicas ou oclusões, melhorando a segurança e a fiabilidade. O treinamento desses modelos pode ser gerenciado com eficiência usando plataformas como o Ultralytics HUB.
  2. Processamento de linguagem natural (PNL): O abandono é normalmente aplicado em modelos de NLP como Transformers e BERT. Em aplicações como a tradução automática ou a análise de sentimentos, o abandono evita que o modelo memorize frases específicas ou estruturas de frases dos dados de treino, levando a uma melhor compreensão e geração de texto novo. Isto melhora o desempenho dos chatbots e das ferramentas de resumo de texto.

Conceitos e distinções relacionados

O dropout é uma das várias técnicas utilizadas para regularização na aprendizagem profunda. Outras incluem:

  • Regularização L1 e L2: Esses métodos adicionam uma penalidade à função de perda com base na magnitude dos pesos do modelo, incentivando pesos menores. Leia mais sobre a regularização L1/L2.
  • Normalização de lote: A Normalização de Lote (BN) normaliza as ativações dentro de uma camada, o que pode estabilizar o treinamento e, às vezes, fornecer um efeito de regularização leve, reduzindo potencialmente a necessidade de um dropout forte. Enquanto a BN trata da mudança de covariável interna, o Dropout visa diretamente a complexidade do modelo, forçando a redundância.
  • Aumento dos dados: Técnicas como rodar, escalar ou cortar imagens(aumento de dados) aumentam artificialmente a diversidade do conjunto de dados de treino, o que também ajuda a evitar o sobreajuste e a melhorar a generalização. O abandono e o aumento de dados são frequentemente utilizados em conjunto.

Em resumo, a camada de Dropout é uma técnica de regularização simples, mas poderosa, essencial para treinar modelos robustos de aprendizagem profunda em várias aplicações, desde a visão computacional até à PNL.

Lê tudo