Bình phương tối thiểu phi tuyến với các ràng buộc hộp


10

Các cách được đề xuất để thực hiện bình phương tối thiểu phi tuyến, min , với các ràng buộc hộp ? Dường như với tôi (những kẻ ngốc vội vã) rằng người ta có thể làm cho các ràng buộc hộp trở thành bậc hai và giảm thiểu \ sum_i err_i (p) ^ 2 + C * \ sum_j tub (p_j, lo_j, hi_j) ^ 2 trong đó tub (x, lo, hi) là "hàm tub" có hình dạng \ _ _ _ /, max (lo - x, 0, x - hi) . Liệu điều này làm việc trong lý thuyết, làm việc trong thực tế? (Dường như có nhiều bài viết lý thuyết về NLS +, nhưng mối quan tâm của tôi là thực tế - các trường hợp thử nghiệm thực tế hoặc thực tế sẽ giúp tôi lựa chọn trong số các phương pháp.) l o j < = p j < = h i j Σ i e r r i ( p ) 2 + C * Σ j t u b ( p j , l o j , h i j ) 2 t u b ( x , l h ierri(p)2loj<=pj<=hij

ierri(p)2+Cjtub(pj,loj,hij)2
tub(x,lo,hi)max(lox,0,xhi)


(Các chuyên gia, vui lòng thêm thẻ: "bình phương nhỏ nhất"?)


5
Thay thế các ràng buộc nghiêm ngặt bằng các hàm hình phạt là một kỹ thuật phổ biến trong tối ưu hóa số. Có vẻ như những gì bạn đang đề xuất là một hình thức cụ thể của sự thay thế đó. Bạn có thể đọc tất cả về các kỹ thuật tương tự, ví dụ, tại đây: stanford.edu/~boyd/cvxbook
David Ketcheson

Bạn có thể sử dụng tham số thích hợp của p để đáp ứng các ràng buộc của hộp (ví dụ: pi=min(max(loj,pj),hij) . Đối với các bộ giải NLS, Levenberg-Marquest hầu hết thời gian là tốt , có lẽ kết hợp với một trình tối ưu hóa ngẫu nhiên toàn cầu như mô phỏng ủ. Một số hộp công cụ thương mại dường như cũng cung cấp các phương pháp vùng tin cậy dựa trên các mô hình bề mặt phản ứng thích ứng, trông giống như một sự khái quát hợp lý của Levenberg-Marquest với tôi.
Thomas Klimpel

Câu trả lời:


11

Thêm các điều khoản phạt bình phương để thoát khỏi các ràng buộc là một cách tiếp cận đơn giản chỉ đưa ra độ chính xác của đơn hàng 1 / yếu tố hình phạt. Do đó, nó không được khuyến nghị cho độ chính xác cao trừ khi bạn để hình phạt đến vô cùng trong quá trình tính toán. Nhưng một yếu tố hình phạt cao làm cho Hessian rất có điều kiện, điều này giới hạn tổng độ chính xác có thể đạt được mà không tính đến các ràng buộc rõ ràng.

Lưu ý rằng những hạn chế ràng buộc là nhiều dễ dàng hơn để xử lý hơn những hạn chế nói chung, từ đâu mà họ hầu như không bao giờ chuyển đổi sang hình phạt.

Bộ giải L-BFGS-B (được sử dụng với lịch sử khoảng 5 chiều) thường giải quyết các vấn đề ràng buộc bị ràng buộc rất đáng tin cậy và nhanh chóng ở cả hai chiều cao thấp. Các ngoại lệ là sự hiểu sai về các vấn đề có thể trở nên rất đơn giản so với các giải pháp, nơi dễ bị mắc kẹt với một phương pháp gốc.

Chúng tôi đã thực hiện nhiều thử nghiệm trên các chức năng rất đa dạng ở nhiều chiều khác nhau, với nhiều bộ giải khác nhau, vì chúng tôi cần một bộ giải ràng buộc ràng buộc rất mạnh như một phần của phần mềm tối ưu hóa toàn cầu của chúng tôi. L-BFGS-B rõ ràng nổi bật như một phương pháp có mục đích chung, mặc dù tất nhiên về các vấn đề sme, các bộ giải khác thực hiện tốt hơn đáng kể. Do đó, tôi khuyên dùng L-BFGS-B là lựa chọn đầu tiên và sẽ thử các kỹ thuật thay thế chỉ trong trường hợp L-BFGS-B xử lý kém loại vấn đề cụ thể của bạn.


L-BFGS có sẵn trong IPOPT, tôi đã sửa đổi câu trả lời của mình.
Ali

5

Tôi chỉ đơn giản là sử dụng IPOPT bộ giải NLP đa năng . Nó là người giải quyết mạnh mẽ nhất trong số những người tôi đã thử.

Trừ khi bạn có một số yêu cầu rất đặc biệt, không có lý do gì bạn nên nhấn mạnh vào một bộ giải cụ thể vấn đề chỉ hoạt động cho NLS với các ràng buộc hộp.

Một sự thay đổi trong các yêu cầu (ví dụ: thêm các ràng buộc phi tuyến) sẽ gây ra một vấn đề đau đầu với người giải quyết vấn đề cụ thể. Bạn sẽ không gặp vấn đề như vậy nếu bạn sử dụng IPOPT cho mục đích chung.


CẬP NHẬT: Bạn có thể thử L-BFGS với IPOPT , xem trong Quasi-Newton trong tài liệu.

Thủ tục giải pháp có thể trở nên nhanh hơn với chi phí làm hỏng sự mạnh mẽ đáng chú ý của IPOPT. Theo tôi , sử dụng các dẫn xuất chính xác nếu chúng có sẵn. Tôi sẽ bắt đầu rối tung với các xấp xỉ (như L-BFGS) chỉ khi tôi gặp vấn đề về hiệu suất.


Tôi không biết IPOPT hoạt động tốt như thế nào, nhưng đề xuất của bạn nhắc nhở tôi về những tuyên bố tương tự bởi những người ủng hộ phương pháp đơn giản xuống dốc. Bởi vì bình phương tối thiểu phi tuyến là một lớp vấn đề phổ biến, việc từ chối hoàn toàn sử dụng một trong những bộ giải NLS hiện tại có vẻ hơi đáng ngờ đối với tôi.
Thomas Klimpel

@ThomasKlimpel Chà, denis nên cung cấp cho chúng tôi nhiều chi tiết hơn, sau đó chúng tôi có thể giúp anh ấy chọn người giải quyết phù hợp. :) Hoặc anh ta có thể tự kiểm tra và tìm ra cái nào phù hợp với nhu cầu của mình nhất. IPOPT dường như là một người giải quyết tốt để bắt đầu.
Ali

@Ali, bạn có thể chỉ ra một số "trường hợp thử nghiệm thực tế hoặc thực tế" không?
chối

@denis Tôi có thể nhưng tôi không có ý định làm vậy, nó sẽ ném bạn ra khỏi đường đua. Điều duy nhất quan trọng là cách IPOPT xử lý vấn đề của bạn . Trừ khi bạn có một số yêu cầu rất đặc biệt, nó sẽ giải quyết nó một cách độc đáo. IPOPT có giao diện với MATLAB, C ++, C, Fortran, R, AMPL, CUTEr. Chọn một giao diện và kiểm tra những gì xảy ra với vấn đề của bạn :) Kiểm tra một người giải quyết vấn đề cụ thể cũng sẽ không dễ dàng hơn.
Ali

@Thomas Klimpel, đoán tôi không rõ: Tôi không từ chối, không hỏi về các gói, nhưng hỏi về hiểu biết hoặc trường hợp thử nghiệm: tại sao phương pháp tầm thường này có thể không hoạt động tốt?
chối

1

Gói CR minpack.lm CRAN cung cấp triển khai Levenberg-Marquest với các ràng buộc hộp.

Nhìn chung, Levenberg-Marquest phù hợp hơn nhiều so với L-BFGS-B cho các vấn đề bình phương nhỏ nhất. Nó sẽ hội tụ (nhiều) tốt hơn về các vấn đề thách thức. Nó cũng sẽ nhanh hơn nhiều so với IPOPT cho mục đích chung, vì nó được điều chỉnh cho các bài toán bình phương nhỏ nhất phi tuyến tính.

Gói R chọn cách tiếp cận chiếu rất đơn giản để thực thi các ràng buộc (xem mã nguồn ). Tùy thuộc vào việc triển khai LM bạn đang sử dụng, có thể bao gồm đơn giản.

Bây giờ, gợi ý trong các nhận xét về việc sử dụng một phép biến đổi, (ví dụ như một phép biến đổi sin như trong scipy) cũng là một cách thay thế tốt, đơn giản để chuyển đổi thuật toán LM không bị ràng buộc của bạn thành một thuật toán bị ràng buộc. Bạn cũng sẽ cần bao gồm sự biến đổi trong Jacobian nếu Jacobian là phân tích.


0

(Năm sau) hai bộ giải xử lý các ràng buộc hộp:

  • Scipy less_squares có 3 phương thức, với tài liệu mở rộng:

    1. 'trf': Vùng tin cậy Phản chiếu
    2. 'hộp chó'
    3. 'lm': trình bao bọc kế thừa cho MINPACK, không có ràng buộc hộp.
  • ngũ cốc

1
Người Scipy nói rõ ràng rằng thuật toán Levenberg-Marquest không thể xử lý các ràng buộc hộp.
tholy
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.