Cài đặt Hàm Softmax và LogSumExp Ổn định Số học Trong AI
Khi tính toán xác suất từ logits đầu ra của mạng nơ-ron, nếu một giá trị logit bằng 1000.0, hàm np.exp(1000.0) sẽ trả về inf, dẫn đến phép chia infinf = NaN.
Tiến độ của tôi ở bài này
Điểm và code bạn nộp đượ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: exp overflow, keepdims, vectorization.
Nội dung đề bài
Mục tiêu kiến thức
- Hiểu rõ hiện tượng tràn số mũ (Overflow / Underflow) trong biểu diễn số thực dấu phẩy động 64-bit (float64) khi tính hàm ex.
- Nắm vững kỹ thuật Trừ Cực Đại (max-subtraction trick) để đưa giá trị số mũ về khoảng ≤ 0.
- Cài đặt hai hàm số toán học cốt lõi trong Transformer và Phân loại: Softmax và LogSumExp.
Mô tả bài toán
Khi tính toán xác suất từ logits đầu ra của mạng nơ-ron, nếu một giá trị logit bằng 1000.0, hàm np.exp(1000.0) sẽ trả về inf, dẫn đến phép chia infinf = NaN.
Hãy cài đặt hai hàm ổn định số học:
- stable_softmax(logits: np.ndarray, axis: int = -1) -> np.ndarray:
- Trừ giá trị lớn nhất dọc theo trục: m = max(logits, axis=axis, keepdims=True).
- Tính elogits - m.
- Chia cho tổng các số mũ: elogits - mΣ elogits - m.
- Tổng xác suất dọc theo trục axis của ma trận kết quả luôn xấp xỉ 1.0.
- stable_log_sum_exp(logits: np.ndarray, axis: int = -1) -> np.ndarray:
- Tính hàm log(Σj ezj) theo công thức ổn định:
m + log(Σ ez - m)
- Trong đó m = max(logits, axis=axis, keepdims=True).
- Loại bỏ chiều rút gọn bằng np.squeeze(..., axis=axis) trước khi trả về.
Input
- Các tham số truyền vào hàm/lớp stable_softmax 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 stable_softmax hoặc dữ liệu in ra màn hình theo đúng đặc tả.
Ràng buộc
- Hàm phải chạy đúng kể cả khi mảng chứa các giá trị cực lớn (1000.0) hoặc cực nhỏ (-1000.0).
- Không được trả về inf hay nan.
- Thời gian chạy tối đa: 1000ms.
- Giới hạn bộ nhớ: 256MB.
Ví dụ 1
Input
stable_softmax(logits=[[1.0, 2.0, 3.0], [1000.0, 1000.0, 1000.0]], axis=-1)
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.
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.
