Loss Function
Hàm loss đo độ chênh lệch giữa dự đoán của model và ground truth, còn quá trình huấn luyện tìm cách tối thiểu hóa giá trị này. Tìm hiểu các hàm loss phổ biến và thời điểm sử dụng từng hàm.
Hàm loss đo mức chênh lệch giữa dự đoán của model và nhãn ground truth trong dữ liệu huấn luyện, rồi cô đọng sai số đó thành một con số duy nhất; giá trị càng thấp càng tốt. Huấn luyện mạng nơ-ron nghĩa là điều chỉnh trọng số model để giảm con số này nhiều nhất có thể. “Hàm cost” và “hàm mục tiêu” là những từ đồng nghĩa phổ biến, dù một số tài liệu dùng “loss” để chỉ lỗi trên một mẫu đơn lẻ và “cost” để chỉ giá trị trung bình trên một batch hoặc dataset.
Loss chi phối quá trình huấn luyện như thế nào#
Quá trình huấn luyện lặp lại cùng một chu kỳ với mỗi batch dữ liệu. Model tạo dự đoán, hàm loss chấm điểm dự đoán dựa trên nhãn, còn lan truyền ngược tính gradient của loss theo từng trọng số. Sau đó, optimizer như stochastic gradient descent (SGD) hoặc optimizer Adam dịch chuyển từng trọng số một bước nhỏ ngược chiều gradient; kích thước bước được xác định bởi learning rate. Vì quy trình này dựa vào gradient nên hàm loss phải khả vi ở hầu hết mọi nơi. Vẽ loss huấn luyện và loss validation sau mỗi epoch là cách tiêu chuẩn để theo dõi một lượt chạy: loss validation tăng trong khi loss huấn luyện tiếp tục giảm là dấu hiệu kinh điển của overfitting.
Các hàm loss phổ biến#
Hàm loss phù hợp phụ thuộc vào đầu ra dự đoán của model; các framework như PyTorch cung cấp hầu hết lựa chọn tiêu chuẩn:
- Sai số bình phương trung bình (MSE): Trung bình bình phương chênh lệch giữa giá trị dự đoán và giá trị thực, dùng cho bài toán hồi quy. Phép bình phương khiến các lỗi lớn chi phối, nên các giá trị ngoại lệ có ảnh hưởng mạnh.
- Sai số tuyệt đối trung bình (L1) và Huber loss: Các hàm loss hồi quy tăng tuyến tính khi lỗi lớn, nhờ đó ít nhạy cảm hơn với giá trị ngoại lệ. Huber loss có dạng bậc hai với lỗi nhỏ và tuyến tính khi lỗi vượt ngưỡng.
- Cross-entropy: Hàm loss tiêu chuẩn cho phân loại ảnh, tính trên xác suất softmax của các lớp loại trừ lẫn nhau.
- Binary cross-entropy (BCE): Chấm điểm từng lớp như một dự đoán độc lập dạng có/không thông qua hàm sigmoid, phù hợp với bài toán đa nhãn và điểm lớp của detector.
- Focal loss: Biến thể của cross-entropy giảm trọng số các mẫu dễ, nhờ vậy các mẫu hiếm và khó chi phối quá trình học khi mất cân bằng lớp nghiêm trọng.
- Loss dựa trên IoU: Các hàm loss hồi quy BBox xây dựng trên Intersection over Union (IoU), với những biến thể như DIoU và CIoU bổ sung hình phạt cho khoảng cách giữa tâm và, trong CIoU, cả tỷ lệ khung hình.
- Dice loss: Hàm loss đo độ chồng lấp dành cho phân đoạn ảnh, vẫn cung cấp thông tin hữu ích khi tiền cảnh chỉ chiếm một phần nhỏ số pixel.
- Loss tương phản: Các hàm loss dành cho học tương phản, kéo các cặp tương ứng lại gần nhau trong không gian embedding và đẩy các cặp không tương ứng ra xa.
Cross-entropy dùng log âm của xác suất được gán cho lớp đúng, vì vậy một dự đoán sai nhưng có độ tin cậy cao phải chịu chi phí lớn hơn nhiều so với dự đoán thiếu chắc chắn; còn dự đoán đúng với độ tin cậy cao gần như không tốn chi phí. Đoạn mã CrossEntropyLoss của PyTorch minh họa tác động này qua hai dự đoán có cùng độ tin cậy:
import torch
from torch import nn
# CrossEntropyLoss applies softmax to raw scores (logits) internally
loss_fn = nn.CrossEntropyLoss()
# Logits for 3 classes; the true class is index 0
target = torch.tensor([0])
confident_right = torch.tensor([[4.0, 0.5, -1.0]])
confident_wrong = torch.tensor([[-1.0, 4.0, 0.5]])
print(f"Confident and right: {loss_fn(confident_right, target).item():.4f}")
print(f"Confident and wrong: {loss_fn(confident_wrong, target).item():.4f}")Dự đoán đúng với độ tin cậy cao có loss 0.0363, trong khi cùng mức độ tin cậy nhưng gán cho lớp sai có loss 5.0363, cao hơn khoảng 139 lần.
Loss kết hợp trong phát hiện đối tượng#
Các model phát hiện đối tượng dự đoán vị trí và danh tính của từng đối tượng, vì vậy loss huấn luyện của model là tổng có trọng số của một số thành phần. YOLO26 kết hợp loss BBox CIoU, loss phân loại BCE và loss L1 trên khoảng cách BBox đã chuẩn hóa; thành phần L1 này thay thế Distribution Focal Loss trong các model YOLO trước đó. Các loss được gán trọng số bằng các đối số huấn luyện box, cls và dfl (giá trị mặc định lần lượt là 7.5, 0.5 và 1.5). Progressive Loss cũng chuyển trọng số từ head one-to-many sang head one-to-one dùng cho suy luận không cần NMS khi quá trình huấn luyện tiến triển.
Hàm loss và các thuật ngữ liên quan#
- Chỉ số đánh giá: Các chỉ số như accuracy và mean average precision (mAP) báo cáo hiệu năng theo những tiêu chí có ý nghĩa với con người, nhưng phần lớn thay đổi theo bước rời rạc nên không thể cung cấp gradient. Quá trình huấn luyện tối thiểu hóa một hàm loss khả vi để làm đại diện cho các chỉ số này.
- Regularization: Các thành phần phạt được thêm vào loss để hạn chế độ phức tạp. Regularization L2 cộng thêm một bội số của tổng bình phương các trọng số, thúc đẩy optimizer hướng đến trọng số nhỏ hơn để tổng quát hóa tốt hơn.
- Hàm reward: Mục tiêu trong học tăng cường, trong đó agent tối đa hóa reward tích lũy thay vì tối thiểu hóa loss; vì vậy reward đóng vai trò như loss âm.










