chi tiết triển khai thực tế của Tối ưu hóa Bayes


8

Tôi đang thực hiện Tối ưu hóa Bayes, theo dõi Snoek, Larochelle và Adams [ http://arxiv.org/pdf/1206.2944.pdf] , sử dụng GPML [ http: //www.gaussian Process.org/gpml/code/matlab / doc /] . Tôi đã triển khai chức năng thu thập Cải thiện được mong đợi được mô tả ở trang 3 và tôi cho rằng tôi chính xác rằng để quyết định nơi truy vấn tiếp theo, mục tiêu của tôi là tôi nên lấy tối đa hóa:x

aEI(x;(xn,yn,θ))

Nhưng tôi dường như không thể tìm thấy hướng dẫn về tập hợp các ứng cử viên để xem xét. Về mặt lý thuyết, tôi muốn tìm x tốt nhất trên toàn bộ miền và bài báo được viết theo cách dường như có thể gợi ý điều này là có thể ("[EI] cũng có dạng đóng theo quy trình Gaussian"). Nhưng như một vấn đề thực tế, tôi cần phải tính toán các phương tiện tiên đoán sau và phương sai ở bất kỳ x * Tôi có thể xem xét trước khi tôi có thể tính toán một E I ( x * ) và trong khi những posteriors có một hình thức khép kín, tôi vẫn cần phải tính toán chúng bằng cách sử đại số ma trận, vì vậy tôi không thể thấy một cách để đi xung quanh chọn một bó x .xxxaEI(x)x

Câu hỏi: phương pháp thực tế nào để chọn tập hợp lớn (trung bình? Nhỏ?) Của ứng viên mà tôi tối đa hóa EI (hoặc bất kỳ chức năng mua lại nào khác)? (Đây có phải trong bài báo ở đâu đó và tôi chỉ bỏ lỡ nó?)x

Hiện tại, tôi chỉ lấy bộ hiện tại của mình , lấy mẫu thay thế 2000 lần và sau đó thêm một số nhiễu Gaussian cho mỗi điểm. Có vẻ ổn, tôi đoán.xi


Tôi chưa đọc bài viết này, nhưng bạn đã xem xét việc lấy mẫu từ miền quan tâm bằng cách sử dụng Thiết kế Hypercube Latin chưa? vi.wikipedia.org/wiki/Latin_hypercube_sampling
RustyStatistician

Một giải pháp thay thế sẽ là chia lưới tên miền (nếu có thể) và sau đó đánh giá mọi điểm trên tên miền có lưới đó.
RustyStatistician

Đây là cả hai gợi ý hợp lý, cảm ơn! Không biết nhiều về hypercubes Latin, nhưng các miền có lưới thông thường có nghĩa là đại số Toeplitz và Kronecker có thể được sử dụng, điều này sẽ làm cho mọi thứ tốt đẹp và hiệu quả ngay cả với một lưới rất lớn.
stackoverflax

Câu trả lời:


6

Các tiêu chuẩn là sử dụng bất kỳ tối ưu hóa toàn cầu mà bạn thích. Vấn đề là bề mặt EI rất đa phương thức và bị ngắt kết nối; tối ưu hóa chức năng mua lại này là một vấn đề không cần thiết trong chính nó.

Một lựa chọn phổ biến mà tôi đã thấy trong các bài báo khác nhau là thuật toán TRỰC TIẾP ; đôi khi tôi đã thấy CMA-ES là một phương pháp tiên tiến trong tối ưu hóa phi tuyến. Theo kinh nghiệm của tôi đối với các hình thức tối ưu hóa khác, MCS ( Tìm kiếm tọa độ đa cấp ) có xu hướng hoạt động tương đối tốt. Bạn có thể tìm thấy một đánh giá về tối ưu hóa toàn cầu miễn phí phái sinh ở đây :

  • Rios và Sahinidis, "Tối ưu hóa miễn phí phái sinh: đánh giá các thuật toán và so sánh triển khai phần mềm", Tạp chí Tối ưu hóa toàn cầu (2013).

Nhân tiện, EI là phân tích vì vậy nếu bạn muốn, bạn cũng có thể tính toán độ dốc của nó để hướng dẫn tối ưu hóa, nhưng điều này là không cần thiết. Một kỹ thuật hiệu quả là trước tiên chạy trình tối ưu hóa toàn cầu để tìm các giải pháp đầy hứa hẹn và sau đó chạy trình tối ưu hóa cục bộ để tinh chỉnh nó (ví dụ: phương pháp quasi-Newton như BFGS, đó là fminunc trong MATLAB; hoặc fmincon nếu bạn có các ràng buộc).

Cuối cùng, nếu tốc độ tối ưu hóa chức năng thu nhận là một yếu tố (không phải là kịch bản BO "truyền thống"), tôi đã tìm thấy kết quả tốt bằng cách bắt đầu với thiết kế Hypercube Latin hoặc thiết kế chuỗi Sobol ngẫu nhiên, sau đó được tinh chỉnh bằng một vài bước của trình tối ưu hóa cục bộ từ điểm tốt nhất; xem thêm @ user777 bình luận. Vì đây không phải là kịch bản BO tiêu chuẩn, tôi không có bất kỳ tài liệu tham khảo cụ thể nào thực sự sử dụng phương pháp này.


Ví dụ về các giấy tờ đề cập đến TRỰC TIẾP hoặc CMA-ES:

  • Calandra, R., Seyfarth, A., Peters, J., & Deisenroth, MP (2015). Tối ưu hóa Bayes cho học tập đi trong sự không chắc chắn. Biên niên sử về Toán học và Trí tuệ nhân tạo, 1-19 ( liên kết ).
  • Mahendran, N., Wang, Z., Hamze, F., & Freitas, ND (2012). MCMC thích ứng với tối ưu hóa Bayes. Trong hội nghị quốc tế về trí tuệ nhân tạo và thống kê (tr. 751-760) ( liên kết ).
  • Gunter, T., Ostern, MA, Garnett, R., Hennig, P., & Roberts, SJ (2014). Lấy mẫu để suy luận trong các mô hình xác suất với phương trình bậc hai Bayes nhanh. Trong những tiến bộ trong hệ thống xử lý thông tin thần kinh (trang 2789-2797) ( liên kết ).

Bạn chỉ có thể google "Tối ưu hóa Bayes" + thuật toán tối ưu hóa toàn cầu mong muốn và bạn sẽ tìm thấy một loạt các bài báo. Ngoài ra, trong hầu hết các bài báo khác về BO, bạn sẽ tìm thấy một câu như :

[...] BO thường yêu cầu trình tối ưu hóa toàn cầu phụ trợ trong mỗi lần lặp để tối ưu hóa chức năng thu nhận. Theo thông lệ trong tài liệu BO, sử dụng RECTangles DIVided (TRỰC TIẾP) để hoàn thành một nhiệm vụ như vậy. Các thuật toán tối ưu hóa toàn cầu khác như CMA-ES cũng có thể được áp dụng.


Đây thực sự là một loại đáng ngạc nhiên đối với tôi! Bạn có thể chỉ cho tôi một bài viết tối ưu hóa Bayes đại diện mà bạn có ý định sử dụng TRỰC TIẾP hoặc CMA-ES không? Cảm ơn.
stackoverflax

Tại sao nó đáng ngạc nhiên? Đây là tiêu chuẩn - bạn sẽ tìm thấy các tài liệu tham khảo về TRỰC TIẾP hoặc các trình tối ưu hóa toàn cầu khác trong hầu hết các bài viết của BO. Nó có lẽ nổi tiếng trong cộng đồng đến nỗi một vài bài báo thậm chí không bận tâm đến việc đề cập - nó chỉ được cấp cho. Tôi đã thêm một vài tài liệu tham khảo trong bình luận chính của tôi ở trên.
lacerbi

Đây không hẳn là một giải pháp tốt , nhưng tôi thấy rằng có thể rẻ hơn khi chỉ đánh giá EI tại một tập hợp các điểm được lấy mẫu bằng Latin Hypercubes trong trường hợp bạn chỉ cần ở gần mức tối thiểu nhưng không nhất thiết phải ở trên nó.
Sycorax nói phục hồi Monica

@ user777: Có, nếu tốc độ bị đe dọa, tôi đã sử dụng cả hai chuỗi ngẫu nhiên LH và Sobol như thiết kế ban đầu (tìm một lợi thế nhỏ với cái sau, nhưng nó có thể phụ thuộc vào vấn đề), và sau đó chạy trình tối ưu hóa cục bộ chẳng hạn như BFGS từ điểm tốt nhất. Tôi sẽ thêm điều này vào bình luận chính.
lacerbi

Một cách để biện minh cho bản chất đặc biệt của phương pháp LHS là việc tìm ra mức tối thiểu của hàm ngẫu nhiên (bề mặt) là không cần thiết bởi vì sai số trong ước tính mức tối thiểu sẽ làm tăng độ chính xác của phút. Đây là một câu trả lời rất tốt, mặc dù. Tôi rất vui vì có người khác ở đây quan tâm đến BO. :-)
Sycorax nói Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.