Kỹ thuật làm mịn nhãn tránh quá tự tin (Label Smoothing Cross-Entropy)
Trong bài báo kinh điển *Rethinking the Inception Architecture* (Szegedy et al., 2016), các tác giả chỉ ra rằng việc huấn luyện mạng với nhãn One-Hot tuyệt đối (yk = 1) buộc mô hì…
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: fused-softmax-cross-entropy-loss.
Nội dung đề bài
Mô tả bài toán
Trong bài báo kinh điển *Rethinking the Inception Architecture* (Szegedy et al., 2016), các tác giả chỉ ra rằng việc huấn luyện mạng với nhãn One-Hot tuyệt đối (yk = 1) buộc mô hình phải đẩy logit cực đại zk → +∞, gây hiện tượng quá tự tin và suy giảm khả năng tổng quát hóa. Kỹ thuật Label Smoothing pha trộn nhãn cứng với phân phối đều: y'k = (1 - ε) yk + εC trong đó ε ∈ (0, 1) là hệ số làm mịn (thường chọn 0.1), và C là số lượng lớp phân loại. Khi đó, hàm Cross-Entropy phân rã thành 2 thành phần: L = (1 - ε) Lhard + ε Luniform với Lhard = -log py và Luniform = -1C ∑k=1C log pk.
Hãy viết hàm label_smoothed_cross_entropy(logits: np.ndarray, targets: np.ndarray, epsilon: float = 0.1) -> float:
logits: ma trận (B, C) kiểu float64.targets: mảng 1D (B,) chứa nhãn nguyên 0 ≤ yb < C.epsilon: hệ số làm mịn 0.0 ≤ ε < 1.0.- Trả về giá trị hàm mất mát trung bình trên batch dạng float.
Input
- Hàm
label_smoothed_cross_entropy(logits,targets,epsilon): Các tham số đầu vào chứa dữ liệu Tensor/mảng NumPy hoặc giá trị siêu tham số tương ứng.
Output
- Hàm
label_smoothed_cross_entropy: Trả về kết quả kiểufloattheo đúng đặc tả kỹ thuật và kích thước quy định.
Ràng buộc
- Thời gian chạy tối đa: 6000ms.
- Giới hạn bộ nhớ: 512MB.
- Dữ liệu đầu vào hợp lệ theo đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
logits = np.array([[2.0, 1.0], [0.5, 3.0]])
targets = np.array([0, 1])
loss_smooth = label_smoothed_cross_entropy(logits, targets, epsilon=0.0)
p0 = np.exp(2.0) / (np.exp(2.0) + np.exp(1.0))
p1 = np.exp(3.0) / (np.exp(0.5) + np.exp(3.0))Output
0.924142Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Ví dụ 2
Input
logits = np.array([[10.0, 0.0]])
targets = np.array([0])
hard_loss = label_smoothed_cross_entropy(logits, targets, epsilon=0.0)
smooth_loss = label_smoothed_cross_entropy(logits, targets, epsilon=0.2)Output
1.000045Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
