Gradient của MSE theo một trọng số
Đạo hàm của hàm mất mát theo trọng số là nền tảng của lan truyền ngược. Với mô hình tuyến
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: python-basics, mean-squared-error, torch-basics.
Nội dung đề bài
Mô tả bài toán
Đạo hàm của hàm mất mát theo trọng số là nền tảng của lan truyền ngược. Với mô hình tuyến tính một trọng số y_hat = w * x, ta có thể để autograd của PyTorch tính gradient này và so với công thức giải tích.
Yêu cầu
Viết hàm mse_weight_grad(w, x, y) trả về đạo hàm của mất mát MSE theo w cho mô hình y_hat = w * x.
Quy ước nộp bài
Nộp hàm mse_weight_grad trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- w: trọng số hiện tại.
- x: danh sách đặc trưng của các mẫu.
- y: danh sách nhãn thật, cùng độ dài với x.
Output
Số thực bằng (2 / n) * sum(xi * (w * xi - yi)) với L = mean((w*x - y)2).
Ràng buộc
- x và y phải cùng độ dài và khác rỗng; nếu không, hàm ném ValueError.
- Dùng torch.tensor(..., requires_grad=True) rồi gọi .backward() để lấy gradient.
Ví dụ 1
Input
mse_weight_grad(w=1.0, x=[1, 2], y=[2, 4])
Output
-5.0
Ví dụ 2
Input
mse_weight_grad(w=0.0, x=[1, 1], y=[1, 1])
Output
-2.0
Giải thích
Với w = 1.0, x = [1, 2], y = [2, 4]: dự đoán là [1, 2], phần dư là [-1, -2], nên gradient là (2 / 2) * (1 * (-1) + 2 * (-2)) = -5.0.
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.
