Normalization
Chuẩn hóa điều chỉnh tỷ lệ đặc trưng hoặc activation về cùng một thang đo để không giá trị nào chi phối do phạm vi quá lớn. Nội dung bao gồm min-max, z-score, L2 và các lớp chuẩn hóa.
Chuẩn hóa là quá trình thay đổi tỷ lệ các giá trị số về cùng một thang đo để không đặc trưng nào chi phối model chỉ vì đơn vị đo. Trong tiền xử lý dữ liệu, việc này thường có nghĩa là biến đổi từng đặc trưng đầu vào về một khoảng cố định như [0, 1], hoặc về trung bình bằng không và phương sai bằng một trước khi huấn luyện. Bên trong mạng nơ-ron, các layer chuẩn hóa như batch normalization áp dụng cùng ý tưởng cho activation trung gian. Nếu không chuẩn hóa, đặc trưng có giá trị hàng nghìn như thu nhập sẽ lấn át đặc trưng chỉ có giá trị một chữ số như quy mô hộ gia đình trong mọi phép tính khoảng cách và bước gradient.
Các kỹ thuật chuẩn hóa phổ biến#
- Min-max scaling: Ánh xạ từng đặc trưng về [0, 1] theo công thức (x − min) / (max − min). Một giá trị cực đoan sẽ nén mọi giá trị còn lại vào một dải hẹp, vì vậy phương pháp này phù hợp với đặc trưng có giới hạn cố định đã biết, chẳng hạn giá trị pixel 8-bit được chia cho 255.
- Chuẩn hóa z-score: Trừ đi giá trị trung bình của đặc trưng rồi chia cho độ lệch chuẩn, tạo ra trung bình bằng 0 và độ lệch chuẩn bằng 1. Đây là lựa chọn mặc định thường dùng cho đặc trưng không có giới hạn cố định.
- Robust scaling: Trừ trung vị rồi chia cho khoảng tứ phân vị, nhờ đó một vài ngoại lệ hầu như không làm thay đổi cách scale các giá trị còn lại.
- Log scaling: Áp dụng logarit, thường là log(1 + x), để nén các đặc trưng có đuôi dài như giá cả, dân số hoặc lượt xem trước khi áp dụng các phương pháp scale khác.
- Chuẩn hóa vector đơn vị (L2): Chia vector của mỗi mẫu cho độ dài của vector để mọi vector có norm bằng 1. Khi áp dụng cho embedding, phương pháp này biến độ tương đồng cosine thành tích vô hướng thông thường. Normalizer của scikit-learn thực hiện thao tác này trên từng mẫu, điều có thể khiến người dùng ngạc nhiên nếu họ nghĩ công cụ sẽ scale từng đặc trưng như
MinMaxScaler.
Kỹ thuật phù hợp phụ thuộc vào đối tượng được scale và phân phối các giá trị của đối tượng đó:
Vì sao chuẩn hóa quan trọng#
Các phương pháp dựa trên khoảng cách như k-nearest neighbors (k-NN), phân cụm k-means và support vector machine dùng kernel RBF so sánh khoảng cách Euclid thô, vì vậy đặc trưng có phạm vi rộng nhất quyết định những điểm nào được xem là gần nhau. Model dựa trên gradient huấn luyện nhanh hơn với đầu vào đã chuẩn hóa, vì các đặc trưng có thang đo rất khác nhau làm kéo giãn bề mặt loss thành các thung lũng hẹp, buộc gradient descent phải thực hiện các bước nhỏ. Các tổ hợp cây như random forest lần lượt phân chia theo ngưỡng của từng đặc trưng và tạo cùng cách phân chia với mọi phép biến đổi tỷ lệ đơn điệu. Scale dataset Wine trước khi chạy k-NN cho thấy mức độ ảnh hưởng:
from sklearn.datasets import load_wine
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import MinMaxScaler, StandardScaler
# 13 chemical features on very different scales, from hue (about 0.5-1.7) to proline (about 280-1,680)
X, y = load_wine(return_X_y=True)
# k-NN compares raw distances, so unscaled proline dominates every distance
for name, scaler in [("none", "passthrough"), ("min-max", MinMaxScaler()), ("z-score", StandardScaler())]:
# The pipeline fits the scaler on each training fold only, so no test statistics leak in
model = make_pipeline(scaler, KNeighborsClassifier())
accuracy = cross_val_score(model, X, y, cv=5).mean()
print(f"scaling {name:8s} 5-fold accuracy: {accuracy:.3f}")Không scale, k-NN đạt độ chính xác 0.691 vì proline, có phạm vi khoảng 1.400 đơn vị, lấn át 12 đặc trưng còn lại trong mọi phép tính khoảng cách. Min-max scaling nâng độ chính xác lên 0.950, còn chuẩn hóa z-score đạt 0.949. Việc fit scaler bên trong pipeline rất quan trọng: tính giá trị nhỏ nhất, lớn nhất, trung bình hoặc độ lệch chuẩn trên toàn bộ dataset trước khi chia tập sẽ làm rò rỉ thông tin từ tập kiểm thử vào quá trình huấn luyện, tạo thành một dạng rò rỉ dữ liệu.
Chuẩn hóa trong thị giác máy tính#
Ảnh được chuẩn hóa theo từng kênh. Chia giá trị pixel 8-bit cho 255 sẽ ánh xạ chúng vào [0, 1], sau đó nhiều backbone phân loại trừ đi giá trị trung bình và chia cho độ lệch chuẩn của từng kênh: ResNet-50 pretrained trên ImageNet của torchvision cần giá trị trung bình (0.485, 0.456, 0.406) và độ lệch chuẩn (0.229, 0.224, 0.225). Đưa vào model pretrained các đầu vào được chuẩn hóa khác với dữ liệu huấn luyện sẽ làm thay đổi mọi activation và giảm độ chính xác. Tiền xử lý của Ultralytics YOLO chia giá trị pixel cho 255 và không dịch chuyển theo giá trị trung bình hay độ lệch chuẩn, cả trong huấn luyện lẫn dự đoán, vì vậy YOLO26 luôn nhận đầu vào trong [0, 1].
Ảnh y tế cần các quy tắc riêng theo từng phương thức. CT lưu cường độ theo đơn vị Hounsfield, một thang đo vật lý trong đó không khí có giá trị −1000 và nước có giá trị 0, vì vậy có thể dùng cùng một bộ thống kê cho mọi ảnh chụp: framework phân đoạn nnU-Net được sử dụng rộng rãi cắt cường độ CT theo phân vị thứ 0,5 và 99,5 của các giá trị vùng tiền cảnh trên tất cả ca huấn luyện, rồi chuẩn hóa z-score bằng giá trị trung bình và độ lệch chuẩn của toàn dataset. Cường độ MRI không có thang đo vật lý cố định và thay đổi giữa các máy quét, vì vậy nnU-Net chuẩn hóa z-score riêng từng ảnh MRI.
Chuẩn hóa và các thuật ngữ liên quan#
- Standardization: Tên gọi thường dùng cho z-score scaling. Nhiều nguồn gọi cả min-max scaling và z-score scaling là “normalization”, trong khi các nguồn khác chỉ dùng “normalization” để chỉ min-max scaling.
- Tăng cường dữ liệu: Thay đổi nội dung hoặc hình học của ảnh, chẳng hạn lật, crop và dịch chuyển màu, để tăng tính đa dạng; còn chuẩn hóa chỉ thay đổi thang đo của các giá trị.
- Layer chuẩn hóa: Batch normalization chuẩn hóa từng kênh bằng các thống kê của mini-batch hiện tại. Layer normalization chuẩn hóa từng mẫu theo các đặc trưng của mẫu đó, không phụ thuộc batch size, và được dùng xuyên suốt các transformer. Sau bước chuẩn hóa, các layer này áp dụng hệ số scale và độ lệch được học.
- RMSNorm: Layer normalization đơn giản hóa, bỏ qua bước trừ giá trị trung bình và chỉ chia cho căn bậc hai của trung bình bình phương. Đây là layer chuẩn hóa trong Llama của Meta và nhiều large language model khác.










