Thuật toán tối ưu hóa (optimization algorithm) là các phương pháp tính toán số học được thiết kế có hệ thống nhằm tìm ra phần tử tốt nhất (điểm cực tiểu hóa hoặc cực đại hóa) của một hàm mục tiêu trong một tập hợp các giá trị khả thi chịu sự chi phối của các điều kiện ràng buộc. Tối ưu hóa là nền tảng cốt lõi của toán học ứng dụng, khoa học dữ liệu, học máy (Machine Learning), kinh tế lượng và kỹ thuật công nghiệp.
Dạng bài toán tối ưu hóa tổng quát
Một bài toán quy hoạch toán học liên tục tổng quát được phát biểu dưới dạng chuẩn tắc:
thỏa mãn các hệ điều kiện ràng buộc:
Nếu hàm mục tiêu và tập chấp nhận được là lồi (convex), bài toán được gọi là Tối ưu hóa lồi (Convex Optimization). Điểm độc đáo của bài toán lồi là bất kỳ điểm cực tiểu cục bộ nào cũng đồng thời là điểm cực tiểu toàn cục duy nhất.
Phân loại các nhóm thuật toán tối ưu hóa
1. Các thuật toán bậc nhất dựa trên Gradient (First-Order Methods)
Sử dụng thông tin đạo hàm bậc nhất (vector gradient ) để xác định hướng suy giảm nhanh nhất:
- Hạ Gradient cơ bản (Batch Gradient Descent):
Trong đó là tốc độ học (learning rate). Thuật toán tính toán gradient trên toàn bộ tập dữ liệu mẫu ở mỗi bước lặp.
- Hạ Gradient ngẫu nhiên (Stochastic Gradient Descent - SGD): Ước tính gradient chỉ trên một mẫu đơn lẻ hoặc một lô dữ liệu nhỏ (Mini-batch), giúp giảm đáng kể chi phí tính toán trên tập dữ liệu lớn và hỗ trợ thoát khỏi các điểm yên ngựa (saddle points).
- Thuật toán tối ưu hóa thích ứng (Adam - Adaptive Moment Estimation): Kết hợp ước lượng moment bậc nhất (quán tính chuyển động) và moment bậc hai (phương sai của gradient) để tự động điều chỉnh tốc độ học riêng biệt cho từng tham số.
2. Các thuật toán bậc hai (Second-Order Methods)
Sử dụng thêm thông tin độ cong không gian từ ma trận đạo hàm riêng bậc hai (ma trận Hessian ):
- Phương pháp Newton-Raphson:
Tốc độ hội tụ bậc hai cực nhanh gần điểm cực trị, tuy nhiên chi phí tính toán và nghịch đảo ma trận Hessian kích thước là , rất tốn kém khi số chiều tham số lớn.
- Phương pháp Quasi-Newton (BFGS & L-BFGS): Xấp xỉ dần ma trận nghịch đảo Hessian qua các bước lặp chỉ bằng các phép tính gradient bậc nhất, giảm độ phức tạp tính toán xuống hoặc đối với bộ nhớ giới hạn (Limited-memory BFGS).
3. Thuật toán phỏng đoán và tiến hóa sinh học (Heuristics & Metaheuristics)
Áp dụng cho các bài toán tối ưu tổ hợp rời rạc phi lồi phức tạp (NP-hard, như bài toán người giao hàng TSP):
- Giải thuật di truyền (Genetic Algorithms - GA): Mô phỏng chọn lọc tự nhiên qua các phép lai ghép (crossover), đột biến (mutation) và chọn lọc cá thể thích nghi.
- Tối ưu hóa bầy đàn (Particle Swarm Optimization - PSO): Mô phỏng hành vi di chuyển tìm mồi của đàn chim hoặc đàn cá.
- Mô phỏng tôi luyện kim loại (Simulated Annealing): Cho phép chấp nhận các bước đi làm tăng giá trị hàm mục tiêu với xác suất giảm dần theo hàm nhiệt độ để vượt qua các hố cực tiểu cục bộ nông.
Bảng so sánh hiệu năng các thuật toán tối ưu tiêu biểu
| Thuật toán | Bậc đạo hàm | Tốc độ hội tụ | Độ phức tạp bộ nhớ | Khả năng áp dụng với dữ liệu lớn |
|---|---|---|---|---|
| SGD + Momentum | Bậc 1 | Dưới tuyến tính / Tuyến tính | Rất xuất sắc (Chuẩn mực trong Deep Learning) | |
| Adam / AdamW | Bậc 1 (Thích ứng) | Tuyến tính | Rất xuất sắc (Huấn luyện LLM, Transformer) | |
| L-BFGS | Xấp xỉ bậc 2 | Siêu tuyến tính (Superlinear) | Tốt cho mô hình vừa và nhỏ (Logistic Regression, CRF) | |
| Newton thuần túy | Bậc 2 | Bậc 2 (Quadratic) | Kém đối với số chiều tham số lớn |
Điều kiện tối ưu hóa Karush-Kuhn-Tucker (KKT)
Đối với bài toán tối ưu có ràng buộc khả vi, nghiệm tối ưu cùng các nhân tử Lagrange phải thỏa mãn hệ điều kiện KKT:
- Tính dừng (Stationarity):
- Chấp nhận được nguyên thủy (Primal Feasibility):
- Chấp nhận được đối ngẫu (Dual Feasibility):
- Bù trừ triệt tiêu (Complementary Slackness):