Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Dropout Layer

Một lớp dropout ngẫu nhiên đặt một phần activation về 0 trong quá trình huấn luyện để mạng không phụ thuộc vào bất kỳ unit đơn lẻ nào, qua đó giảm overfitting.

Layer dropout là một thành phần regularization của mạng nơ-ron, ngẫu nhiên đặt một tỷ lệ p đầu vào thành 0 ở mỗi bước huấn luyện và giữ nguyên mọi giá trị trong lúc inference. Vì bất kỳ unit nào cũng có thể biến mất ở bất kỳ bước nào, mạng không thể phụ thuộc vào một vài neuron cụ thể hoặc những mối đồng thích nghi mong manh giữa chúng; do đó, mạng học được các đặc trưng dư thừa có khả năng khái quát hóa tốt hơn và ít overfit dữ liệu huấn luyện hơn. Geoffrey Hinton và các cộng sự giới thiệu kỹ thuật này vào năm 2012, còn Srivastava, Hinton và cộng sự mô tả đầy đủ kỹ thuật vào năm 2014. Đây là layer tích hợp sẵn trong PyTorch, TensorFlow và hầu hết framework deep learning khác, được dùng trong các kiến trúc từ head phân loại kết nối đầy đủ đến transformer.

Cách Dropout hoạt động#

Trong quá trình huấn luyện, layer lấy một mask ngẫu nhiên mới cho mỗi lượt lan truyền tiến, giữ lại từng phần tử với xác suất 1 − p và đặt phần tử đó bằng 0 với xác suất p. Vì vậy, mỗi bước huấn luyện một mạng con đã được thu gọn khác nhau; mạng đầy đủ được dùng khi kiểm thử xấp xỉ giá trị trung bình của vô số mạng con dùng chung trọng số, đó là lý do dropout thường được mô tả là huấn luyện ensemble với chi phí thấp. Để giữ giá trị activation kỳ vọng như nhau trong cả hai giai đoạn, các framework hiện đại dùng inverted dropout: những giá trị còn lại được nhân với 1 / (1 − p) trong quá trình huấn luyện, nhờ đó layer không làm gì khi inference. Trong PyTorch, nn.Dropout tuân theo chế độ huấn luyện hoặc đánh giá của module:

import torch
from torch import nn

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

# Chế độ huấn luyện: khoảng một nửa số giá trị được đặt bằng 0 và các giá trị còn lại được nhân với 1 / (1 - p) = 2
dropout.train()
print("Train:", dropout(x))

# Chế độ đánh giá: layer giữ nguyên mọi giá trị
dropout.eval()
print("Eval: ", dropout(x))

Ở chế độ huấn luyện, sáu trong số mười giá trị bị loại bỏ và bốn giá trị còn lại trở thành 2.0, giữ giá trị kỳ vọng ở mức 1.0; ở chế độ đánh giá, cả mười giá trị vẫn là 1.0.

Các biến thể Dropout phổ biến#

  • Spatial Dropout: nn.Dropout2d của PyTorch đặt toàn bộ kênh feature map thành 0, phù hợp với mạng tích chập vì các pixel lân cận trong cùng một kênh có tương quan mạnh và việc bỏ từng pixel riêng lẻ hầu như không regularize được chúng.
  • Stochastic Depth (DropPath): Thay vì các activation riêng lẻ, toàn bộ nhánh residual được bỏ qua ngẫu nhiên cho từng mẫu; đây là thành phần tiêu chuẩn khi huấn luyện Vision Transformer và CNN hiện đại.
  • Monte Carlo Dropout: Dropout vẫn hoạt động khi inference và model chạy nhiều lượt lan truyền tiến trên cùng một đầu vào. Mức độ phân tán của các dự đoán cung cấp ước tính độ bất định của model với chi phí thấp cho các hệ thống quan trọng về an toàn; Gal và Ghahramani diễn giải phương pháp này là suy luận Bayes xấp xỉ.
  • DropConnect: Các trọng số riêng lẻ được đặt ngẫu nhiên thành 0 thay vì các activation, mỗi kết nối có mask riêng.

Dropout trong thực tế#

Tỷ lệ dropout được tinh chỉnh như mọi siêu tham số khác. Srivastava và cộng sự nhận thấy rằng xác suất loại bỏ các unit ẩn là 0.5 hoạt động tốt trên nhiều mạng và tác vụ, trong khi các unit đầu vào hoạt động tốt nhất khi tỷ lệ giữ lại gần 1; Transformer ban đầu sử dụng p = 0.1. Tỷ lệ quá cao làm chậm hội tụ và có thể gây underfitting; đặt dropout ngay trước batch normalization có thể làm giảm độ chính xác do dịch chuyển phương sai giữa huấn luyện và kiểm thử. Nhiều mạng nơ-ron tích chập chủ yếu dựa vào batch normalization, tăng cường dữ liệu và weight decay, chỉ dùng dropout cho head phân loại. Model phân loại Ultralytics YOLO26 áp dụng cách này: chúng có một layer dropout nằm giữa các đặc trưng 1,280 kênh đã pooling và bộ phân loại tuyến tính cuối cùng; tỷ lệ dropout được thiết lập bằng đối số huấn luyện dropout (mặc định là 0.0).

from ultralytics import YOLO

# Tải model phân loại YOLO26 có layer dropout trong head
model = YOLO("yolo26n-cls.pt")

# Huấn luyện với dropout 10% trong head phân loại trên một tập con MNIST nhỏ
results = model.train(data="mnist160", epochs=10, imgsz=64, dropout=0.1)

Ứng dụng thực tế#

  • Phân tích ảnh y tế: Việc gán nhãn ảnh quét tốn kém, vì vậy các bộ phân loại chẩn đoán thường được fine-tune từ backbone đã pretrained trên vài nghìn ảnh. Dropout trong head phân loại hạn chế mức độ head ghi nhớ các trường hợp riêng lẻ từ tập dữ liệu nhỏ như vậy.
  • Xử lý ngôn ngữ tự nhiên: Các encoder Transformer như BERT áp dụng dropout với xác suất 0.1 ở tất cả layer, bao gồm trọng số attention, trong quá trình pre-training và fine-tuning.
  • Batch Normalization: Batch normalization chuẩn hóa đầu vào của mỗi layer để ổn định quá trình huấn luyện và chỉ thêm một lượng nhiễu nhỏ từ thống kê batch, không loại bỏ bất kỳ unit nào.
  • Làm mượt nhãn: Làm mượt nhãn regularize thông qua các target huấn luyện bằng cách làm mềm nhãn one-hot, đồng thời giữ nguyên mọi activation.
  • Pruning: Pruning loại bỏ vĩnh viễn các trọng số ít quan trọng để thu nhỏ model, còn dropout chỉ đặt các giá trị thành 0 trong một bước huấn luyện và giữ nguyên số lượng tham số.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning