Bayesian Optimization
Tối ưu hóa Bayesian sử dụng các lần đánh giá trước đó và model xác suất để tìm ra các cấu hình có hiệu năng cao cho những tác vụ ML tốn kém khi tài nguyên tính toán hạn chế.
Tối ưu hóa Bayes là phương pháp tìm các thiết lập có hiệu suất cao cho một hàm tốn kém khi đánh giá bằng cách học từ các lần đánh giá trước đó. Phương pháp này xây dựng một model xác suất về cách các đầu vào ảnh hưởng đến kết quả, sau đó dùng model đó để chọn thử nghiệm tiếp theo. Trong machine learning, phương pháp này hữu ích để tìm các cấu hình huấn luyện hiệu quả trong phạm vi ngân sách tính toán hạn chế.
Nền tảng của phương pháp này bao gồm phương pháp tìm kiếm tuần tự năm 1964 của Harold Kushner và cách thức tìm cực trị theo Bayes năm 1975 của Jonas Mockus. Ngày nay, đây là kỹ thuật trọng tâm trong tinh chỉnh siêu tham số và machine learning tự động.
Cách thức hoạt động của tối ưu hóa Bayes#
Hàm mục tiêu đo lường chất lượng của một cấu hình ứng viên. Với quá trình huấn luyện model, việc đánh giá bao gồm huấn luyện với các siêu tham số đã chọn và đo hiệu suất trên dữ liệu xác thực. Các đầu vào có thể tinh chỉnh bao gồm learning rate, batch size và mức độ điều chuẩn.
Model thay thế là một phép xấp xỉ hàm mục tiêu có chi phí tính toán thấp hơn. Một lựa chọn phổ biến là Gaussian process: phân phối xác suất trên các hàm có thể có, dự đoán cả kết quả lẫn độ bất định. Cập nhật Bayes kết hợp các giả định tiên nghiệm với kết quả đánh giá đã quan sát để tạo ra phân phối hậu nghiệm. Hàm thu nhận sử dụng phân phối này để chọn một ứng viên khác; kết quả đo được sẽ được đưa ngược vào model thay thế cho đến khi hết ngân sách đánh giá.
Đây là một phương pháp tối ưu hóa dựa trên machine learning: model thay thế học từ các cặp cấu hình–kết quả. Định lượng độ bất định giúp xác định những phép đo bổ sung nào có giá trị.
Hàm thu nhận và khám phá#
Việc chọn ứng viên cân bằng giữa khai thác, ưu tiên các thiết lập được dự đoán là có hiệu suất tốt, và khám phá, khảo sát các vùng chưa chắc chắn. Các hàm thu nhận phổ biến thể hiện sự cân bằng này theo những cách khác nhau:
- Mức cải thiện kỳ vọng (EI): Chấm điểm mức cải thiện dự kiến của một ứng viên so với kết quả tham chiếu.
- Xác suất cải thiện (PI): Chấm điểm xác suất một ứng viên vượt kết quả tham chiếu một ngưỡng xác định.
- Cận tin cậy trên (UCB): Với bài toán cực đại hóa, kết hợp giá trị trung bình dự đoán với phần thưởng cho độ bất định, qua đó dành thêm ưu tiên cho các ứng viên chưa chắc chắn.
Các chiến lược thu nhận này có chi phí đánh giá thấp hơn nhiều so với huấn luyện model hoặc thực hiện thử nghiệm thực tế. Việc tối ưu hóa các chiến lược này định hướng cho lần đánh giá tốn kém tiếp theo.
Ứng dụng trong machine learning và thị giác máy tính#
Tối ưu hóa Bayes đặc biệt hữu ích khi mỗi lần đánh giá tốn nhiều thời gian và không gian tìm kiếm có số lượng biến quan trọng ở mức vừa phải. Các ứng dụng đã được thiết lập bao gồm thiết kế kỹ thuật, thử nghiệm vật liệu và tinh chỉnh bộ điều khiển trong học tăng cường.
Trong thị giác máy tính, phương pháp này chọn các thiết lập huấn luyện cho mạng nơ-ron tích chập. Jasper Snoek, Hugo Larochelle và Ryan P. Adams đã minh họa ứng dụng này trong thuật toán tối ưu hóa Bayes thực tiễn năm 2012, đồng thời tinh chỉnh máy vector hỗ trợ có cấu trúc và model chủ đề.
Ultralytics YOLO cung cấp khả năng tìm kiếm Bayes thông qua tích hợp Ray Tune: đặt use_ray=True và search_alg="bayesopt" để chọn tối ưu hóa Bayes cho siêu tham số huấn luyện. Với phát hiện đối tượng bằng YOLO26, quá trình tìm kiếm tối đa hóa chỉ số độ chính xác trung bình trung bình mặc định của tác vụ.
Các phương pháp liên quan và Optuna#
Tìm kiếm lưới đánh giá một tập hợp tổ hợp đã xác định trước, trong khi tìm kiếm ngẫu nhiên lấy mẫu các cấu hình một cách độc lập. Tối ưu hóa Bayes dùng kết quả trước đó để định hướng các lựa chọn tiếp theo. Gradient descent cập nhật tham số bằng đạo hàm; tối ưu hóa Bayes xử lý các hàm mục tiêu hộp đen tốn kém thông qua các lần đánh giá và một model thay thế.
Các thuật toán lấy mẫu của Optuna bao gồm tối ưu hóa Bayes bằng Gaussian process, lấy mẫu ngẫu nhiên và Ước lượng Parzen có cấu trúc cây (TPE). TPE mô hình hóa các phân phối tham số gắn với kết quả tốt hơn và kém hơn, sau đó ưu tiên các ứng viên có tỷ lệ giữa hai mật độ đó lớn hơn. Optuna là framework tối ưu hóa; sampler được chọn sẽ quyết định chiến lược tìm kiếm.
Ví dụ bằng Python#
Cài đặt bayesian-optimization bằng pip install bayesian-optimization. Ví dụ này sử dụng hàm mục tiêu và các giới hạn từ ví dụ tối ưu hóa nhập môn của package:
from bayes_opt import BayesianOptimization
def objective(x, y):
"""Return the objective value to maximize."""
return -(x**2) - (y - 1) ** 2 + 1
optimizer = BayesianOptimization(
f=objective,
pbounds={"x": (2, 4), "y": (-3, 3)},
random_state=1,
verbose=0,
)
optimizer.maximize(init_points=2, n_iter=15)
best = optimizer.max
print(f"Best objective: {best['target']:.4f}")Kết quả hiển thị hàm mục tiêu tốt nhất được đo sau hai lần đánh giá ngẫu nhiên và mười lăm lần đánh giá được định hướng bằng hàm thu nhận. Trong các giới hạn này, giá trị cực đại chính xác là -3 tại x=2, y=1.










