python-039Đọc toàn bộ đề miễn phí

Tính Hàm Mất Mát Categorical Cross-Entropy Kèm Label Smoothing

Trong huấn luyện mô hình phân loại (như nhận diện ảnh hay phân loại sắc thái văn bản), hàm mất mát Categorical Cross-Entropy là tiêu chuẩn vàng. Để tránh mô hình quá tự tin vào nhã…

PythonTrung bình25 phút

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ủ đề

numpycross entropyloss functionslabel smoothingai foundations

Kiến thức tiên quyết: one hot encoding, log loss, clip eps.

Nội dung đề bài

Mục tiêu kiến thức

  • Vector hóa hoàn toàn phép tính hàm mất mát phân loại đa lớp Categorical Cross-Entropy.
  • Tự động chuyển đổi nhãn số nguyên 1D (Sparse labels) sang ma trận xác suất One-Hot 2D bằng indexing.
  • Kỹ thuật làm mịn nhãn (Label Smoothing) nhằm giảm thiểu hiện tượng Overconfidence của mô hình phân loại.

Mô tả bài toán

Trong huấn luyện mô hình phân loại (như nhận diện ảnh hay phân loại sắc thái văn bản), hàm mất mát Categorical Cross-Entropy là tiêu chuẩn vàng. Để tránh mô hình quá tự tin vào nhãn cứng 0 và 1, kỹ thuật Label Smoothing làm mềm phân phối mục tiêu: ysmooth = (1 - α) y + αC với α là hệ số làm mịn và C là số lớp phân loại.

Hãy viết hàm: categorical_cross_entropy(y_true: np.ndarray, y_pred: np.ndarray, label_smoothing: float = 0.0, eps: float = 1e-15) -> float

Quy tắc:

  • Chuẩn hóa nhãn y_true:
  • y_pred là ma trận 2 chiều shape (N, C) chứa xác suất dự đoán (mỗi hàng có tổng xấp xỉ 1).
  • Nếu y_true là mảng 1 chiều shape (N,) gồm các số nguyên: tự động chuyển thành ma trận One-Hot shape (N, C).
  • Nếu y_true là ma trận 2 chiều shape (N, C): giữ nguyên.
  • Áp dụng Label Smoothing:
  • Nếu label_smoothing > 0: áp dụng công thức làm mịn trên ma trận One-Hot.
  • Kẹp xác suất dự đoán:
  • Kẹp giá trị của y_pred: yclipped = clip(ypred, ε, 1.0 - ε).
  • Tính mất mát trung bình:
  • Tính tổng tổn thất dọc theo trục lớp (C), sau đó lấy trung bình cộng trên toàn batch (N).
  • Trả về số thực float.

Input

  • Các tham số truyền vào hàm/lớp categorical_cross_entropy hoặc dữ liệu đầu vào theo định dạng mô tả.

Output

  • Kết quả trả về của hàm/lớp categorical_cross_entropy hoặc dữ liệu in ra màn hình theo đúng đặc tả.

Ràng buộc

  • Thời gian chạy tối đa: 1000ms.
  • Giới hạn bộ nhớ: 256MB.

Ví dụ 1

Input

categorical_cross_entropy(y_true=[0, 1], y_pred=[[0.9, 0.1], [0.2, 0.8]], label_smoothing=0.0)

Output

True

Giải thích

Hàm được gọi với các tham số mẫu trên và trả về kết quả chính xác theo yêu cầu.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

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.