Thuật toán Nesterov Accelerated Gradient (NAG Momentum) từ đầu bằng NumPy
Momentum cổ điển (Polyak Momentum) cộng thêm quán tính vận tốc v từ các bước trước vào gradient hiện tại. Tuy nhiên, Nesterov Accelerated Gradient (NAG) có tầm nhìn thông minh hơn:…
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: sgd-momentum-optimizer, gradient-descent-univariate.
Nội dung đề bài
Mô tả bài toán
Momentum cổ điển (Polyak Momentum) cộng thêm quán tính vận tốc v từ các bước trước vào gradient hiện tại. Tuy nhiên, Nesterov Accelerated Gradient (NAG) có tầm nhìn thông minh hơn: nó đo gradient tại *điểm dự phóng theo đà* (look-ahead position).
Theo dạng tương đương thuận tiện cho cài đặt (Sutskever et al., 2013 / PyTorch NAG):
- Cập nhật vận tốc đà:
vt = μ vt-1 + gt
- Cập nhật tham số kết hợp cả gradient và vận tốc mới:
θt = θt-1 - η (gt + μ vt) trong đó μ là hệ số đà (momentum), η là tốc độ học (lr).
Hãy cài đặt lớp NAGOptimizer:
__init__(self, params: dict[str, np.ndarray], lr: float = 0.01, momentum: float = 0.9):- Khởi tạo velocity buffer v chứa các mảng số thực 0 cùng kích thước với mỗi tham số.
step(self, grads: dict[str, np.ndarray]) -> None:- Thực hiện cập nhật tham số theo công thức NAG trên.
- Kiểm tra tính hợp lệ của
grads(khóa và shape). get_velocity(self, key: str) -> np.ndarray:- Trả về bản sao mảng vận tốc đà hiện tại của tham số
key.
Input
- Lớp
NAGOptimizer(params,lr,momentum): Khởi tạo đối tượng với các tham số, trọng số hoặc cấu hình tương ứng.
Output
- Các phương thức của
NAGOptimizer: Trả về kết quả tính toán hoặc cập nhật trạng thái nội bộ của đối tượng.
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
w = np.array([1.0, 2.0], dtype=np.float64)
params = {'w': w}
opt = NAGOptimizer(params, lr=0.1, momentum=0.9)
opt.step({'w': np.array([1.0, 1.0])})Output
{
'w': [0.539, 1.539]
}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.
