Normalization
Khám phá cách normalization cải thiện quá trình training và độ chính xác của model. Tìm hiểu về Min-Max scaling, chuẩn hóa Z-score và vai trò của chúng trong các project Ultralytics YOLO26.
Chuẩn hóa là một kỹ thuật nền tảng trong tiền xử lý dữ liệu, bao gồm việc tái chia tỷ lệ các thuộc tính số về một khoảng tiêu chuẩn. Trong bối cảnh học máy (ML), các dataset thường chứa các đặc trưng có tỷ lệ khác nhau—chẳng hạn như khoảng tuổi (0–100) so với mức thu nhập (0–100.000). Nếu không được xử lý, những chênh lệch này có thể khiến thuật toán tối ưu hóa bị thiên lệch về các giá trị lớn hơn, dẫn đến hội tụ chậm hơn và hiệu năng không tối ưu. Bằng cách chuẩn hóa dữ liệu, các kỹ sư đảm bảo rằng mọi đặc trưng đều đóng góp tương xứng vào kết quả cuối cùng, cho phép mạng neural học hiệu quả hơn.
Các kỹ thuật chuẩn hóa phổ biến#
Có một số phương pháp tiêu chuẩn để biến đổi dữ liệu, mỗi phương pháp phù hợp với các phân phối và yêu cầu thuật toán khác nhau.
- Chia tỷ lệ Min-Max: Đây là dạng chuẩn hóa trực quan nhất. Phương pháp này tái chia tỷ lệ dữ liệu về một khoảng cố định, thường là [0, 1]. Phép biến đổi được thực hiện bằng cách trừ đi giá trị nhỏ nhất rồi chia cho khoảng biến thiên (giá trị lớn nhất trừ giá trị nhỏ nhất). Phương pháp này được sử dụng rộng rãi trong xử lý ảnh, nơi cường độ pixel được biết là nằm trong khoảng từ 0 đến 255.
- Chuẩn hóa Z-Score: Mặc dù thường được sử dụng thay thế cho chuẩn hóa, standardization cụ thể biến đổi dữ liệu để có giá trị trung bình bằng 0 và độ lệch chuẩn bằng 1. Phương pháp này đặc biệt hữu ích khi dữ liệu tuân theo phân phối Gaussian và rất cần thiết đối với các thuật toán như Máy vector hỗ trợ (SVM), vốn giả định dữ liệu được phân phối chuẩn.
- Chia tỷ lệ logarit: Đối với dữ liệu chứa các giá trị ngoại lệ cực đoan hoặc tuân theo quy luật lũy thừa, việc áp dụng phép biến đổi logarit có thể nén khoảng giá trị. Điều này giúp engine suy luận diễn giải phân phối hiệu quả hơn mà không bị lệch do các đỉnh giá trị quá lớn.
Các ứng dụng trong thực tế#
Chuẩn hóa là một bước tiêu chuẩn trong các pipeline của các hệ thống AI hiệu năng cao thuộc nhiều ngành khác nhau.
-
Thị giác máy tính (CV): Trong các tác vụ như phát hiện đối tượng và phân loại ảnh, ảnh kỹ thuật số được cấu thành từ các giá trị pixel trong khoảng từ 0 đến 255. Việc đưa trực tiếp các số nguyên lớn này vào network có thể làm chậm gradient descent. Một bước tiền xử lý tiêu chuẩn là chia các giá trị pixel cho 255.0 để chuẩn hóa chúng về khoảng [0, 1]. Thực hành này đảm bảo đầu vào nhất quán cho các model nâng cao như YOLO26, cải thiện độ ổn định khi training trên Ultralytics Platform.
-
Phân tích ảnh y khoa: Các ảnh chụp y khoa, chẳng hạn như những ảnh được sử dụng trong AI trong chăm sóc sức khỏe, thường có nguồn gốc từ các máy khác nhau với thang cường độ khác nhau. Chuẩn hóa đảm bảo rằng cường độ pixel từ ảnh chụp MRI hoặc CT có thể so sánh được giữa các bệnh nhân và thiết bị khác nhau. Tính nhất quán này rất quan trọng đối với phát hiện khối u chính xác, cho phép model tập trung vào các bất thường về cấu trúc thay vì những biến thiên về độ sáng.
Phân biệt các khái niệm liên quan#
Điều quan trọng là phải phân biệt chuẩn hóa với các thuật ngữ tương tự về tiền xử lý và kiến trúc trong deep learning.
- so với Batch Normalization: Chuẩn hóa dữ liệu là một bước tiền xử lý được áp dụng cho dataset đầu vào thô trước khi dataset đi vào network. Ngược lại, Batch Normalization hoạt động bên trong giữa các layer trong toàn bộ network trong quá trình training model. Nó chuẩn hóa đầu ra của layer activation trước đó để ổn định quá trình học.
- so với Tăng cường ảnh: Trong khi chuẩn hóa thay đổi tỷ lệ của các giá trị pixel, tăng cường thay đổi nội dung hoặc hình học của ảnh (ví dụ: lật, xoay hoặc thay đổi màu sắc) để tăng tính đa dạng của dataset. Các công cụ như Albumentations được sử dụng cho việc tăng cường, trong khi chuẩn hóa là một phép toán chia tỷ lệ mang tính toán học.
Ví dụ triển khai#
Trong thị giác máy tính, chuẩn hóa thường là bước đầu tiên trong pipeline. Ví dụ Python sau đây minh họa cách chuẩn hóa thủ công dữ liệu ảnh bằng thư viện NumPy, một quy trình diễn ra tự động bên trong bộ tải dữ liệu của Ultralytics YOLO26 trong quá trình training.
import numpy as np
# Simulate a 2x2 pixel image with values ranging from 0 to 255
raw_image = np.array([[0, 255], [127, 64]], dtype=np.float32)
# Apply Min-Max normalization to scale values to [0, 1]
# This standardizes the input for the neural network
normalized_image = raw_image / 255.0
print(f"Original Range: {raw_image.min()} - {raw_image.max()}")
print(f"Normalized Range: {normalized_image.min()} - {normalized_image.max()}")








