Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Dropout Layer

Uma camada de dropout zera aleatoriamente uma fração das ativações durante o treinamento, impedindo que a rede dependa de uma única unidade e reduzindo o sobreajuste.

Uma camada de dropout é um componente de regularização de uma rede neural que define aleatoriamente como zero uma fração p das entradas em cada passo de treino e, durante a inferência, transmite todos os valores sem alterações. Como qualquer unidade pode desaparecer em qualquer passo, a rede não pode depender de alguns neurónios específicos nem de coadaptações frágeis entre eles; assim, aprende características redundantes que generalizam melhor e sofre menos sobreajuste aos dados de treino. Geoffrey Hinton e os colegas introduziram a técnica em 2012, e Srivastava, Hinton et al. descreveram-na em detalhe em 2014. É uma camada integrada no PyTorch, no TensorFlow e na maioria das outras estruturas de aprendizagem profunda, usada em arquiteturas que vão desde cabeças de classificação totalmente ligadas até transformers.

Como funciona o dropout#

Durante o treino, a camada amostra uma nova máscara aleatória em cada passagem para a frente, mantendo cada elemento com probabilidade 1 − p e colocando-o a zero com probabilidade p. Assim, cada passo treina uma sub-rede diferente e reduzida, e a rede completa usada na fase de teste aproxima a média de um número exponencialmente grande de sub-redes que partilham os mesmos pesos, razão pela qual o dropout é muitas vezes descrito como treino de ensemble de baixo custo. Para manter a ativação esperada igual em ambas as fases, as frameworks modernas usam dropout invertido: durante o treino, os valores mantidos são multiplicados por 1 / (1 − p), pelo que a camada não faz nada durante a inferência. No PyTorch, nn.Dropout segue o modo de treino ou avaliação do módulo:

import torch
from torch import nn

torch.manual_seed(0)
dropout = nn.Dropout(p=0.5)
x = torch.ones(10)

# Modo de treino: cerca de metade dos valores são definidos como zero, e os restantes são multiplicados por 1 / (1 - p) = 2
dropout.train()
print("Train:", dropout(x))

# Modo de avaliação: a camada transmite todos os valores sem alterações
dropout.eval()
print("Eval: ", dropout(x))

No modo de treino, seis dos dez valores são descartados e os quatro restantes passam a 2.0, mantendo o valor esperado em 1.0; no modo de avaliação, os dez valores permanecem em 1.0.

Variantes comuns de dropout#

  • Dropout espacial: O nn.Dropout2d do PyTorch define como zero canais inteiros dos mapas de características, o que é adequado para redes convolucionais porque os píxeis vizinhos num canal estão fortemente correlacionados e descartar píxeis individuais quase não as regulariza.
  • Profundidade estocástica (DropPath): Em vez de ativações individuais, ramos residuais inteiros são ignorados aleatoriamente para cada amostra, uma técnica comum no treino de Vision Transformers e CNNs modernas.
  • Dropout de Monte Carlo: O dropout permanece ativo durante a inferência, e o modelo executa várias passagens para a frente com a mesma entrada. A dispersão das previsões fornece uma estimativa de baixo custo da incerteza do modelo para sistemas críticos em termos de segurança, um método que Gal e Ghahramani interpretaram como inferência bayesiana aproximada.
  • DropConnect: Os pesos individuais são definidos aleatoriamente como zero em vez das ativações, atribuindo uma máscara própria a cada ligação.

Dropout na prática#

As taxas de dropout são ajustadas como qualquer outro hiperparâmetro. Srivastava et al. descobriram que descartar unidades ocultas com probabilidade 0.5 funcionava bem numa grande variedade de redes e tarefas, enquanto as unidades de entrada têm melhores resultados com uma taxa de retenção mais próxima de 1; o Transformer original usava p = 0.1. Uma taxa demasiado elevada atrasa a convergência e pode causar subajuste, e colocar dropout imediatamente antes da normalização por lotes pode prejudicar a precisão devido a uma mudança de variância entre treino e teste. Muitas redes neurais convolucionais dependem sobretudo da normalização por lotes, do aumento de dados e da regularização de pesos, reservando o dropout para a cabeça do classificador. Os modelos de classificação do Ultralytics YOLO26 seguem esse padrão: incluem uma única camada de dropout, entre as características agrupadas de 1,280 canais e o classificador linear final, cuja taxa é definida pelo argumento de treino dropout (0.0 por predefinição).

from ultralytics import YOLO

# Carrega um modelo de classificação YOLO26, cuja cabeça contém a camada de dropout
model = YOLO("yolo26n-cls.pt")

# Treina com 10% de dropout na cabeça de classificação, usando um subconjunto pequeno de MNIST
results = model.train(data="mnist160", epochs=10, imgsz=64, dropout=0.1)

Aplicações no mundo real#

  • Análise de imagens médicas: Os exames rotulados são dispendiosos, por isso os classificadores de diagnóstico são muitas vezes ajustados a partir de uma base pré-treinada, usando alguns milhares de imagens. O dropout na cabeça do classificador limita o quanto esta memoriza casos individuais de um conjunto tão pequeno.
  • Processamento de linguagem natural: Os codificadores Transformer, como o BERT, aplicam dropout com probabilidade 0.1 em todas as camadas, incluindo nos pesos de atenção, durante o pré-treino e o ajuste fino.
  • Normalização por lotes: A normalização por lotes normaliza as entradas de cada camada para estabilizar o treino e acrescenta apenas um ligeiro ruído proveniente das estatísticas do lote, sem remover unidades.
  • Suavização de rótulos: A suavização de rótulos regulariza os alvos de treino, suavizando os rótulos one-hot, e mantém todas as ativações intactas.
  • Poda: A poda remove permanentemente os pesos de pouca importância para reduzir o tamanho do modelo, enquanto os valores definidos como zero pelo dropout só o são durante um passo de treino e não alteram o número de parâmetros.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina