Tại sao các thuật toán tối ưu hóa được xác định theo các vấn đề tối ưu hóa khác?


23

Tôi đang thực hiện một số nghiên cứu về các kỹ thuật tối ưu hóa cho máy học, nhưng tôi ngạc nhiên khi thấy số lượng lớn các thuật toán tối ưu hóa được xác định theo các vấn đề tối ưu hóa khác. Tôi minh họa một số ví dụ sau đây.

Ví dụ: https://arxiv.org/pdf/1511.05133v1.pdf

nhập mô tả hình ảnh ở đây

Mọi thứ đều đẹp và tốt nhưng sau đó có trong bản cập nhật .... vậy thuật toán giải quyết cho gì? Chúng tôi không biết, và nó không nói. Vì vậy, kỳ diệu là chúng ta phải giải quyết một vấn đề tối ưu hóa khác là tìm vectơ thu nhỏ để sản phẩm bên trong ở mức tối thiểu - làm thế nào để thực hiện được điều này?argminxzk+1argmin

Lấy một ví dụ khác: https://arxiv.org/pdf/1609.05713v1.pdf

nhập mô tả hình ảnh ở đây

Mọi thứ đều ổn và tốt cho đến khi bạn nhấn toán tử proximal đó ở giữa thuật toán, và định nghĩa của toán tử đó là gì?

Bùng nổ:nhập mô tả hình ảnh ở đây

Bây giờ hãy cầu nguyện, làm thế nào để chúng ta giải quyết trong toán tử gần? Nó không nói. Trong mọi trường hợp, vấn đề tối ưu hóa đó có vẻ khó (NP HARD) tùy thuộc vào là gì .argminxf

Ai đó có thể làm ơn khai sáng cho tôi như:

  1. Tại sao có nhiều thuật toán tối ưu hóa được định nghĩa theo các vấn đề tối ưu hóa khác?

(Đây không phải là một số vấn đề về gà và trứng: để giải quyết vấn đề 1, bạn cần giải quyết vấn đề 2, sử dụng phương pháp giải quyết vấn đề 3, dựa vào giải quyết vấn đề ....)

  1. Làm thế nào để bạn giải quyết các vấn đề tối ưu hóa được nhúng trong các thuật toán này? Ví dụ: , làm thế nào để tìm bộ giảm thiểu ở phía bên tay phải?xk+1= =argminxchức năng mất thực sự phức tạp

  2. Cuối cùng, tôi bối rối về cách các thuật toán này có thể được thực hiện bằng số. Tôi nhận ra rằng việc thêm và nhân vectơ là các thao tác dễ dàng trong python, nhưng còn , có một số hàm (tập lệnh) kỳ diệu cung cấp cho bạn bộ thu nhỏ cho hàm không?argminx

(Bounty: bất cứ ai cũng có thể tham khảo một bài báo mà các tác giả làm rõ thuật toán cho vấn đề phụ được nhúng trong thuật toán tối ưu hóa mức cao?)


Điều này có thể có liên quan.
GeoMatt22

1
Tôi cảm thấy câu hỏi của bạn sẽ tốt hơn nhiều nếu bạn nhấn mạnh vào các vấn đề phụ có khả năng NP-thay vì chỉ tồn tại ở chúng.
Mehrdad

Rất tiếc ... "Độ cứng NP" nên nói "NP-hard" trong bình luận cuối cùng của tôi.
Mehrdad

Xem Chỉnh sửa 2 cho câu trả lời của tôi cung cấp tham chiếu \, như được yêu cầu trong yêu cầu tiền thưởng.
Mark L. Stone

Câu trả lời:


27

Bạn đang xem biểu đồ dòng thuật toán cấp cao nhất. Một số bước riêng lẻ trong biểu đồ luồng có thể xứng đáng với biểu đồ luồng chi tiết của riêng chúng. Tuy nhiên, trong các bài báo được xuất bản nhấn mạnh vào sự ngắn gọn, nhiều chi tiết thường bị bỏ qua. Chi tiết cho các vấn đề tối ưu hóa bên trong tiêu chuẩn, được coi là "mũ cũ" có thể không được cung cấp ở tất cả.

Ý tưởng chung là các thuật toán tối ưu hóa có thể yêu cầu giải pháp cho một loạt các vấn đề tối ưu hóa nói chung dễ dàng hơn. Không có gì lạ khi có 3 hoặc thậm chí 4 cấp thuật toán tối ưu hóa trong thuật toán cấp cao nhất, mặc dù một số trong số chúng là nội bộ cho tối ưu hóa tiêu chuẩn.

Ngay cả việc quyết định khi nào chấm dứt một thuật toán (ở một trong các mức phân cấp) có thể yêu cầu giải quyết vấn đề tối ưu hóa bên. Ví dụ, một vấn đề bình phương tuyến tính tối thiểu không bị ràng buộc tiêu cực có thể được giải quyết để xác định hệ số nhân Lagrange được sử dụng để đánh giá điểm tối ưu KKT được sử dụng để quyết định khi nào cần khai báo độ tối ưu.

Nếu vấn đề tối ưu hóa là ngẫu nhiên hoặc động, có thể có các mức tối ưu hóa phân cấp bổ sung.

Đây là một ví dụ. Lập trình bậc hai tuần tự (SQP). Một vấn đề tối ưu hóa ban đầu được xử lý bằng cách lặp đi lặp lại các điều kiện tối ưu Karush - Kuhn - Tucker, bắt đầu từ điểm ban đầu với mục tiêu là xấp xỉ bậc hai của Lagrangian của vấn đề và tuyến tính hóa các ràng buộc. Chương trình bậc hai kết quả (QP) được giải quyết. QP đã được giải quyết có các ràng buộc vùng tin cậy hoặc tìm kiếm dòng được thực hiện từ lần lặp hiện tại đến giải pháp của QP, đây là một vấn đề tối ưu hóa, để tìm ra lần lặp tiếp theo. Nếu phương pháp Quasi-Newton đang được sử dụng, một vấn đề tối ưu hóa phải được giải quyết để xác định bản cập nhật Quasi-Newton cho Hessian của Lagrangian - thông thường đây là tối ưu hóa dạng đóng bằng các công thức dạng đóng như BFGS hoặc SR1, nhưng nó có thể là một tối ưu hóa số. Sau đó, QP mới được giải quyết, v.v ... Nếu QP không bao giờ khả thi, bao gồm cả để bắt đầu, một vấn đề tối ưu hóa được giải quyết để tìm ra điểm khả thi. Trong khi đó, có thể có một hoặc hai cấp độ của các vấn đề tối ưu hóa nội bộ được gọi bên trong bộ giải QP. Vào cuối mỗi lần lặp, một bài toán bình phương tuyến tính nhỏ nhất không âm có thể được giải để xác định điểm tối ưu. V.v.

Nếu đây là một vấn đề số nguyên hỗn hợp, thì toàn bộ shebang này có thể được thực hiện tại mỗi nút phân nhánh, như là một phần của thuật toán cấp cao hơn. Tương tự như vậy đối với trình tối ưu hóa toàn cầu - một vấn đề tối ưu hóa cục bộ được sử dụng để tạo giới hạn trên cho giải pháp tối ưu toàn cầu, sau đó nới lỏng một số ràng buộc được thực hiện để tạo ra vấn đề tối ưu hóa ràng buộc thấp hơn. Hàng ngàn hoặc thậm chí hàng triệu vấn đề tối ưu hóa "dễ dàng" từ chi nhánh và ràng buộc có thể được giải quyết để giải quyết một vấn đề tối ưu hóa số nguyên hoặc tối ưu hỗn hợp.

Điều này sẽ bắt đầu để cung cấp cho bạn một ý tưởng.

Chỉnh sửa : Trả lời câu hỏi về con gà và quả trứng được thêm vào câu hỏi sau câu trả lời của tôi: Nếu có vấn đề về con gà và quả trứng, thì đó không phải là một thuật toán thực tế được xác định rõ. Trong các ví dụ tôi đã đưa ra, không có thịt gà và trứng. Các bước thuật toán cấp cao hơn gọi các bộ giải tối ưu hóa, được xác định hoặc đã tồn tại. SQP lặp đi lặp lại gọi một bộ giải QP để giải các bài toán con, nhưng bộ giải QP giải một bài toán dễ hơn, QP, hơn bài toán ban đầu. Nếu có một thuật toán tối ưu hóa toàn cầu ở cấp độ cao hơn nữa, nó có thể gọi một bộ giải SQP để giải các bài toán con tối ưu hóa phi tuyến cục bộ, và lần lượt bộ giải SQP gọi một bộ giải QP để giải các bài toán con QP. Không có chiicken và trứng.

Lưu ý: Cơ hội tối ưu hóa là "ở mọi nơi". Các chuyên gia tối ưu hóa, chẳng hạn như những chuyên gia phát triển thuật toán tối ưu hóa, có nhiều khả năng nhìn thấy các cơ hội tối ưu hóa này và xem chúng như vậy, so với Joe hoặc Jane trung bình. Và có khuynh hướng thuật toán, khá tự nhiên họ thấy cơ hội xây dựng các thuật toán tối ưu hóa từ các thuật toán tối ưu hóa cấp thấp hơn. Xây dựng và giải pháp cho các vấn đề tối ưu hóa đóng vai trò là các khối xây dựng cho các thuật toán tối ưu hóa (mức cao hơn) khác.

Chỉnh sửa 2 : Đáp lại yêu cầu tiền thưởng vừa được OP thêm vào. Bài viết mô tả về trình tối ưu hóa phi tuyến SNP SNOPT https://web.stanford.edu/group/SOL/reports/snopt.pdf đề cập cụ thể đến bộ giải QOP SQOPT, được ghi lại riêng, như được sử dụng để giải các bài toán con QP trong SNOPT.


2

Tôi thích câu trả lời của Mark, nhưng mặc dù tôi sẽ đề cập đến "Mô phỏng luyện kim", về cơ bản có thể chạy trên bất kỳ thuật toán tối ưu hóa nào. Ở mức cao, nó hoạt động như thế này:

Nó có một tham số "nhiệt độ" bắt đầu nóng. Trong khi nóng, nó thường xuyên bước đi và (và xa hơn) từ nơi thuật toán tối ưu hóa cấp dưới chỉ ra. Khi nó nguội đi, nó tuân theo lời khuyên của thuật toán cấp dưới chặt chẽ hơn, và ở mức 0, nó tuân theo bất cứ điều gì tối ưu cục bộ mà sau đó nó đã kết thúc.

Trực giác là nó sẽ tìm kiếm không gian rộng rãi ngay từ đầu, tìm kiếm "nơi tốt hơn" để tìm kiếm tối ưu.

Chúng tôi biết không có giải pháp chung thực sự cho vấn đề tối ưu cục bộ / toàn cầu. Mọi thuật toán sẽ có điểm mù của nó, nhưng các giống lai như thế này dường như cho kết quả tốt hơn trong rất nhiều trường hợp.


Thể loại "thuật toán meta" này đôi khi được gọi là siêu hình .
GeoMatt22

@ Địa lý Tương tự, một thuật toán heuristic là bất kỳ thuật toán nào, hoặc thiếu nó, không được đảm bảo để không giải quyết chính xác vấn đề cần giải quyết.
Mark L. Stone

Giống như " dừng đồng hồ " heuristic? Các Neumaier (2004) phân loại được mô tả ở đây có vẻ hợp lý.
GeoMatt22

+1 để đề cập đến tối ưu hóa lai hoặc heuristic meta. Chúng hoạt động rất tốt trong thế giới thực so với tối ưu hóa dựa trên đạo hàm, rất tốt về lý thuyết và giấy tờ nhưng không tốt trong việc giải quyết hàm mục tiêu phức tạp đa phương thức trong thế giới thực mà bạn thường gặp trong tối ưu hóa kỹ thuật.
dự báo

@forecaster có nhiều cách tiếp cận khác nhau, tùy thuộc vào vấn đề. Tôi sẽ cẩn thận giảm giá "tối ưu hóa dựa trên phái sinh" quá mạnh, vì trong nhiều ứng dụng trong thế giới thực như học sâu và tối ưu hóa dựa trên PDE, chúng có thể khá thành công. (Một số cuộc thảo luận ở đây , bao gồm các lựa chọn thay thế không có phái sinh.)
GeoMatt22

2

Tôi nghĩ rằng một tài liệu tham khảo mà tôi đáp ứng mong muốn của bạn là ở đây . Đến phần 4 - Tối ưu hóa trong tính toán Bayes hiện đại.

TL; DR - họ thảo luận về các phương pháp gần. Một trong những lợi thế của các phương pháp như vậy là chia nhỏ - bạn có thể tìm ra giải pháp bằng cách tối ưu hóa các bài toán con dễ dàng hơn. Rất nhiều lần (hoặc, ít nhất, đôi khi) bạn có thể tìm thấy trong tài liệu một thuật toán chuyên dụng để đánh giá một hàm gần nhất định. Trong ví dụ của họ, họ làm khử nhiễu hình ảnh. Một trong những bước là thuật toán rất thành công và được trích dẫn nhiều bởi Chambolle.


2

Điều này khá phổ biến trong nhiều bài viết tối ưu hóa và nó phải liên quan đến tính tổng quát. Các tác giả thường viết các thuật toán theo cách này để cho thấy rằng chúng hoạt động về mặt kỹ thuật cho bất kỳ chức năng f. Tuy nhiên, trong thực tế, chúng chỉ hữu ích cho các chức năng rất cụ thể trong đó các vấn đề phụ này có thể được giải quyết một cách hiệu quả.

Ví dụ, và bây giờ tôi chỉ nói về thuật toán thứ hai, bất cứ khi nào bạn thấy một toán tử gần (mà như bạn đã lưu ý một vấn đề tối ưu hóa khác thực sự rất khó giải quyết) thường ẩn rằng nó có một giải pháp dạng đóng trong để thuật toán được hiệu quả. Điều này là như vậy đối với nhiều chức năng quan tâm trong học máy như định mức l1, định mức nhóm, v.v. Trong những trường hợp đó, bạn sẽ thay thế các vấn đề phụ cho công thức rõ ràng của toán tử proximal và không cần một thuật toán để giải quyết vấn đề đó.

Về lý do tại sao chúng được viết theo cách này chỉ cần lưu ý rằng nếu bạn đã đưa ra một chức năng khác và muốn áp dụng thuật toán đó, bạn sẽ kiểm tra, trước tiên, nếu proximal có giải pháp dạng đóng hoặc có thể được tính toán hiệu quả. Trong trường hợp đó, bạn chỉ cần cắm công thức vào thuật toán và bạn đã sẵn sàng để đi. Như đã đề cập trước đây, điều này đảm bảo rằng thuật toán đủ chung để có thể áp dụng cho hàm tương lai có thể xuất hiện sau khi thuật toán được xuất bản lần đầu tiên, cùng với các biểu thức gần nhất của thuật toán hiệu quả để tính toán chúng.

Cuối cùng, làm ví dụ, lấy giấy gốc của thuật toán FISTA cổ điển. Chúng rút ra thuật toán cho hai hàm rất cụ thể, mất bình phương và l1-Norm. Tuy nhiên, họ lưu ý rằng nó có thể được áp dụng không có bất kỳ chức năng nào miễn là chúng đáp ứng một số điều kiện tiên quyết, một trong số đó là đầu gần của chính quy có thể được tính toán một cách hiệu quả. Đây không phải là một yêu cầu lý thuyết mà là một yêu cầu thực tế.

Sự đồng bộ hóa này không chỉ làm cho thuật toán chung mà còn dễ phân tích hơn: miễn là tồn tại các thuật toán cho các vấn đề phụ có thuộc tính này, thì thuật toán được đề xuất sẽ có tốc độ hội tụ này hoặc bất cứ điều gì.

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.