Phương pháp tối ưu hóa xem xét chi phí thời gian khác nhau của hàm mục tiêu cho các tham số khác nhau


9

Tôi đang làm việc để cải thiện quá trình tối ưu hóa của một số phần mềm mô hình nhân khẩu học để nó có thể phù hợp hơn với các mô hình nhân khẩu học với dữ liệu. Chúng tôi muốn giảm thời gian tối ưu hóa.

Thời gian cần thiết để đánh giá hàm mục tiêu của chúng tôi thay đổi rất nhiều, tùy thuộc vào các giá trị đầu vào. Mối quan hệ giữa thời gian để đánh giá hàm mục tiêu và đầu vào được biết đến. Tôi tự hỏi nếu có bất kỳ phương pháp tối ưu hóa nào xem xét chi phí thời gian tương đối của hàm mục tiêu khi chọn điểm nào để đánh giá.

Cảm ơn!

Cập nhật:

Như Paul yêu cầu, đây là một số tính năng nổi bật của chức năng mục tiêu cụ thể này:

  1. Số lượng tham số vừa phải (~ 12ish)
  2. Vấn đề của chúng ta là không lồi, hoặc ít nhất là có những "đường vân" hẹp và phẳng trong bề mặt hàm mục tiêu. Ngay bây giờ chúng tôi đang xử lý vấn đề này bằng cách sử dụng nhiều tối ưu hóa từ các điểm khác nhau, nhưng chúng tôi muốn làm tốt hơn.
  3. Hàm mục tiêu khá trơn tru, mặc dù chúng ta chỉ có thể tính xấp xỉ sai phân hữu hạn cho các đạo hàm.
  4. Chi phí đánh giá cũng là một chức năng trơn tru của các giá trị tham số và nó hoàn toàn có thể dự đoán được. đại khái, đối với mỗi tham số, chi phí để đánh giá là cao ở một đầu của phạm vi và thấp ở đầu kia. Vì vậy, chúng tôi có các vùng lớn của các bộ tham số đắt để đánh giá, nhưng chúng tôi biết chúng ở đâu.

2
Xin chào Kate, và chào mừng bạn đến với Scicomp! Bạn có thể chia sẻ một số đặc điểm của chức năng mục tiêu của bạn? Điều đó có thể giúp xác định một phương pháp cụ thể cho trường hợp của bạn.
Paul

Tôi chưa bao giờ nghe thấy bất kỳ thuật toán nào xem xét chi phí đánh giá hàm mục tiêu (hoặc bất kỳ ràng buộc nào) một cách rõ ràng khi chọn điểm để đánh giá. Tuy nhiên, tồn tại các thuật toán tối ưu hóa không có đạo hàm cố gắng chọn khéo léo điểm tiếp theo được đánh giá bởi trình tối ưu hóa. Tiền đề là số lượng đánh giá chức năng nên được giảm thiểu nếu đánh giá chức năng là đắt tiền. Tuy nhiên, tôi không chắc chắn rằng việc sử dụng thuật toán không có đạo hàm sẽ giúp ích cho trường hợp sử dụng của bạn.
Geoff Oxberry

Xin chào @Paul, cảm ơn vì sự chào đón! Tôi rất vui mừng khi tìm thấy cộng đồng này. Tôi đã thêm các đặc điểm. Hãy cho tôi biết nếu có các tính năng khác quan trọng hơn.
nova

Tôi có quyền suy ra từ số 2 của bạn rằng bạn quan tâm đến công cụ giảm thiểu toàn cầu không? Hay bạn hài lòng với mức giảm "đủ"? Tối ưu hóa toàn cầu là một lĩnh vực của riêng mình và câu hỏi để đạt được một giải pháp toàn cầu (nếu có tồn tại) có thể hoàn toàn tách biệt với việc tránh các điểm dùng thử đắt tiền.
Dominique

Dominique, chúng tôi đã cho rằng một trình tối ưu hóa toàn cầu sẽ quá chậm cho vấn đề của chúng tôi, vì vậy chúng tôi hài lòng với các trình tối ưu hóa cục bộ. Tối ưu hóa toàn cầu là một cái gì đó chúng tôi dự định xem xét trong tương lai.
nova

Câu trả lời:


4

Một cách tiếp cận phổ biến để xử lý các hàm mục tiêu đắt tiền là xây dựng (ví dụ mô hình hồi quy) một "mô hình bề mặt đáp ứng" gần đúng với hàm mục tiêu ban đầu, sau đó tối ưu hóa trên bề mặt phản hồi đó thay vì làm việc với hàm ban đầu. Trong thực tế, các bề mặt phản hồi thường chỉ là các mô hình bậc hai phù hợp với hồi quy, do đó, việc tìm tối thiểu bề mặt phản hồi trở thành một vấn đề tối ưu hóa rất dễ dàng.

Bạn chưa nói gì về độ mịn hoặc độ lồi của hàm mục tiêu. Nếu chức năng là không đặc biệt hoặc không giao thoa, thì điều này rõ ràng trở nên khó khăn hơn nhiều.

Bạn cũng chưa nói gì về việc các điểm đắt tiền nằm trong không gian tham số của bạn. Nếu chúng được phân phối ngẫu nhiên trong không gian tham số, thì bạn có thể sử dụng thiết kế các kỹ thuật thử nghiệm để xây dựng mô hình bề mặt phản hồi của mình trong khi tránh các điểm đắt tiền. Nếu có các vùng lớn hơn của không gian tham số nơi các đánh giá đắt tiền, thì bạn có thể cố gắng giảm thiểu số lượng điểm trong các khu vực mà bạn sử dụng để xây dựng mô hình bề mặt phản hồi. Tất nhiên, nếu tối ưu của bạn nằm ở giữa một khu vực như vậy, bạn sẽ phải cam chịu đánh giá các chức năng trong khu vực đắt tiền.


1

Tôi không biết các phương pháp cân nhắc cụ thể chi phí tương đối để đánh giá mục tiêu tại các điểm thử nghiệm khác nhau nhưng nếu bạn có thể dự đoán tương đối đáng tin cậy liệu ứng viên có tốn kém để đánh giá hay không, thì tôi có thể đề nghị thử phương pháp trực tiếp . Phương pháp trực tiếp phù hợp trong gia đình của phương pháp không có đạo hàm. Không nhất thiết là sử dụng chúng ngay cả khi bạn nghi ngờ rằng vấn đề của mình khá suôn sẻ vì chúng có thể cung cấp một mức độ linh hoạt mà các phương pháp để tối ưu hóa trơn tru không thể.

Ý tưởng là các phương thức trực tiếp xác định một lưới (phụ thuộc vào lần lặp) về "bước" hiện tại và một bước (phụ thuộc vào lần lặp). Dựa trên bước lưới này, phương pháp xác định các điểm thử nghiệm trên lưới là hàng xóm của vòng lặp hiện tại (chúng nằm trên lưới và ở khoảng cách được xác định bởi bước lưới). Sau đó sẽ tiến hành đánh giá mục tiêu tại các nước láng giềng. Ngay khi một ứng cử viên tốt hơn được tìm thấy, nó sẽ trở thành vòng lặp hiện tại mới. Tùy chọn của bạn, bạn cũng có thể đánh giá tất cả các hàng xóm và chọn tốt nhất.

Trong trường hợp của bạn, có thể là một ý tưởng tốt để đặt hàng xóm dựa trên ước tính của bạn về chi phí đánh giá mục tiêu ở đó. Đánh giá chúng theo thứ tự này và chọn thành công đầu tiên là lần lặp tiếp theo. Theo trực giác, bạn đang ủng hộ các ứng cử viên giá rẻ. Trong các phương pháp trực tiếp, các thứ tự như vậy phù hợp với nó là loại mô hình thay thế , một khái niệm khái quát hóa mô hình bề mặt phản ứng được đề cập bởi Brian.

Đây là một triển khai tuyệt vời của một phương thức trực tiếp (trong C ++): http://www.gerad.ca/nomad/Project/Home.html

Nếu điều đó dường như mang lại kết quả đầy hứa hẹn, xin vui lòng quay lại với tôi và tôi có thể đề xuất các cải tiến khác.

Tôi tin rằng NOMAD cũng có các tính năng để tối ưu hóa toàn cầu (chẳng hạn như đa khởi động mà bạn hiện đang áp dụng) dựa trên khái niệm tìm kiếm lân cận biến .

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.