Learn how to use a [dropout layer](https://www.ultralytics.com/glossary/dropout-layer) to prevent overfitting. Discover how to train [YOLO26](https://docs.ultralytics.com/models/yolo26/) for more robust AI models.
Uma camada de dropout é uma técnica de regularização fundamental utilizada em redes neurais (NN) para combater o problema generalizado do sobreajuste. Quando um modelo é treinado em um conjunto finito de exemplos, muitas vezes ele aprende a memorizar o ruído e detalhes específicos dos dados de treino, em vez de discernir os padrões gerais subjacentes . Essa memorização leva a uma alta precisão durante o desenvolvimento, mas a um desempenho ruim em entradas novas e inéditas. O dropout resolve isso desativando aleatoriamente — ou «desistindo» — uma fração dos neurónios em uma camada durante cada etapa do processo de treinamento. Essa estratégia simples, mas eficaz, introduzida em um artigo de pesquisa seminal de Srivastava et al., avançou significativamente a estabilidade e o desempenho das arquiteturas de deep learning (DL).
The mechanism behind a dropout layer is intuitively similar to removing players from a sports team during practice to force the remaining players to work harder and not rely on a single star athlete. During the model training phase, the layer generates a probabilistic mask of zeros and ones. If the dropout rate is set to 0.5, approximately 50% of the neurons are temporarily ignored during that specific forward and backward pass. This process forces the remaining active neurons to learn robust features independently, preventing the network from relying too heavily on any single neuron—a phenomenon known in machine learning (ML) as feature co-adaptation.
Durante a inferência em tempo real, ou a fase de teste, a camada de dropout é normalmente desativada. Todos os neurónios permanecem ativos para utilizar toda a capacidade preditiva do modelo treinado. Para garantir que os valores de ativação total permaneçam consistentes com a fase de treinamento, os pesos são frequentemente dimensionados automaticamente pela estrutura. Bibliotecas modernas como PyTorch lidam com essas operações matemáticas de dimensionamento de forma integrada, permitindo que os desenvolvedores se concentrem na arquitetura em vez de na aritmética.
Para os utilizadores do ultralytics pacote, aplicando dropout a um modelo de última geração como
YOLO26 is as simple as adjusting a training argument. This
is particularly useful when working with smaller datasets where the risk of overfitting is higher. By introducing
randomness, you can encourage the model to generalize better across diverse environments.
from ultralytics import YOLO
# Load the latest YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Train the model with a custom dropout rate of 0.1 (10%)
# This encourages the model to learn more generalized features
results = model.train(data="coco8.yaml", epochs=50, dropout=0.1)
O dropout é indispensável em vários domínios da inteligência artificial (IA), onde os modelos utilizam um grande número de parâmetros em relação aos dados disponíveis.
While dropout is highly effective, it is often used alongside other techniques. It is distinct from data augmentation, which modifies the input images (e.g., flipping or rotating) rather than the network architecture itself. Similarly, it differs from batch normalization, which normalizes layer inputs to stabilize learning but does not explicitly deactivate neurons.
For complex projects, managing these hyperparameters can be challenging. The Ultralytics Platform simplifies this by providing tools to visualize training metrics, helping users determine if their dropout rates are effectively reducing validation loss. Whether you are building a custom image classification system or a sophisticated segmentation pipeline, understanding dropout is key to building resilient AI systems.