Loss Functions
Hàm mất mát
Bạn bắn cung. Mũi tên cách tâm 50cm. Huấn luyện viên nên phạt thế nào để bạn tiến bộ nhanh nhất?
Hình minh họa
0.4900
Sai lệch |y - ŷ|
0.70
Loss function là "la bàn" của mạng nơ-ron — nó nói cho gradient descentbiết: "bạn đang sai bao xa và theo hướng nào". Không có loss, mạng không biết cần cải thiện gì! Giống GPS trên Grab: không có thì tài xế đi mù.
Bạn đã thấy MSE phạt nặng sai lệch lớn, và Cross-Entropy phạt nặng khi "tự tin sai". Bây giờ thử tình huống thực tế:
Mô hình dự đoán giá nhà. Dữ liệu có vài căn biệt thự giá 100 tỷ (outlier). Dùng MSE sẽ xảy ra gì?
Giải thích
Loss function đo sai lệch giữa dự đoán và giá trị thực . Chọn loss phù hợp là bước quan trọng nhất khi thiết kế mô hình.
| Loss | Bài toán | Đặc điểm | Ví dụ thực tế |
|---|---|---|---|
| MSE | Hồi quy | Phạt nặng sai lệch lớn | Dự đoán giá nhà, nhiệt độ |
| MAE | Hồi quy (outlier) | Robust, phạt đều | Dự đoán thời gian giao hàng Shopee |
| Binary CE | Phân loại 2 lớp | Phạt cực nặng "tự tin sai" | Spam detection, phát hiện gian lận |
| Categorical CE | Phân loại N lớp | Softmax + NLL | Nhận diện 1000 loại ảnh (ImageNet) |
import torch.nn as nn
# Hồi quy: MSE
loss_reg = nn.MSELoss()
# loss = MSE(pred_price, true_price)
# Phân loại nhị phân: Binary CE
loss_bin = nn.BCEWithLogitsLoss() # tự áp sigmoid
# loss = BCE(model(email), is_spam)
# Phân loại đa lớp: Cross-Entropy
loss_cls = nn.CrossEntropyLoss() # tự áp softmax
# loss = CE(model(image), class_label)
# Hồi quy robust: Huber (kết hợp MSE + MAE)
loss_hub = nn.HuberLoss(delta=1.0)
# loss nhỏ → MSE, loss lớn → MAE (robust với outlier)Mô hình phân loại ảnh cho output softmax = [0.01, 0.01, 0.98] (3 lớp). Nhãn thực là lớp 3 (index 2). Cross-Entropy loss xấp xỉ bằng?
- Loss function là 'la bàn' — đo sai lệch giữa dự đoán và thực tế, hướng dẫn gradient descent.
- Hồi quy: dùng MSE (phạt nặng sai lệch lớn) hoặc MAE (robust với outlier).
- Phân loại nhị phân: Binary Cross-Entropy. Đa lớp: Categorical Cross-Entropy + Softmax.
- Cross-Entropy phạt cực nặng khi mô hình 'tự tin sai' → gradient lớn → học nhanh.
- Chọn loss sai = mô hình tối ưu sai mục tiêu — bước quan trọng nhất khi thiết kế.
Kiểm tra hiểu biết
Mô hình dự đoán xác suất spam = 0.99 nhưng email thực tế KHÔNG phải spam (y=0). Cross-Entropy loss sẽ như thế nào?