ai-415Đọc toàn bộ đề miễn phí

Một bước hạ gradient cho một trọng số

Hạ gradient là vòng lặp cập nhật tham số theo hướng ngược đạo hàm của hàm mất mát. Với mô

AICơ bản12 phút

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

numpygradient-descentoptimizationentry-ramp

Kiến thức tiên quyết: python-basics, mean-squared-error.

Nội dung đề bài

Mô tả bài toán

Hạ gradient là vòng lặp cập nhật tham số theo hướng ngược đạo hàm của hàm mất mát. Với mô hình tuyến tính một trọng số y_hat = w * x và mất mát trung bình bình phương, ta cần một bước cập nhật w từ danh sách mẫu.

Yêu cầu

Viết hàm gd_step(w, x, y, lr) trả về giá trị trọng số mới sau đúng một bước hạ gradient trên mất mát MSE.

Quy ước nộp bài

Nộp hàm gd_step 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 (số thực).
  • 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.
  • lr: tốc độ học dương.

Output

Trọng số mới w - lr * dL/dw, với L = mean((w*x - y)2) và dL/dw = (2/n) * sum(xi*(w*xi - yi)).

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.
  • Tính bằng NumPy, không viết vòng lặp Python.

Ví dụ 1

Input

gd_step(w=1.0, x=[1, 2], y=[2, 4], lr=0.1)

Output

1.5

Ví dụ 2

Input

gd_step(w=0.0, x=[1, 1], y=[1, 1], lr=0.5)

Output

1.0

Giải thích

Với w = 1.0, x = [1, 2], y = [2, 4], lr = 0.1: dự đoán là [1, 2], phần dư là [-1, -2], gradient là -5, trọng số mới là 1.0 - 0.1 * (-5) = 1.5.

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.

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.

Nhóm Zalo