Khám phá cách Batch Normalization giúp ổn định các mô hình học sâu. Tìm hiểu cách thực hiện. Ultralytics YOLO26 sử dụng BatchNorm để tăng tốc quá trình huấn luyện và cải thiện độ chính xác của AI.
Chuẩn hóa theo lô (Batch Normalization), thường được gọi tắt là BatchNorm, là một kỹ thuật được sử dụng trong học sâu (DL) để ổn định và tăng tốc quá trình huấn luyện mạng nơ-ron nhân tạo . Được giới thiệu để giải quyết vấn đề dịch chuyển hiệp biến nội bộ—trong đó phân bố đầu vào của một lớp thay đổi liên tục khi các tham số của các lớp trước đó được cập nhật—BatchNorm chuẩn hóa đầu vào của một lớp cho mỗi mini-batch. Bằng cách chuẩn hóa đầu vào của lớp để có giá trị trung bình bằng 0 và độ lệch chuẩn bằng 1, sau đó điều chỉnh tỷ lệ và dịch chuyển chúng với các tham số có thể học được, phương pháp này cho phép mạng sử dụng tốc độ học cao hơn và giảm độ nhạy cảm với việc khởi tạo.
Trong một mạng nơ-ron tích chập (CNN) tiêu chuẩn, dữ liệu được truyền qua các lớp, mỗi lớp thực hiện một phép biến đổi. Nếu không có chuẩn hóa, thang đo của các giá trị đầu ra có thể thay đổi rất nhiều, khiến thuật toán tối ưu hóa khó tìm ra các trọng số tốt nhất. Chuẩn hóa theo lô (Batch Normalization) thường được áp dụng ngay trước hàm kích hoạt (như ReLU hoặc SiLU).
Quá trình này bao gồm hai bước chính trong quá trình đào tạo:
Cơ chế này hoạt động như một hình thức điều chỉnh, làm giảm nhẹ nhu cầu sử dụng các kỹ thuật khác như lớp Dropout bằng cách thêm một lượng nhiễu nhỏ vào các tín hiệu kích hoạt trong quá trình huấn luyện.
Việc tích hợp Batch Normalization vào các kiến trúc như ResNet hoặc các bộ phát hiện đối tượng hiện đại mang lại một số lợi thế rõ rệt:
Chuẩn hóa theo lô (Batch Normalization) là một thành phần thiết yếu trong hầu hết các hệ thống thị giác máy tính (CV) hiện đại.
Việc phân biệt giữa chuẩn hóa theo lô (Batch Normalization) và chuẩn hóa dữ liệu thông thường là rất hữu ích.
Các framework học sâu như PyTorch bao gồm các triển khai tối ưu hóa của Batch Normalization. Trong Ultralytics YOLO Trong các kiến trúc này, các lớp này được tự động tích hợp vào các khối tích chập.
Sau đây là Python Đoạn mã này minh họa cách kiểm tra một mô hình để xem nó nằm ở đâu. BatchNorm2d Các lớp nằm trong cấu trúc kiến trúc.
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Print the model structure to view layers
# You will see 'BatchNorm2d' listed after 'Conv2d' layers
print(model.model)
Hiểu được cách các lớp này tương tác với nhau sẽ giúp các nhà phát triển khi sử dụng Nền tảng Ultralytics để tinh chỉnh mô hình trên các tập dữ liệu tùy chỉnh, đảm bảo quá trình huấn luyện vẫn ổn định ngay cả với dữ liệu hạn chế.