Giao diện
Ở chủ đề trước, ta đã nắm vững cách thiết lập mô hình bài toán tối ưu. Câu hỏi tiếp theo là: Thiết lập xong rồi thì giải bằng cách nào? Câu trả lời từ thực tiễn tính toán: Bài toán tối ưu tổng quát khó giải một cách đáng ngạc nhiên, kể cả khi mọi mục tiêu và ràng buộc đều trơn như đa thức. Những phương pháp giải tổng quát luôn phải đối mặt với sự đánh đổi: Hoặc thời gian chạy quá lâu, hoặc không thể bảo đảm tìm ra nghiệm tối ưu.
Thế nhưng có những ngoại lệ quan trọng: Các họ bài toán mà khoa học tính toán đã có thuật toán giải quyết quy mô lớn, tốc độ cực nhanh và bảo chứng nghiệm toàn cục chắc chắn. Bài giảng này giới thiệu hai họ bài toán kinh điển nhất là và quy hoạch tuyến tính, đồng thời chỉ rõ rằng cả hai đều là trường hợp riêng của một cấu trúc bao trùm rộng lớn: Tối ưu lồi. Nắm vững bản chất vì sao hai họ bài toán này giải được chính là chìa khóa thấu suốt vì sao toàn bộ nền tảng toán học cho AI đều xoay quanh tính lồi.
1. Bình phương tối thiểu
1.1 Bài toán và hệ phương trình chuẩn
Bài toán (least squares) không có ràng buộc, và hàm mục tiêu là tổng bình phương của các biểu thức dạng
Ở đây
Để tìm nghiệm, ta đặt bằng 0. Khai triển
Hệ này được gọi là hệ phương trình chuẩn. Khi các cột của
Lý do điểm dừng là cực tiểu toàn cục sẽ được làm rõ ở các chủ đề về . Ta có thể thấy trước ý chính: của
1.2 Bức tranh hình học: Phép chiếu vuông góc
Công thức
Cực tiểu
Từ góc nhìn hình học này, ta nhận thấy một đặc trưng bản chất quan trọng: dự đoán tối ưu
Ví dụ: Khớp một đường thẳng qua ba điểm
Dữ liệu tự đặt gồm ba cặp
Hệ chuẩn là
Kiểm tra điều kiện vuông góc: Tích của
1.3 Hai biến thể thường gặp
Để mô hình linh hoạt và thích ứng tốt hơn với dữ liệu thực tế, ta thường trang bị hai kỹ thuật nền tảng: Thứ nhất là bình phương tối thiểu có trọng số, cực tiểu
Số hạng phạt giữ cho
còn có một cách hiểu thống kê sâu sắc: Nếu dữ liệu được sinh ra bởi mô hình tuyến tính cộng nhiễu Gauss độc lập cùng phương sai, thì nghiệm bình phương tối thiểu chính là ước lượng hợp lý cực đại (MLE). Kỹ thuật điều chuẩn cũng có cách hiểu tương tự, tương ứng với việc ta áp đặt một phân phối tiên nghiệm Gauss (Gaussian prior) lên (ước lượng MAP).
Nhận ra một bài toán khá đơn giản: Chỉ cần quan sát thấy hàm mục tiêu là một hàm bậc hai, rồi kiểm tra toàn phương đi kèm có hay không. Ngày nay, việc giải bài toán bình phương tối thiểu được xem là một công nghệ đã hoàn thiện và trưởng thành (mature technology), theo nghĩa người dùng không cần bận tâm đến từng chi tiết vi mô của thuật toán giải bên dưới mà vẫn có thể tin cậy vào kết quả đầu ra. Độ phức tạp tính toán thực tế xấp xỉ tỉ lệ với
2. Quy hoạch tuyến tính
2.1 Bài toán
Lớp thứ hai là quy hoạch tuyến tính (linear program, viết tắt LP), trong đó cả hàm mục tiêu và mọi hàm ràng buộc đều tuyến tính:
Các
2.2 Bức tranh hình học: Đẩy một đường mức qua một đa giác
Mỗi ràng buộc
Mô phỏng dưới đây cho phép người học thay đổi hệ số của hàm mục tiêu
max 3x + 2y = 10. Đỉnh đạt tối ưu: (2,2).
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.
Nhận xét "nghiệm nằm ở một đỉnh" đúng cho những đa diện có đỉnh và khi giá trị tối ưu hữu hạn. Nó là nền tảng của phương pháp đơn hình, vốn đi từ đỉnh này sang đỉnh kề tốt hơn. Lecture 07 sẽ trở lại với câu hỏi khi nào điều đó được bảo đảm.
2.3 Chứng nhận một nghiệm LP mà không cần thử mọi điểm
Xét bài toán cực đại
Ý tưởng là cộng các ràng buộc lại với những hệ số không âm. Nhân ràng buộc thứ nhất với 3 và ràng buộc thứ hai với 1 rồi cộng lại:
Hệ số được chọn sao cho vế trái đúng bằng hàm mục tiêu. Hai hệ số phải không âm, vì nhân một bất đẳng thức với số âm sẽ đảo chiều nó. Vậy với mọi , giá trị mục tiêu không vượt quá 27, và điểm
Cách tìm cặp hệ số ấy cũng là một LP, được gọi là bài toán đối ngẫu. Đây là hạt mầm của lý thuyết đối ngẫu Lagrange ở Lecture 03, nơi ý tưởng "cộng các ràng buộc với trọng số không âm để được một cận" được mở rộng cho mọi bài toán lồi.
2.4 Biến một bài toán không trơn thành LP
Có những bài toán thoạt nhìn không phải LP nhưng hoàn toàn có thể biến đổi tương đương thành một bài toán LP chuẩn tắc. Một ví dụ tiêu biểu và xuất hiện liên tục trong thực tế là xấp xỉ Chebyshev (Chebyshev approximation):
Hàm mục tiêu đo phần dư lớn nhất thay vì tổng bình phương phần dư, và nó không khả vi ở những điểm mà hai phần dư lớn nhất bằng nhau. Mẹo biến đổi cốt lõi ở đây là bổ sung một biến phụ
Hai bất đẳng thức cuối cùng tương đương với điều kiện
Ba tiêu chí đo sai số cho ba nghiệm khác nhau, và sự khác nhau đó không phải chuyện kỹ thuật mà là chuyện ta muốn gì. Mô phỏng sau đặt ba đường thẳng tối ưu cạnh nhau trên cùng dữ liệu.
Ba tiêu chí, ba đường thẳng
Kéo các điểm theo chiều dọc. Đường tím cực tiểu tổng bình phương phần dư, đường xanh cực tiểu tổng trị tuyệt đối, đường vàng cực tiểu phần dư lớn nhất.
Bình phương tối thiểu: y = 1.47t − 0.14. Tổng bình phương 4.17, tổng trị tuyệt đối 4.14, sai số lớn nhất 1.26.
Tổng trị tuyệt đối (ℓ₁): y = 1.00t + 0.50. Tổng bình phương 6.83, tổng trị tuyệt đối 3.50, sai số lớn nhất 2.50.
Sai số lớn nhất (ℓ∞): y = 1.63t − 0.59. Tổng bình phương 4.51, tổng trị tuyệt đối 4.59, sai số lớn nhất 1.09.
Gợi ý thao tác
- Đọc bảng số: mỗi đường thắng đúng ở tiêu chí mà nó tối ưu, nhưng thua ở hai tiêu chí kia.
- Kéo điểm cuối lên thật cao. Đường nào bị kéo theo nhiều nhất, đường nào gần như không đổi?
- Đặt năm điểm thẳng hàng. Ba đường có trùng nhau không? Vì sao?
Thử kéo một điểm thật xa khỏi các điểm còn lại. Đường bị kéo theo rõ rệt, vì bình phương làm một sai số lớn trở nên rất lớn. Đường ℓ₁ gần như không đổi: Nó chịu được vài quan sát bất thường. Còn đường ℓ∞ lo cho trường hợp xấu nhất nên lại bị điểm bất thường chi phối mạnh nhất. Chọn tiêu chí là chọn mô hình, và lựa chọn đó phải đến từ hiểu biết về dữ liệu, không phải từ việc tiêu chí nào dễ tính hơn.
3. Tối ưu lồi: Điểm chung của hai lớp bài toán
Bây giờ ta có thể phát biểu họ bài toán là chủ đề trọng tâm của toàn bộ môn học. Một bài toán tối ưu lồi có dạng
trong đó các hàm
Hãy so sánh với điều kiện tuyến tính
Tối ưu lồi nói chung không có công thức nghiệm đóng, nhưng có những phương pháp rất hiệu quả. Trong thực tế tính toán, các phương pháp điểm trong thường giải xong trong khoảng 10 đến 100 bước lặp, mỗi bước tốn cỡ
Một triết lý sâu sắc trong tối ưu hiện đại: Khi đưa được một bài toán thực tế về dạng bài toán tối ưu lồi, bài toán đó về cơ bản coi như đã giải quyết xong. Cái khó của tối ưu lồi vì vậy không nằm ở khâu giải, mà nằm ở khâu nhận ra và biến đổi bài toán về dạng lồi. Nhận ra một bài toán thì dễ, nhận ra một thì khó hơn nhiều, và số mẹo biến đổi cũng nhiều hơn LP. Phần lớn chương này được dành để luyện đúng kỹ năng nhận diện ấy.
4. Khi bài toán không lồi và vai trò trợ lực của tối ưu lồi
Bài toán có hàm mục tiêu hoặc hàm ràng buộc không tuyến tính mà cũng không bảo đảm tính lồi được gọi chung là tối ưu phi tuyến (nonconvex optimization). Với lớp bài toán tổng quát này, khoa học tính toán hiện nay chưa có một phương pháp vạn năng nào có thể tìm ra nghiệm tối ưu toàn cục trong thời gian đa thức. Khi đối mặt với địa hình phi lồi hiểm trở với vô số cực tiểu cục bộ và điểm yên ngựa, người ta thường đứng trước hai sự lựa chọn mang tính đánh đổi:
- Tối ưu cục bộ (Local optimization): Chấp nhận từ bỏ tham vọng tìm nghiệm toàn cục để tập trung tìm một điểm tối ưu cục bộ khả thi. Các thuật toán này đạt tốc độ tính toán nhanh, xử lý được các mô hình quy mô hàng triệu biến và chỉ đòi hỏi khả vi. Tuy nhiên, kết quả phụ thuộc rất nhạy vào điểm xuất phát, thuật toán không thể đo lường xem điểm tìm được còn cách nghiệm toàn cục bao xa, và rất dễ mắc kẹt trong các bẫy cực tiểu cục bộ nông. Huấn luyện mạng nơ-ron sâu là ví dụ điển hình của trường phái này: Hàm mất mát phi lồi được tối ưu bằng các biến thể của phương pháp hạ ngẫu nhiên (SGD, Adam).
- Tối ưu toàn cục (Global optimization): Tìm kiếm nghiệm tối ưu toàn cục thực sự của bài toán. Cái giá phải trả là thời gian tính toán tăng theo hàm mũ theo số biến và số ràng buộc trong trường hợp xấu nhất. Phương pháp này chỉ khả thi với các bài toán có số lượng biến khiêm tốn (vài chục đến vài trăm biến) nhưng đòi hỏi độ an toàn tuyệt đối, chẳng hạn như chứng nhận vận hành hệ thống điều khiển hàng không vũ trụ hay thiết kế mạng lưới năng lượng trọng yếu.
Tối ưu lồi trợ giúp bài toán phi lồi như thế nào?
Mặc dù tối ưu phi lồi là một bài toán khó, lý thuyết và thuật toán tối ưu lồi không hề đứng ngoài cuộc. Ngược lại, tối ưu lồi đóng vai trò là "bộ khung xương sống" cung cấp bốn cơ chế trợ lực nền tảng cho tối ưu phi lồi:
Khởi tạo chất lượng cao cho tối ưu cục bộ (Convex initialization): Hiệu năng của các phương pháp tối ưu cục bộ phụ thuộc quyết định vào điểm xuất phát ban đầu
. Thay vì gieo xúc xắc ngẫu nhiên trong không gian nhiều chiều, người ta thường xây dựng một bài toán xấp xỉ lồi (convex surrogate) bằng cách lược bỏ các ràng buộc phi tuyến phức tạp hoặc thay hàm mục tiêu bằng một gần đúng. Nghiệm tối ưu toàn cục của bài toán xấp xỉ này được dùng làm điểm xuất phát cho thuật toán tối ưu cục bộ phi lồi. Điểm khởi tạo này đưa thuật toán vào ngay thung lũng tiềm năng chứa nghiệm tốt, giúp hạ hội tụ nhanh chóng và tránh được các bẫy cục bộ kém chất lượng. Nới lỏng lồi và tính toán chặn dưới toàn cục (Convex relaxation & Global lower bounds): Bằng cách nới lỏng các ràng buộc rời rạc hoặc phi lồi thành các chứa chúng (ví dụ: Ràng buộc nhị phân
được nới lỏng thành đoạn lồi , hoặc ràng buộc hạng một được nới lỏng thành nón trong SDP relaxation), ta thu được một bài toán tối ưu lồi nới lỏng. Do tập khả thi của bài toán lồi bao trọn tập khả thi của bài toán phi lồi, giá trị tối ưu của bài toán lồi luôn cung cấp một ngưỡng chặn dưới toàn cục (global lower bound) chắc chắn: Với bất kỳ nghiệm khả thi
nào tìm được, khoảng cách mang lại một chứng chỉ giới hạn khoảng cách nghiệm (suboptimality certificate): Ta biết chắc chắn giải pháp hiện tại chỉ kém nghiệm toàn cục lý tưởng nhiều nhất là bao nhiêu, mang lại sự tự tin kỹ thuật mà không cần phải giải bài toán phi lồi đầy đủ. Cắt tỉa trong thuật toán nhánh và cận (Branch-and-Bound algorithms): Trong các thuật toán tối ưu toàn cục chính xác, không gian tìm kiếm được phân nhánh đệ quy thành các miền con nhỏ hơn. Tại mỗi nút của cây tìm kiếm, thuật toán giải một bài toán tối ưu lồi nới lỏng để xác định chặn dưới của miền con đó. Nếu chặn dưới này lớn hơn giá trị của nghiệm khả thi tốt nhất đã tìm thấy ở các nhánh khác, toàn bộ nhánh con đó lập tức bị cắt tỉa (pruned) mà không cần kiểm tra tiếp. Khả năng giải cực nhanh và chắc chắn của tối ưu lồi chính là động cơ then chốt giúp loại bỏ hàng tỷ nhánh vô vọng, thu hẹp đột phá không gian tìm kiếm.
Quy hoạch lồi tuần tự (Sequential Convex Programming - SCP): Nhiều bài toán phi tuyến phức tạp trong kỹ thuật robot và dẫn đường quỹ đạo được giải bằng cách xấp xỉ bài toán phi lồi thành một chuỗi các bài toán lồi kế tiếp nhau. Tại mỗi bước lặp
, thuật toán tuyến tính hóa các ràng buộc phi lồi hoặc lồi hóa cục bộ quanh điểm hiện tại (như trong phương pháp Convex-Concave Procedure - CCP), sau đó giải bài toán lồi cục bộ để bước sang điểm . Quy trình này biến một bài toán phi lồi nan giải thành một chuỗi các bước giải lồi ổn định và hội tụ tin cậy.
5. Những câu hỏi để đào sâu
Câu 1. Trong ví dụ ba điểm ở mục 1.2, nếu thêm một điểm thứ tư
Xem lời giải thích
Có thay đổi. Thêm một bản sao của
Câu 2. Quy hoạch tuyến tính không có công thức nghiệm như . Điều đó có nghĩa là nó khó giải hơn không? Một bài toán có công thức nghiệm đóng có nhất thiết dễ giải hơn trên máy tính không?
Xem lời giải thích
Không nhất thiết. Công thức
Câu 3. Trong mẹo biến phụ của xấp xỉ Chebyshev, điều gì xảy ra nếu ta vô tình viết bài toán thành cực đại
Xem lời giải thích
Nếu cực đại
Câu 4. Trong chứng nhận tối ưu ở mục 2.3, vì sao các hệ số nhân với ràng buộc phải không âm, còn hệ số nhân với một ràng buộc đẳng thức (nếu có) thì được phép âm?
Xem lời giải thích
Nhân hai vế của một bất đẳng thức
6. Bài tập tự luyện
Bài tập 1: Bình phương tối thiểu bằng tay
Khớp mô hình hằng số
Lời giải
Mô hình chỉ có một , nên
Bài tập 2: Cùng dữ liệu, tiêu chí khác
Với bốn số liệu
- Cực tiểu hóa tổng sai số tuyệt đối theo chuẩn
:
f(c) &= \sum_{i=1}^4 |c - b_i| \ &= |c - 1| + |c - 3| + |c - 4| + |c - 12|. \end
Gợi ý
Với chuẩn
Lời giải
1. Tìm hằng số theo chuẩn (Tổng sai số tuyệt đối)
Hàm mục tiêu cần cực tiểu hóa là:
Ta áp dụng bất đẳng thức tam giác
Xét cặp ngoài cùng: Đổi dấu số hạng thứ hai và áp dụng bất đẳng thức tam giác:
Dấu bằng xảy ra khi
Xét cặp bên trong: Thực hiện tương tự cho hai số hạng ở giữa:
Dấu bằng xảy ra khi
Cộng hai bất đẳng thức trên theo từng vế:
Dấu bằng đạt được đồng thời khi và chỉ khi:
Giao của hai điều kiện trên cho ta tập nghiệm tối ưu là đoạn
Kết luận: Mọi giá trị
2. Tìm hằng số theo chuẩn (Sai số cực đại)
Với tập số liệu
Áp dụng tính chất
Dấu bằng đạt được khi hai khoảng cách bằng nhau:
Vì điểm cực tiểu hiển nhiên nằm giữa hai đầu mút
Kết luận: Hằng số cực tiểu hóa duy nhất là
3. So sánh với bài toán bình phương tối thiểu (Bài 1)
Ở Bài 1, bài toán tìm hằng số
So sánh tổng quan theo ba chuẩn:
- Chuẩn
(Tổng sai số tuyệt đối): Nghiệm tối ưu là cả đoạn trung vị . Nghiệm không duy nhất do số lượng mẫu là chẵn ( ). Tiêu chí này có tính bền vững cao (robust), hoàn toàn không bị ảnh hưởng bởi giá trị ngoại lai . - Chuẩn
(Tổng bình phương sai số - Bài 1): Nghiệm tối ưu duy nhất là giá trị trung bình . Phép bình phương phạt rất nặng sai số lớn, vì vậy nghiệm bị kéo lệch đáng kể về phía điểm ngoại lai . - Chuẩn
(Sai số cực đại nhỏ nhất): Nghiệm tối ưu duy nhất là trung điểm của hai đầu mút . Tiêu chí này chỉ quan tâm tới tình huống xấu nhất (worst-case), do đó chịu sự chi phối hoàn toàn bởi giá trị cực biên lớn nhất .
Bài tập 3: Viết một LP từ mô tả
Một cửa hàng pha hai loại hạt. Loại I giá 4 đơn vị tiền mỗi kg, chứa 3 g chất A và 1 g chất B mỗi kg. Loại II giá 3 đơn vị mỗi kg, chứa 1 g chất A và 2 g chất B. Hỗn hợp cần ít nhất 6 g chất A và 7 g chất B. Viết LP cực tiểu chi phí, rồi chứng minh
Lời giải
Bài toán là cực tiểu
Vì
Tóm tắt
và quy hoạch tuyến tính là hai họ bài toán giải được một cách hoàn toàn tin cậy ngay cả khi số chiều dữ liệu rất lớn. Bình phương tối thiểu có công thức nghiệm qua hệ phương trình chuẩn, và hệ đó chính là điều kiện phần dư vuông góc với không gian cột. LP không có công thức nhưng có thuật toán hiệu quả, có bức tranh hình học là đẩy đường mức qua một đa diện, và có những chứng nhận tối ưu kiểm tra được bằng một tổ hợp không âm của các ràng buộc. Nhiều bài toán không trơn như xấp xỉ Chebyshev được đưa về LP nhờ biến phụ.
Tối ưu lồi chứa cả hai lớp đó như trường hợp riêng. Cái khó của nó nằm ở khâu nhận diện và biến đổi bài toán, chứ không ở khâu giải. Khi bài toán không lồi, ta phải chọn giữa tối ưu cục bộ nhanh nhưng không có bảo đảm và tối ưu toàn cục có bảo đảm nhưng rất tốn kém.
Tài liệu tham khảo
- Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Cambridge University Press.