Đạo hàm giải tích của Softmax và tích Vector-Jacobian (Softmax VJP)
Cho vector xác suất sau Softmax p = softmax(z) ∈ RV với pi = ezi∑k ezk.
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: jacobian-matrix-vector-valued-function, stable-softmax-logits.
Nội dung đề bài
Mô tả bài toán
Cho vector xác suất sau Softmax p = softmax(z) ∈ RV với pi = ezi∑k ezk. Ma trận Jacobian của hàm Softmax J ∈ RV × V có các phần tử: Ji, j = ∂ pi∂ zj = pi (δi, j - pj) = pi (1 - pi) & khi i = j
-pi pj & khi i ≠ j Trong lan truyền ngược, khi nhận được gradient từ tầng trên g = ∂ L∂ p ∈ RV, ta cần tính Vector-Jacobian Product (VJP): ∂ L∂ z = JT g = ∑i=1V gi ∂ pi∂ z = p ⊙ ( g - ∑k=1V gk pk ) = p ⊙ (g - gT p)
Hãy viết hàm softmax_vjp(p: np.ndarray, g: np.ndarray) -> np.ndarray:
p: vector hoặc ma trận xác suất Softmax (shape (V,) hoặc (B, V)).g: vector hoặc ma trận gradient ∂ L∂ p cùng shape vớip.- Tính ∂ L∂ z bằng công thức vector hóa tối ưu O(V) mà không tạo ma trận Jacobian V × V.
- Trả về mảng NumPy cùng shape với kiểu
np.float64.
Input
- Hàm
softmax_vjp(p,g): 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
softmax_vjp: Trả về kết quả kiểunp.ndarraytheo đú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
p = np.array([0.5, 0.5])
g = np.array([1.0, 0.0])
dz = softmax_vjp(p, g)Output
[ 0.25, -0.25]Giả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
p = np.array([0.2, 0.5, 0.3])
g = np.array([1.5, -2.0, 0.5])
J = np.diag(p) - np.outer(p, p)
actual_dz = softmax_vjp(p, g)Output
[ 0.41 , -0.725, 0.315]Giả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.
