Cross-Entropy Loss
Hàm mất mát cross-entropy so sánh xác suất lớp được dự đoán với nhãn mục tiêu, định hướng các model phân loại và phân đoạn trong quá trình huấn luyện.
Hàm mất mát cross-entropy đo mức độ khớp giữa xác suất lớp do model dự đoán và nhãn mục tiêu. Hàm gán mức phạt nhỏ khi lớp đúng có xác suất cao và mức phạt lớn khi xác suất đó thấp. Là một hàm mất mát trong học có giám sát, hàm cung cấp mục tiêu cần tối thiểu hóa trong quá trình huấn luyện.
A Mathematical Theory of Communication năm 1948 của Claude Shannon đã thiết lập nền tảng entropy cho khái niệm này. D. F. Kerridge giới thiệu thước đo cross-entropy với tên gọi "inaccuracy" trong bài báo năm 1961 Inaccuracy and Inference. Trong phân loại, log loss là từ đồng nghĩa; hồi quy logistic và các bộ phân loại neural đều sử dụng hàm này.
Cách hàm mất mát Cross-Entropy hoạt động#
Với một mẫu có một lớp đúng, cross-entropy không trọng số là loss = -ln(p_correct). Xác suất 0.9 cho lớp đúng cho mức mất mát khoảng 0.105; xác suất 0.1 cho mức mất mát khoảng 2.303. Logarit tự nhiên biểu thị kết quả theo đơn vị gọi là nat. Khi huấn luyện, các mức phạt này thường được lấy trung bình trên một batch.
Tổng quát hơn, cross-entropy nhân xác suất của từng lớp mục tiêu với logarit âm của xác suất dự đoán tương ứng, rồi cộng tổng trên các lớp. Mục tiêu one-hot gán giá trị 1 cho lớp đúng và 0 cho các lớp còn lại, nên chỉ còn số hạng của lớp đúng. Với mục tiêu one-hot không trọng số, tối thiểu hóa cross-entropy tương đương với tối đa hóa khả năng xảy ra của các nhãn quan sát được. Lan truyền ngược tính gradient, còn gradient descent cập nhật các tham số của model.
Cross-Entropy nhị phân, phân loại và phân loại thưa#
Dạng phù hợp tùy thuộc vào nhãn:
- Cross-entropy nhị phân với sigmoid: Với mục tiêu 0 hoặc 1
yvà xác suất dự đoánpcho lớp 1, mức mất mát là-[y * ln(p) + (1 - y) * ln(1 - p)]. Phân loại đa nhãn áp dụng hàm này độc lập cho các nhãn có thể đồng thời xuất hiện. - Cross-entropy phân loại với softmax: Hàm này tính điểm cho các lớp loại trừ lẫn nhau, có tổng xác suất bằng 1. Softmax chuyển điểm số thô của model, gọi là logits, thành phân phối đó.
- Cross-entropy phân loại thưa: Hàm này sử dụng chỉ số lớp dạng số nguyên thay vì vector one-hot. Hàm tính cùng một mức mất mát; "thưa" mô tả cách mã hóa mục tiêu.
Mục tiêu mềm phân bổ xác suất trên nhiều lớp. Chúng xuất hiện trong làm mượt nhãn và chưng cất tri thức, trong đó model học trò học từ phân phối xác suất của model giáo viên.
Tính Cross-Entropy trong PyTorch#
PyTorch nhận logits thô trong CrossEntropyLoss. Với mục tiêu là chỉ số lớp, phép tính tương đương với log-softmax rồi đến negative log-likelihood. Áp dụng softmax trước sẽ khiến hàm xem xác suất như logits, làm thay đổi mức mất mát và gradient. Mục tiêu số nguyên sử dụng torch.long; mục tiêu xác suất sử dụng giá trị dấu phẩy động và có hình dạng khớp với logits.
import torch
from torch import nn
# Both predictions select class 0; the second is more confident.
logits = torch.tensor([[2.0, 0.0, 0.0], [4.0, 0.0, 0.0]])
targets = torch.tensor([0, 0], dtype=torch.long)
loss_fn = nn.CrossEntropyLoss(reduction="none")
losses = loss_fn(logits, targets)
print(f"Lower confidence loss: {losses[0].item():.4f}")
print(f"Higher confidence loss: {losses[1].item():.4f}")Mức mất mát giảm từ 0.2395 xuống 0.0360 trong khi cả hai dự đoán vẫn chính xác. Độ chính xác ghi nhận quyết định phân lớp; cross-entropy cũng phản ánh cách phân bổ xác suất. Với logits nhị phân hoặc đa nhãn, BCEWithLogitsLoss kết hợp sigmoid và cross-entropy nhị phân.
Ứng dụng trong computer vision#
Phân loại ảnh đơn nhãn sử dụng cross-entropy để học một lớp cho mỗi ảnh. Quá trình huấn luyện phân loại Ultralytics YOLO26 sử dụng cross-entropy trung bình trên logits của các lớp để cập nhật bộ phân loại theo danh mục được gán nhãn.
Trong phân đoạn ảnh y tế, U-Net nguyên bản được huấn luyện trên ảnh hiển vi sinh học bằng softmax theo từng pixel và cross-entropy có trọng số. Bản đồ trọng số của mô hình tăng mức phạt tại ranh giới giữa các tế bào tiếp xúc, giúp tách các tế bào lân cận. Phương pháp này áp dụng phân loại cho từng pixel trong phân đoạn ngữ nghĩa.
Diễn giải giá trị mất mát#
Cross-entropy rời rạc với phân phối mục tiêu hợp lệ và trọng số không âm luôn không âm. Với mục tiêu cứng không trọng số, giá trị đạt 0 khi lớp đúng có xác suất bằng 1 và tăng không giới hạn khi xác suất đó tiến gần 0. Giá trị âm cho thấy lỗi đầu vào hoặc lỗi triển khai, chẳng hạn như các phần tử mục tiêu hoặc trọng số âm.
Entropy đo mức độ bất định trong một phân phối; cross-entropy so sánh mục tiêu với dự đoán. Cross-entropy bằng entropy mục tiêu cộng với độ phân kỳ Kullback–Leibler, tức mức phạt bổ sung do sai khác. Vì vậy, mục tiêu mềm có giá trị tối thiểu dương khi entropy của chúng dương.
Trọng số lớp làm tăng mức đóng góp của các lớp được chọn. Focal loss giảm mức đóng góp của các mẫu dễ để xử lý tình trạng mất cân bằng tiền cảnh–hậu cảnh trong phát hiện đối tượng. Với dự đoán đồng đều, log loss không trọng số bằng ln(number_of_classes): khoảng 0.693 với hai lớp và 2.303 với mười lớp.










