Batch Normalization Là Gì? Kỹ Thuật Chuẩn Hóa Trong DL

Chatgpt Image Sep 13, 2026, 11_15_23 Am

Series: Machine Learning Fundamentals – Bài 43

Ở bài trước, chúng ta đã tìm hiểu các kỹ thuật Regularization và Dropout nhằm chống hiện tượng Overfitting. Tuy nhiên, khi xây dựng các mạng nơ-ron có hàng chục hay hàng trăm tầng ẩn, nhà phát triển thường đối mặt với một thách thức lớn khác: tốc độ huấn luyện cực kỳ chậm và mô hình khó hội tụ do sự thay đổi liên tục của phân phối dữ liệu đầu vào giữa các tầng.

Để giải quyết rào cản này, Sergey Ioffe và Christian Szegedy (Google) đã đề xuất kỹ thuật Batch Normalization (Chuẩn hóa theo lô) vào năm 2015, tạo ra một trong những bước tiến quan trọng của Deep Learning hiện đại.


Batch Normalization là gì?

Batch Normalization (BN) là một kỹ thuật được áp dụng giữa các tầng của mạng nơ-ron nhằm chuẩn hóa các giá trị kích hoạt (Activations) của từng Mini-batch đầu vào.

Input Batch → [Dense / Conv Layer] → [Batch Normalization] → [Activation (ReLU)] → Output

Batch Normalization giúp ổn định quá trình huấn luyện bằng cách chuẩn hóa các giá trị kích hoạt, từ đó giúp mô hình học hiệu quả và hội tụ ổn định hơn.

Xem thêm tại

PyTorch BatchNorm Documentation
.


Hiện tượng Internal Covariate Shift là gì?

Trong quá trình huấn luyện bằng Gradient Descent, trọng số của các tầng phía trước (Earlier Layers) liên tục thay đổi. Điều này khiến phân phối của dữ liệu đầu vào ở các tầng phía sau (Later Layers) cũng thay đổi theo.

Các tầng phía sau phải liên tục thích nghi với những thay đổi này, có thể dẫn đến:

  • Tốc độ học phải được lựa chọn cẩn thận để tránh quá trình huấn luyện không ổn định.
  • Quá trình hội tụ có thể chậm và nhạy cảm với việc khởi tạo trọng số.

Batch Normalization giúp ổn định các giá trị kích hoạt giữa các tầng, từ đó hỗ trợ quá trình tối ưu hóa mạng nơ-ron.


Cơ chế hoạt động và công thức toán học của Batch Normalization

Giả sử ta có một Mini-batch
𝔹 = {x1, x2, …, xm}
gồm m mẫu dữ liệu. Quá trình tính toán Batch Normalization diễn ra theo 4 bước:

1. Tính giá trị trung bình (Batch Mean)

$$
μ𝔹 =
\frac{1}{m}
\sum_{i=1}^{m} x_i
$$

2. Tính phương sai (Batch Variance)

$$
σ𝔹2 =
\frac{1}{m}
\sum_{i=1}^{m}
(x_i – μ𝔹)2
$$

3. Chuẩn hóa (Normalize)

$$
\hat{x}_i =
\frac{x_i – μ𝔹}
{\sqrt{σ𝔹2 + ε}}
$$


Trong đó ε là một số thực rất nhỏ, ví dụ 10-5, được sử dụng để tránh lỗi chia cho 0.

4. Thao tác biến đổi (Scale and Shift)

$$
BN(x_i) = γ\hat{x}_i + β
$$

Tại sao cần bước Scale and Shift (γ, β)?

Nếu chỉ chuẩn hóa dữ liệu về Mean = 0 và Standard Deviation = 1, quá trình chuẩn hóa có thể làm thay đổi đáng kể biểu diễn đặc trưng mà mạng đã học.

Việc bổ sung hai tham số có thể học được là γ (Scale)β (Shift) cho phép mạng nơ-ron tự điều chỉnh lại phân phối của dữ liệu để phù hợp với quá trình học.


Batch Normalization trong giai đoạn Training và Inference/Testing

Giai đoạn Cơ chế tính Mean (μ) và Variance (σ2)
Training (Huấn luyện) Tính trực tiếp Batch Mean và Batch Variance từ Mini-batch hiện tại.
Đồng thời cập nhật Running Mean và Running Variance trong quá trình huấn luyện.
Inference / Testing (Dự đoán) Sử dụng Running Mean và Running Variance đã được tích lũy trong quá trình Training để chuẩn hóa dữ liệu.

Các biến thể chuẩn hóa khác trong Deep Learning

Tùy theo loại kiến trúc mạng và dữ liệu, nhiều kỹ thuật Normalization khác đã được phát triển:

  • Batch Normalization (BN):
    Chuẩn hóa dựa trên các mẫu trong Mini-batch. Phổ biến trong CNN và mạng MLP truyền thống.
  • Layer Normalization (LN):
    Chuẩn hóa theo các Feature của từng mẫu riêng lẻ. Được sử dụng phổ biến trong RNN và Transformer.
  • Instance Normalization (IN):
    Chuẩn hóa từng mẫu và từng kênh hình ảnh. Phổ biến trong các bài toán chuyển đổi phong cách ảnh (Style Transfer).
  • Group Normalization (GN):
    Chia các kênh đặc trưng thành nhiều nhóm nhỏ để chuẩn hóa, đặc biệt hữu ích khi Batch Size nhỏ.

Ưu điểm và nhược điểm của Batch Normalization

Ưu điểm

  • Tăng tốc độ huấn luyện:
    Giúp quá trình tối ưu hóa ổn định hơn và thường cho phép sử dụng Learning Rate lớn hơn.
  • Giảm sự nhạy cảm với khởi tạo Weight:
    Mô hình có thể hội tụ dễ dàng hơn với nhiều cách khởi tạo trọng số khác nhau.
  • Tác dụng Regularization nhẹ:
    Việc sử dụng thống kê của Mini-batch tạo ra một mức độ nhiễu nhất định, có thể giúp giảm Overfitting.

Nhược điểm

  • Phụ thuộc vào kích thước Batch Size. Nếu Batch Size quá nhỏ, các giá trị Mean và Variance có thể không ổn định.
  • Không phải lúc nào cũng phù hợp với các mô hình xử lý chuỗi hoặc các kiến trúc có độ dài dữ liệu thay đổi.

Tóm tắt

  1. Batch Normalization chuẩn hóa các giá trị kích hoạt thông qua các bước: Mean, Variance, Normalize và Scale & Shift.
  2. Batch Normalization giúp quá trình huấn luyện mạng nơ-ron sâu ổn định và hiệu quả hơn.
  3. Có hai tham số có thể học được là γ (Scale)β (Shift).
  4. Khi Training, BN sử dụng thống kê từ Mini-batch; khi Inference, BN sử dụng Running Mean và Running Variance.

Tài liệu tham khảo

  1. Ioffe & Szegedy (2015):

    Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    – Bài báo gốc về Batch Normalization.
  2. PyTorch Documentation:

    PyTorch BatchNorm2d
  3. TensorFlow Documentation:

    Keras BatchNormalization Layer

Khóa học tại MCNA Technology School

Nếu bạn muốn thực hành Machine Learning, Python và xây dựng các mô hình trên dữ liệu thực tế, có thể tham khảo:

Tác giả: Bùi Đình Tuyển – Data Analyst tại MCNA Technology School

📞 Hotline: 0939.866.825 (Mr. Khang)

🌐 Website:

MCNA Technology School

📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông

📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu

Chỉ mục