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.
드롭아웃 레이어는 신경망(NN) 에서 과적합이라는 만연한 문제를 해결하기 위해 사용되는 기본적인 정규화 기법이다. 유한한 예제 집합으로 모델을 훈련할 때, 모델은 근본적인 일반적 패턴을 식별하기보다 훈련 데이터의 잡음과 세부 사항을 암기하는 경향이 있습니다. 이러한 암기는 개발 단계에서는 높은 정확도를 보이지만, 새로운 미확인 입력에 대해서는 성능이 저하됩니다. 드롭아웃은 훈련 과정의 각 단계에서 레이어 내 뉴런의 일부를 무작위로 비활성화하거나 "드롭아웃(제외)"함으로써 이 문제를 해결합니다. Srivastava 등의 선구적인 연구 논문에서 소개된 이 단순하면서도 효과적인 전략은 딥러닝(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.
실시간 추론 또는 테스트 단계에서는 드롭아웃 레이어가 일반적으로 비활성화됩니다. 훈련된 모델의 전체 예측 능력을 활용하기 위해 모든 뉴런이 활성화된 상태로 유지됩니다. 총 활성화 값이 훈련 단계와 일관성을 유지하도록 하기 위해 프레임워크에서 가중치를 자동으로 스케일링하는 경우가 많습니다. PyTorch 와 같은 현대적인 라이브러리는 이러한 수학적 스케일링 작업을 원활하게 처리하여 개발자가 산술 연산보다는 아키텍처 설계에 집중할 수 있도록 합니다.
다음 사용자의 경우 ultralytics 패키지, 최첨단 모델에 드롭아웃 적용하기
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)
드롭아웃은 사용 가능한 데이터에 비해 모델이 다량의 매개변수를 활용하는 인공지능(AI) 의 다양한 영역에서 필수적인 기법이다.
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.