The devil is in the details, hoá ra ứng dụng Bayesian Optimization trong thực tế khá là phức tạp. Vậy nên bài này sẽ ôn lại kiến thức về phương pháp Monte Carlo và MCMC. Vẫn chưa biết đến khi nào mới có thể viết một bài tổng hợp về Bayesian Optimization.
1. Luật mạnh số lớn (Strong law of large numbers – SLLN)
Luật mạnh số lớn rất đơn giản: khi N càng lớn thì trung bình mẫu hội tụ gần như chắc chắn (almost surely converge) về kì vọng:
khi
với điều kiện là các mẫu phải là i.i.d.
Mặt khác, ta biết rằng nếu biến ngẫu nhiên tuân theo phân phối xác suất
, và
là một hàm theo
, thì kì vọng của
được tính là:
Vậy nên theo luật mạnh số lớn, khi số mẫu càng lớn thì giá trị trung bình mẫu của sẽ hội tụ về kì vọng:
khi
(1)
Như vậy khi tích phân ở bên phải không tính được, ta có thể tính xấp xỉ nó bằng cách lấy thật nhiều mẫu và tính biểu thức ở bên trái. Đây là tư tưởng cơ bản của phương pháp Monte Carlo, như sẽ trình bày sau đây.
2. Phương pháp Monte Carlo: Importance Sampling
Hầu hết các mô hình máy học có giám sát (supervised ML models) đều cố gắng mô hình hoá xác suất likelihood , trong đó
là các tham số trong mô hình. Như trong bài trước, ta biết rằng trong cách tiếp cận Bayesian thì tham số
tuân theo phân phối tiền nghiệm
, và ta sẽ quan tâm đến xác suất hậu nghiệm (posterior):
(2)
Vấn đề là
(3)
là tích phân trên toàn miền xác định của , và nói chung là khó chịu. Vậy nên ta không thể tính chính xác xác suất hậu nghiệm này được.
Cái mẹo chủ yếu của phương pháp Monte Carlo là ta sẽ nhân và chia công thức (3) cho một đại lượng :
Để ý rằng nếu là phân phối của
thì tích phân ở trên chính là kì vọng của
.
Bây giờ nếu ta lấy mẫu , thì theo luật mạnh số lớn (1), khi
càng lớn thì trung bình mẫu hội tụ về kì vọng:
khi
(4)
Với công thức này, ta có thể lấy mẫu để tính xác suất hậu nghiệm của tham số trong (2).
Tuy nhiên trong thực tế ta hay phải làm prediction, tức là cho tập huấn luyện và một mẫu input
, ta muốn mô hình hoá xác suất
. Ta viết như sau:
Trong đó .
Áp dụng (4) ta có:
với .
Vì là phân phối xác suất do ta “bịa” ra, ta sẽ chọn
sao cho dễ lấy mẫu. Như vậy ta có thể lấy thật nhiều mẫu
, sau đó dùng công thức trên để xấp xỉ xác suất hậu nghiệm.
Điều tricky là để luật mạnh số lớn áp dụng được thì các mẫu phải là i.i.d. Hơn nữa nếu
càng gần
thì chất lượng lấy mẫu sẽ càng cao.
3. Markov Chain Monte Carlo
Ý tưởng chính là ta sẽ “cơ cấu” một chuỗi Markov để lấy mẫu từ , đồng thời bằng cách đi theo chuỗi Markov ta sẽ navigate qua tất cả các region quan trọng của phân phối này.
Hai thuật toán quan trọng của MCMC là Metropolis-Hasting và Gibbs sampling, sẽ được trình bày trong một bài khác, khi có dịp.
