Training Data
Dữ liệu huấn luyện là tập hợp ví dụ mà model dùng để học các trọng số. Tìm hiểu dữ liệu này khác dữ liệu validation và dữ liệu kiểm tra như thế nào, cũng như vì sao chất lượng nhãn quan trọng ngang với số lượng dữ liệu.
Dữ liệu huấn luyện là tập hợp ví dụ mà model machine learning học từ đó. Trong quá trình huấn luyện, optimizer liên tục điều chỉnh trọng số của model để giảm lỗi trên các ví dụ này, vì vậy chính các ví dụ đó xác định model có thể học được gì. Trong học có giám sát, mỗi ví dụ ghép đầu vào với đáp án đúng, chẳng hạn ảnh đường phố đi kèm bounding box và tên lớp cho từng ô tô và người đi bộ. Học tự giám sát và học không giám sát huấn luyện trên đầu vào thô không có nhãn. Tập huấn luyện là một từ đồng nghĩa; trong hầu hết dự án, đây là phần lớn nhất trong lượng dữ liệu hiện có, thường chiếm 70 đến 80 phần trăm.
Cách model sử dụng dữ liệu huấn luyện#
Model xử lý dữ liệu huấn luyện theo batch. Với mỗi batch, model đưa ra dự đoán; hàm loss đo mức độ chênh lệch giữa dự đoán và nhãn; lan truyền ngược tính mức đóng góp của từng trọng số vào lỗi; sau đó optimizer điều chỉnh trọng số để giảm lỗi. Một lượt đi qua toàn bộ tập huấn luyện là một epoch, và quá trình huấn luyện thường chạy từ hàng chục đến hàng trăm epoch.
Vì model được tối ưu hóa trên chính những ví dụ này, điểm số trên chúng sẽ đánh giá quá cao hiệu quả của model trên dữ liệu mới. Hai tập giữ lại giúp khắc phục điều đó. Dữ liệu validation được đánh giá trong quá trình phát triển để chọn hyperparameter và checkpoint; dữ liệu test được đánh giá một lần ở cuối để ước tính hiệu năng thực tế. Chênh lệch lớn giữa điểm trên tập huấn luyện và validation là dấu hiệu overfitting, khi model ghi nhớ ví dụ huấn luyện thay vì học các mẫu có khả năng tổng quát hóa. Điểm thấp trên cả hai tập là dấu hiệu underfitting. Các tập không được dùng chung ảnh: những khung hình gần trùng lặp từ cùng một video hoặc ảnh quét của cùng một bệnh nhân xuất hiện ở cả hai phía sẽ gây rò rỉ dữ liệu, làm tăng giả tạo mọi điểm số trên tập giữ lại.
Số lượng, chất lượng và độ bao phủ#
Ba đặc tính của tập huấn luyện quyết định khả năng tổng quát hóa của model:
- Số lượng: Có nhiều ví dụ hơn sẽ hữu ích, nhưng lợi ích giảm dần. Bắt đầu từ model pretrained thông qua transfer learning giúp giảm số lượng ví dụ cần gán nhãn cho tác vụ mới.
- Chất lượng: Mỗi nhãn sai, thiếu hoặc được vẽ không nhất quán đều dạy model điều sai. Hướng dẫn gán nhãn dữ liệu nhất quán cũng quan trọng như số lượng nhãn.
- Độ bao phủ: Các ví dụ phải bao quát những điều kiện mà model sẽ gặp, chẳng hạn ánh sáng, thời tiết, góc camera, nền và lớp hiếm. Detector chỉ được huấn luyện trên ảnh ban ngày sẽ thất bại vào ban đêm; nếu khoảng trống dữ liệu theo ranh giới nhân khẩu học, chẳng hạn thiếu tông màu da trong bộ dữ liệu khuôn mặt, đó sẽ trở thành thiên lệch bộ dữ liệu.
Script scikit-learn bên dưới huấn luyện cùng một bộ phân loại trên dataset chữ số viết tay có sẵn, dùng các tập huấn luyện khác nhau và đánh giá từng model trên cùng một tập test cố định:
import numpy as np
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
# 1,797 labeled 8x8 digit images; hold out 30% to score every model
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0, stratify=y)
# Reassign 30% of the training labels at random to simulate careless labeling
rng = np.random.default_rng(0)
y_noisy = y_train.copy()
flip = rng.random(len(y_train)) < 0.3
y_noisy[flip] = rng.integers(0, 10, flip.sum())
# Train the same model on three different training sets
for name, n, labels in [("50 clean", 50, y_train), ("1,257 clean", 1257, y_train), ("1,257 noisy", 1257, y_noisy)]:
model = LogisticRegression(max_iter=5000).fit(X_train[:n], labels[:n])
print(f"{name}: test accuracy {model.score(X_test, y_test):.3f}")Mở rộng tập huấn luyện sạch từ 50 lên 1.257 ảnh giúp độ chính xác trên tập test tăng từ 0.863 lên 0.961. Lượt chạy có nhiễu, trong đó 315 trên 1.257 nhãn (25%) bị sai, đạt 0.861, không tốt hơn model được huấn luyện trên 50 ảnh sạch.
Xây dựng tập huấn luyện#
Các nhóm tổng hợp dữ liệu huấn luyện từ dataset công khai, camera và log nội bộ, và ngày càng sử dụng nhiều dữ liệu tổng hợp. Các benchmark công khai là điểm khởi đầu tốt: dataset COCO cung cấp 118.287 ảnh huấn luyện được gán nhãn cho phát hiện, phân đoạn và tạo chú thích. Sau đó, các bộ sưu tập thô được làm sạch dữ liệu để loại bỏ bản trùng lặp, tệp hỏng và ảnh không phù hợp mục tiêu, rồi tiến hành gán nhãn và rà soát. Tăng cường dữ liệu làm phong phú dữ liệu trong quá trình huấn luyện bằng cách lật, cắt, dịch màu và ghép mosaic. Tuy nhiên, phương pháp này chỉ có thể kết hợp lại dữ liệu đã thu thập, nên vẫn cần chụp ảnh nếu thiếu một điều kiện nào đó.
Ultralytics YOLO đọc dữ liệu huấn luyện từ đường dẫn train trong tệp YAML của dataset và ghép mỗi ảnh với tệp nhãn .txt, chứa một dòng cho mỗi đối tượng: chỉ số lớp theo sau là tâm, chiều rộng và chiều cao của box, được chuẩn hóa theo kích thước ảnh. Mọi split đều sử dụng cùng định dạng dataset YOLO, vì vậy để cân bằng lại các split cần di chuyển ảnh cùng tệp nhãn giữa các thư mục.
from ultralytics import YOLO
# Tải model YOLO26 nano đã pretrained
model = YOLO("yolo26n.pt")
# coco8.yaml liệt kê ảnh huấn luyện (train: images/train) và ảnh validation (val: images/val)
results = model.train(data="coco8.yaml", epochs=5)Model YOLO26 được fine-tune trên bốn ảnh huấn luyện của COCO8, một mẫu rất nhỏ dùng để kiểm tra xem pipeline huấn luyện có chạy xuyên suốt từ đầu đến cuối hay không.
Dữ liệu huấn luyện và các thuật ngữ liên quan#
- Dữ liệu validation: Một tập giữ lại dùng để định hướng các quyết định trong quá trình phát triển, chẳng hạn thời điểm dừng huấn luyện. Model không bao giờ cập nhật trọng số dựa trên tập này.
- Dữ liệu test: Một tập giữ lại chỉ được đánh giá một lần ở cuối, vì vậy kết quả là ước tính không thiên lệch về hiệu năng trên dữ liệu mới.
- Ground truth: Đáp án đúng được gắn với các ví dụ. Trong học có giám sát, dữ liệu huấn luyện bao gồm ground truth, nhưng mọi split đều cần ground truth để đánh giá.
- Tập dữ liệu chuẩn: Một tập dữ liệu nhỏ được chuyên gia kiểm tra, dùng làm tham chiếu đáng tin cậy để đánh giá và kiểm tra chất lượng của người gán nhãn.
- Tập dữ liệu benchmark: Một tập dữ liệu công khai có các phân tách cố định, dùng để so sánh model. Phân tách huấn luyện thường đồng thời là dữ liệu tiền huấn luyện, còn phân tách giữ lại trở thành bảng xếp hạng, như phân tách COCO val2017 gồm 5.000 ảnh, nơi nhiều bài báo về phát hiện đối tượng báo cáo mAP.










