Giới Thiệu Batch Normalization Trong Mạng Nơ-ron Nhân Tạo

1. Đặt Vấn Đề: Tại Sao Cần Chuẩn Hóa (Normalization)?

Trong quá trình huấn luyện mạng nơ-ron nhân tạo (neural network), các đặc trưng (features) đầu vào thường có những thang đo rất khác nhau. Ví dụ, một đặc trưng như tuổi có thể dao động từ 0 đến 100, trong khi đặc trưng như thu nhập hàng năm có thể dao động từ 20,000 đến 1,000,000. Sự chênh lệch này dẫn đến việc các đặc trưng có giá trị lớn hơn sẽ tạo ra gradient lớn hơn, gây ảnh hưởng không cân bằng đến quá trình cập nhật trọng số. Điều này không chỉ làm chậm quá trình hội tụ mà còn có thể khiến mạng học sai lệch, bỏ qua các đặc trưng quan trọng khác.

Hệ quả là quá trình huấn luyện trở nên kém hiệu quả và độ chính xác của mô hình có thể bị giảm.

2. Batch Normalization Là Gì?

Batch Normalization (BN) là một kỹ thuật nhằm chuẩn hóa đầu ra (activation) của từng lớp trong mạng nơ-ron. Kỹ thuật này được đề xuất như một cách để giảm hiện tượng “internal covariate shift” – tức là sự thay đổi của phân phối đầu vào tới các lớp trong quá trình huấn luyện.

Thay vì chuẩn hóa toàn bộ dữ liệu như trong preprocessing, BN thực hiện chuẩn hóa trên từng batch dữ liệu. Cụ thể, với mỗi batch, ta tính toán trung bình (mean)phương sai (variance) của các activation, sau đó chuẩn hóa chúng về phân phối chuẩn (zero mean và unit variance). Kết quả sau chuẩn hóa sẽ tiếp tục được điều chỉnh bởi hai tham số học được là gamma (γ)beta (β) để linh hoạt trong việc học phân phối tối ưu cho tầng tiếp theo.

Công thức chuẩn hóa có thể được tóm gọn như sau:

Trong đó:

  • lần lượt là trung bình và phương sai của batch.
  • là hằng số nhỏ để tránh chia cho 0.
  • , là các tham số học được trong quá trình huấn luyện.

3. Vị Trí Trong Mạng và Thực Thi

Trong thực tế, BN thường được đặt sau tầng tính toán (linear/convolution)trước hàm kích hoạt (activation function), mặc dù paper gốc đề xuất thứ tự ngược lại. Thứ tự này có thể thay đổi tùy vào thiết kế mạng cụ thể và kết quả thực nghiệm.

Một điểm khác biệt quan trọng giữa Batch Normalization và các kỹ thuật khác như Layer Normalization là BN chuẩn hóa trên từng đặc trưng trong batch, trong khi LayerNorm chuẩn hóa trên toàn bộ đặc trưng của từng mẫu riêng lẻ.

4. Batch Normalization Trong Pha Suy Diễn (Inference)

Trong giai đoạn suy diễn (inference), mô hình chỉ nhận vào một mẫu duy nhất, nên việc sử dụng giá trị trung bình và phương sai tính từ batch là không khả thi. Do đó, trong quá trình huấn luyện, BN sẽ duy trì trung bình động (moving average) của mean và variance để sử dụng trong pha inference.

Cách làm này đảm bảo sự ổn định và nhất quán của mô hình khi đưa vào các dữ liệu mới sau khi đã huấn luyện xong.

5. Một Số Ghi Chú và Ứng Dụng Trong CNN

Trong mạng nơ-ron tích chập (CNN), Batch Normalization được áp dụng riêng biệt cho từng kênh (channel), tức là mỗi channel sẽ được xem như một tập các đặc trưng độc lập, và việc chuẩn hóa được thực hiện riêng rẽ trên từng channel.

Kỹ thuật này đã trở thành một thành phần không thể thiếu trong các mạng học sâu hiện đại như ResNet, Inception, EfficientNet,… do khả năng cải thiện đáng kể tốc độ hội tụ và độ chính xác của mô hình.

6. Kết Luận

Batch Normalization là một trong những kỹ thuật chuẩn hóa mạnh mẽ và hiệu quả nhất trong huấn luyện mạng nơ-ron. Bằng việc giảm sự thay đổi trong phân phối đầu vào của các lớp, BN không chỉ giúp quá trình huấn luyện ổn định hơn mà còn nâng cao hiệu suất suy diễn của mô hình. Việc hiểu và sử dụng đúng Batch Normalization là một kỹ năng thiết yếu cho bất kỳ ai đang nghiên cứu hoặc làm việc trong lĩnh vực học sâu (deep learning).

Tài liệu tham khảo: