Glossário

Camada de abandono

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

Uma camada de abandono é uma técnica de regularização poderosa, mas simples, utilizada em redes neurais (NN) para combater o sobreajuste. O sobreajuste ocorre quando um modelo aprende os dados de treinamento muito bem, incluindo seu ruído e idiossincrasias, o que prejudica sua capacidade de generalizar para dados novos e não vistos. A ideia central por detrás do dropout, introduzida por Geoffrey Hinton e os seus colegas num artigo inovador de 2014, consiste em "abandonar" aleatoriamente - ou remover temporariamente - os neurónios e as suas ligações durante cada etapa de treino. Isto evita que os neurónios se tornem demasiado dependentes uns dos outros, forçando a rede a aprender representações mais robustas e redundantes.

Como funciona uma camada de eliminação

Durante o processo de treino do modelo, uma camada de abandono coloca aleatoriamente a zero as activações de uma fração de neurónios da camada anterior. A "taxa de abandono" é um hiperparâmetro que define a probabilidade de um neurónio ser abandonado. Por exemplo, uma taxa de desistência de 0,5 significa que cada neurónio tem 50% de hipóteses de ser ignorado durante uma determinada iteração de treino. Esse processo pode ser considerado como o treinamento de um grande número de redes reduzidas que compartilham pesos.

Ao alterar constantemente a arquitetura da rede, o abandono evita co-adaptações complexas, em que a saída de um neurónio é altamente dependente da presença de alguns outros neurónios específicos. Em vez disso, cada neurónio é encorajado a ser um detetor de caraterísticas mais útil e independente. Durante a fase de teste ou de inferência, a camada de abandono é desligada e todos os neurónios são utilizados. Para compensar o facto de estarem activos mais neurónios do que durante o treino, as saídas da camada são reduzidas pela taxa de desistência. Isto assegura que a saída esperada de cada neurónio permanece consistente entre o treino e o teste. Estruturas como o PyTorch e o TensorFlow tratam este escalonamento automaticamente nas suas implementações da camada de desistência.

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 computacional: Na visão computacional (CV), o abandono ajuda modelos como o Ultralytics YOLO a ter um melhor desempenho em tarefas como a deteção de objectos, a classificação de imagens e a 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 ou estruturas de frases específicas dos dados de treino. Isto leva a uma melhor compreensão e geração de texto novo, melhorando o desempenho de chatbots e ferramentas de resumo de texto.

Conceitos e distinções relacionados

O abandono é 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 para reduzir a complexidade do modelo. Leia mais sobre a regularização L1/L2. Por outro lado, o dropout modifica diretamente a estrutura da rede durante o treinamento, em vez de apenas penalizar os pesos.
  • Normalização de lote: A Normalização de Lote (BN) normaliza as activações dentro de uma camada, o que pode estabilizar o treino e, por vezes, proporcionar um ligeiro efeito de regularização, reduzindo potencialmente a necessidade de um dropout forte. Enquanto a BN aborda a 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. Isto 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 para obter resultados ainda mais robustos.

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 avançada até à PNL.

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