Xét hàm số f:Rn→R và bài toán tối ưu minxf(x).
Giả sử nghiệm tối ưu của bài toán trên đạt được tại x∗ là f(x∗)=f∗=minxf(x)
Thuật toán Newton giúp ta tính gần đúng giá trị x∗.
- Bước 1: Chọn giá trị khởi tạo x0∈Rn.
- Bước 2: Thực hiện dãy lặp:
x(k)=x(k−1)+(∇2f(x(k−1)))−1×∇f(x(k−1)),k=1,2,3,...
▸ VÍ DỤ
Cho hàm f(x)=x2. Hãy áp dụng 2 bước lặp của thuật toán Newton với x0=4.
Có f′(x)=2x; f′′(x)=2.
Công thức lặp: x(k)=x(k−1)−α⋅2x(k−1)
Ta kẻ bảng cho dễ quan sát
| k | x(k−1) | f′(x(k−1)) | f′′(x(k−1)) | x(k) |
|---|
| 1 | 4 | 8 | 2 | 4−28=0 |
| 2 | 0 | 0 | 2 | 0−20=0 |
Vậy sau 2 lần lặp, giá trị xấp xỉ của x∗ là 0.
Nhận xét: Thuật toán Newton hội tụ trong ít bước hơn so với Gradient Descent, nhưng đổi lại chi phí tính toán lớn;
thuật toán Gradient Descent cần nhiều bước để hội tụ hơn nhưng thời gian đi mỗi bước nhanh hơn rất nhiều, nên có ứng dụng
nhiều hơn trong các lĩnh vực như Học máy.
Biểu đồ mô tả tốc độ hội tụ của 2 thuật toán Gradient Descent và Newton
