Không gian tự học dành cho sinh viên UET

Chào mừng đến với UETệ

Tìm bài giảng theo học phần, hiểu lại những kiến thức nền và ôn tập theo nhịp học của bạn.

Bài giảng
Đọc Notes, ôn nhanh với Slides và luyện tập qua các bài có lời giải.
Wiki kiến thức
Tra cứu thuật ngữ và bổ sung kiến thức nền ngay khi cần.
Góc học tập
Ôn bằng flashcard, lưu ghi chú và hẹn giờ tập trung.

Bạn có thể xem lại phần giới thiệu ở cuối trang.

Buy me a coffee

Website hoàn toàn miễn phí. Nếu thấy hữu ích, bạn có thể tặng tôi một cốc cà phê theo thông tin dưới đây nhé!

Mã QR chuyển khoản Momo
Ngân hàng
Momo
Tên người nhận
MOMO - TKTH DO MINH TRI
Số tài khoản
01MMTTT0060405229
Skip to content

Gradient, backtracking và hướng Newton

Chủ đề 12 / 12
  1. 1. Không gian Euclid, chuẩn và ma trận đối xứng
  2. 2. Đạo hàm, gradient, Hessian và cực trị
  3. 3. Tập lồi, hàm lồi và nghiệm tối ưu
  4. 4. Mô hình tối ưu và hồi quy tuyến tính
  5. 5. Quy hoạch tuyến tính và phân loại bài toán
  6. 6. Giải bài toán ba biến có hàm cos
  7. 7. Lagrangian và điều kiện KKT
  8. 8. Giải KKT theo tham số và tập ràng buộc chặt
  9. 9. Đối ngẫu Lagrange và điều kiện Slater
  10. 10. Bài tập ràng buộc lồi và phi lồi
  11. 11. Quy tắc chuỗi và Taylor nhiều biến
  12. 12. Gradient, backtracking và hướng Newton

Biết hướng đi xuống chưa đủ để chọn được điểm tiếp theo. Bước quá dài có thể đi qua vùng thấp rồi leo lên phía bên kia. Ta cần tách hai quyết định: Hướng đi và độ dài bước.

1. Hướng giảm ​

Giả sử f khả vi tại x và ∇f(x)≠0. Một hướng d có

∇f(x)Td<0

là hướng giảm theo đạo hàm bậc nhất. Vì

f(x+td)=f(x)+t∇f(x)Td+o(t),o(t)t→0(t→0+),

nên f(x+td)<f(x) với t>0 đủ nhỏ. Khi gradient và d đều khác không, tích vô hướng âm tương đương góc giữa chúng lớn hơn π/2.

Chọn d=−∇f(x) thì

∇f(x)Td=−∥∇f(x)∥22<0.

Trong các hướng có chuẩn Euclid bằng 1, hướng gradient âm đã chuẩn hóa cho tốc độ giảm bậc nhất lớn nhất. Phát biểu “dốc nhất” phụ thuộc chuẩn dùng để giới hạn độ lớn hướng.

2. Đường mức và đường lặp ​

Đường mức là tập các điểm thỏa f(x)=c. Gradient vuông góc với đường mức tại một điểm trơn có gradient khác không. Trong hình đường mức của buổi học, các điểm x0,x1,x2,x3 lần lượt đi vào các mức mục tiêu thấp hơn về phía nghiệm.

Đường lặp có thể gấp khúc, vì gradient được tính lại tại mỗi điểm. Một hình vẽ đi vào tâm minh họa ý tưởng giảm, nhưng không thay cho chứng minh hội tụ của một thuật toán cụ thể.

3. Thuật toán gradient ​

Chọn điểm đầu x0 và dung sai ε>0. Với k=0,1,2,…:

  1. Tính gk=∇f(xk).
  2. Nếu ∥gk∥2<ε, dừng.
  3. Đặt dk=−gk và tìm bước tk>0.
  4. Cập nhật xk+1=xk+tkdk.

Bước tk còn được gọi là tốc độ học, hay learning rate. Chuẩn gradient nhỏ chỉ chứng nhận gần điểm dừng theo tiêu chuẩn đang dùng. Với bài phi lồi, điểm dừng có thể là cực tiểu, cực đại hoặc điểm yên ngựa. Thuật toán ở đây là không ràng buộc. Nếu có miền D, còn phải bảo đảm bước mới khả thi hoặc dùng phương pháp chiếu, phương pháp xử lý ràng buộc thích hợp.

4. Backtracking Armijo ​

Chọn α∈(0,1/2) và β∈(0,1). Bắt đầu với t=1. Nếu chưa thỏa

f(x+td)≤f(x)+αt∇f(x)Td,

thì thay t bằng βt rồi thử lại. Nếu hàm có miền xác định hạn chế, một bước ra ngoài miền cũng phải bị loại. Bất đẳng thức Armijo yêu cầu một phần cố định của mức giảm mà xấp xỉ tuyến tính dự đoán.

Với hướng gradient âm, điều kiện trở thành

f(x+td)≤f(x)−αt∥∇f(x)∥22.

Vì d là hướng giảm và α<1, các bước dương đủ nhỏ sẽ thỏa khi điểm hiện tại nằm trong miền mở và hàm khả vi. Hệ số β<1 khiến dãy bước thử tiến về không, nên backtracking dừng sau hữu hạn lần trong các điều kiện này.

Phân biệt Armijo và Wolfe

Lưu ý: Vòng lặp được trình bày ở đây kiểm tra điều kiện giảm đủ Armijo. Điều kiện Wolfe hoàn chỉnh còn bao gồm thêm điều kiện độ cong liên quan đến gradient tại điểm mới.

5. Ví dụ đầy đủ hai vòng lặp ​

Xét

f(x,y)=x2+2y2,x0=(2,1),α=0.1,β=0.5.

Hessian là diag(2,4)≻0, nên nghiệm duy nhất là (0,0) và giá trị tối ưu bằng không.

Vòng thứ nhất ​

Tại x0=(2,1), giá trị mục tiêu là 6, gradient g0=(4,4), hướng d0=(−4,−4) và ∥g0∥22=32. Mỗi bước thử có điểm mới (2−4t,1−4t).

Bước tĐiểm thửf tại điểm thửCận ArmijoKết quả
1(−2,−3)222.8Loại
1/2(0,−1)24.4Nhận

Dòng đầu so 22 với 6−0.1⋅32=2.8. Dòng thứ hai so 2 với 6−0.1⋅(1/2)⋅32=4.4. Bước được nhận là t0=1/2, nên x1=(0,−1).

Vòng thứ hai ​

Tính lại tại x1: Giá trị mục tiêu là 2, gradient g1=(0,−4), hướng d1=(0,4) và ∥g1∥22=16. Khởi động lại bước thử từ 1.

Bước tĐiểm thửf tại điểm thửCận ArmijoKết quả
1(0,3)180.4Loại
1/2(0,1)21.2Loại
1/4(0,0)01.6Nhận

Vậy t1=1/4 và x2=(0,0). Gradient bằng không nên thuật toán dừng. Mục tiêu giảm từ 6 xuống 2 rồi xuống 0.

Đọc đúng dòng thử bước thứ hai

Ảnh B4-22 có một số giá trị nháp được viết xen ở các bước khác nhau. Với t=1, điểm thử là (0,3) và mục tiêu phải bằng 18. Giá trị 2 và cận 1.2 thuộc bước t=1/2. Bảng phía trên giữ đủ các lần thử và tách rõ từng giá trị.

Theo dõi từng bước cập nhật

0xy

Bước 0: (2.0000, 2.0000) và f = 22.0000.

Xem code và điều kiện mô phỏng

Chương trình dùng dữ liệu nhỏ tự đặt. Các quan hệ toán được ghi ngay trong Notes. Mô phỏng hữu hạn không thay chứng minh cho mọi điểm. Code tính toán được chia sẻ giữa component và kiểm tra tại docs/.vitepress/theme/math-ai.mjs.

Mô phỏng dùng một hàm toàn phương khác và bước học có thể điều chỉnh. Nó giúp so hướng gradient với Newton và quan sát bước quá lớn, còn các số của ví dụ ôn luyện đã được tính riêng trong hai bảng.

6. Vì sao không quét hết một lưới? ​

Trong một chiều, ta có thể lấy m vị trí trong một đoạn [a,b] và so giá trị mục tiêu. Cách này không tự tìm đúng cực tiểu nằm giữa hai điểm lưới. Muốn có sai số bảo đảm, cần thêm tính chất của hàm và độ mịn lưới.

Trong nhiều chiều, miền hộp có dạng

[a1,b1]×⋯×[an,bn].

Nếu mỗi trục có m lựa chọn, tổng số điểm là tích

m⋅m⋯m⏟n factors=mn.

Chỉ hai lựa chọn trên mỗi trục đã tạo 264 điểm khi có 64 chiều và 2100 điểm khi có 100 chiều. Giá trị chính xác lần lượt là 18446744073709551616 và 1267650600228229401496703205376. Đây là sự bùng nổ số tổ hợp theo số chiều mà hình lưới trên bảng minh họa. Các phương pháp dùng đạo hàm khai thác cấu trúc cục bộ để tránh liệt kê toàn bộ lưới.

7. Hướng Newton ​

Taylor bậc hai tại điểm hiện tại tạo mô hình theo dịch chuyển d:

q(d)=f(x)+∇f(x)Td+12dTHd,H=∇2f(x).

Nếu H≻0, mô hình có cực tiểu duy nhất tại nghiệm của

Hd=−∇f(x).

Dạng biểu thức là d=−H−1∇f(x). Trong triển khai, giải hệ tuyến tính thay vì tính ma trận nghịch đảo. Với gradient khác không,

∇f(x)Td=−∇f(x)TH−1∇f(x)<0,

nên hướng Newton là hướng giảm. Với Hessian không PD, tính khả nghịch riêng nó chưa đủ bảo đảm tính giảm.

Trong ví dụ f=x2+2y2, hệ Newton tại (2,1) cho d=(−2,−1). Bước đầy đủ t=1 đến ngay (0,0). Đây là tính chất của hàm toàn phương PD, không phải bảo đảm một bước cho mọi hàm trơn.

8. Bài tập tự luyện ​

Bài tập: Hướng đúng nhưng bước sai

Vì sao d0=(−4,−4) là hướng giảm tại (2,1) nhưng bước t=1 làm mục tiêu tăng từ 6 lên 22?

Lời giải

Tích gradient với hướng bằng −32, nên bước đủ nhỏ sẽ giảm. Tuy nhiên, dọc hướng này mục tiêu là 6−32t+48t2. Tại t=1, số hạng độ cong lớn hơn mức giảm bậc nhất. Vì vậy hướng giảm không bảo đảm mọi bước dương đều giảm. Backtracking kiểm giá trị thật rồi thu bước đến khi đạt điều kiện giảm đủ.

Toàn bộ chủ đề ôn luyệnVề trang chương: bản đồ, Slides và Kiến thức nền
Ảnh & sơ đồ
100%
Ảnh tài liệu được phóng to