L-BFGS hoạt động như thế nào?


14

Mục đích của bài viết là tối ưu hóa một số tham số bằng cách tối đa hóa khả năng đăng nhập thường xuyên. Sau đó, họ tính toán các dẫn xuất một phần. Và sau đó các tác giả đề cập rằng họ tối ưu hóa phương trình bằng L-BFGS, một thủ tục chuẩn gần đúng để tối ưu hóa các hàm trơn tru của nhiều biến số (không có thêm chi tiết).

Làm thế nào nó hoạt động ?


3
Giấy gì? Đặt trong liên kết đến giấy Cần một bối cảnh. Đặt các liên kết đến các từ viết tắt, ví dụ L-BFGS VÀ đánh vần chúng: L-BFGS = Bộ nhớ giới hạn Broyden Sĩ FletcherTHER GoldfarbTHER Shanno (BFGS) thuật toán
Carl

1
vi.wikipedia.org/wiki/Lrict-memory_BFGS Có nhiều biến thể, có thể khác nhau rất nhiều về khả năng và hiệu suất.
Mark L. Stone

xin chào, cảm ơn ngài Mark :) tôi sẽ xem xét. Bài viết là cs.stanford.edu/people/jure/pub/circles-tkdd14.pdf (tối ưu hóa phương trình 6)
Abir

Về cơ bản nghĩ về L-BFGS như một cách tìm tối thiểu (cục bộ) của hàm mục tiêu, sử dụng các giá trị hàm mục tiêu và độ dốc của hàm mục tiêu. Mức mô tả đó bao gồm nhiều phương pháp tối ưu hóa ngoài L-BFGS. Bạn có thể đọc thêm về nó trong phần 7.2 của springer.com/us/book/9780387303031 .
Mark L. Stone

1
BFGS là một cách để cố gắng có được phương thức đặt hàng đầu tiên để bắt chước phương thức thứ hai (newton) thông qua phương thức secant
user795305

Câu trả lời:


27

Về cơ bản nghĩ về L-BFGS như một cách tìm tối thiểu (cục bộ) của hàm mục tiêu, sử dụng các giá trị hàm mục tiêu và độ dốc của hàm mục tiêu. Mức mô tả đó bao gồm nhiều phương pháp tối ưu hóa ngoài L-BFGS. Bạn có thể đọc thêm về nó trong phần 7.2 của Nocedal và Wright "Tối ưu hóa số, phiên bản 2" http://www.springer.com/us/book/9780387303031 . Một cuộc thảo luận rất khó hiểu về L-BFGS được cung cấp tại https://en.wikipedia.org/wiki/Lrict-memory_BFGS .

Phương thức bậc nhất có nghĩa là độ dốc (đạo hàm đầu tiên) (và có thể các giá trị hàm mục tiêu) được sử dụng, nhưng không phải là Hessian (đạo hàm thứ hai). Ví dụ, nghĩ về độ dốc gốc và độ dốc cao nhất, trong số nhiều người khác.

Phương pháp bậc hai có nghĩa là độ dốc và Hessian được sử dụng (và có thể là các giá trị hàm mục tiêu). Phương pháp thứ hai có thể dựa trên

  1. Ma trận Hessian "Chính xác" (hoặc khác biệt hữu hạn của độ dốc), trong trường hợp đó chúng được gọi là phương pháp Newton hoặc

  2. Các phương pháp Quasi-Newton, gần đúng với Hessian dựa trên sự khác biệt của độ dốc qua một số lần lặp, bằng cách áp đặt điều kiện "secant" (Quasi-Newton). Có nhiều phương pháp Quasi-Newton khác nhau, ước tính Hessian theo những cách khác nhau. Một trong những phổ biến nhất là BFGS. Xấp xỉ BFGS Hessian có thể dựa trên toàn bộ lịch sử của độ dốc, trong trường hợp này được gọi là BFGS, hoặc nó chỉ có thể dựa trên các gradient m gần đây nhất, trong trường hợp đó được gọi là BFGS bộ nhớ giới hạn, viết tắt như L-BFGS. Ưu điểm của L-BFGS là chỉ yêu cầu giữ lại các gradient m gần đây nhất, trong đó m thường khoảng 10 đến 20, đây là yêu cầu lưu trữ nhỏ hơn nhiều so với n * (n + 1) / 2 yếu tố cần thiết để lưu trữ đầy đủ (tam giác) của ước tính Hessian, theo yêu cầu với BFGS, Trong đó n là chiều vấn đề. Không giống như (đầy đủ) BFGS, ước tính của Hessian không bao giờ được hình thành hoặc lưu trữ rõ ràng trong L-BFGS (mặc dù một số triển khai BFGS chỉ hình thành và cập nhật hệ số Choelsky của xấp xỉ Hessian, chứ không phải là xấp xỉ Hessian); thay vào đó, các tính toán sẽ được yêu cầu với ước tính của Hessian được thực hiện mà không hình thành rõ ràng. L-BFGS được sử dụng thay vì BFGS cho các vấn đề rất lớn (khi n rất lớn), nhưng có thể không hoạt động tốt như BFGS. Do đó, BFGS được ưa thích hơn L-BFGS khi các yêu cầu về bộ nhớ của BFGS có thể được đáp ứng. Mặt khác, hiệu suất L-BFGS có thể không kém hơn nhiều so với BFGS. ước tính của Hessian không bao giờ được hình thành hoặc lưu trữ rõ ràng trong L-BFGS (mặc dù một số triển khai BFGS chỉ hình thành và cập nhật yếu tố Choelsky của xấp xỉ Hessian, chứ không phải là xấp xỉ Hessian); thay vào đó, các tính toán sẽ được yêu cầu với ước tính của Hessian được thực hiện mà không hình thành rõ ràng. L-BFGS được sử dụng thay vì BFGS cho các vấn đề rất lớn (khi n rất lớn), nhưng có thể không hoạt động tốt như BFGS. Do đó, BFGS được ưa thích hơn L-BFGS khi các yêu cầu về bộ nhớ của BFGS có thể được đáp ứng. Mặt khác, hiệu suất L-BFGS có thể không kém hơn nhiều so với BFGS. ước tính của Hessian không bao giờ được hình thành hoặc lưu trữ rõ ràng trong L-BFGS (mặc dù một số triển khai BFGS chỉ hình thành và cập nhật yếu tố Choelsky của xấp xỉ Hessian, chứ không phải là xấp xỉ Hessian); thay vào đó, các tính toán sẽ được yêu cầu với ước tính của Hessian được thực hiện mà không hình thành rõ ràng. L-BFGS được sử dụng thay vì BFGS cho các vấn đề rất lớn (khi n rất lớn), nhưng có thể không hoạt động tốt như BFGS. Do đó, BFGS được ưa thích hơn L-BFGS khi các yêu cầu về bộ nhớ của BFGS có thể được đáp ứng. Mặt khác, hiệu suất L-BFGS có thể không kém hơn nhiều so với BFGS. các tính toán sẽ được yêu cầu với ước tính của Hessian được thực hiện mà không hình thành rõ ràng. L-BFGS được sử dụng thay vì BFGS cho các vấn đề rất lớn (khi n rất lớn), nhưng có thể không hoạt động tốt như BFGS. Do đó, BFGS được ưa thích hơn L-BFGS khi các yêu cầu về bộ nhớ của BFGS có thể được đáp ứng. Mặt khác, hiệu suất L-BFGS có thể không kém hơn nhiều so với BFGS. các tính toán sẽ được yêu cầu với ước tính của Hessian được thực hiện mà không hình thành rõ ràng. L-BFGS được sử dụng thay vì BFGS cho các vấn đề rất lớn (khi n rất lớn), nhưng có thể không hoạt động tốt như BFGS. Do đó, BFGS được ưa thích hơn L-BFGS khi các yêu cầu về bộ nhớ của BFGS có thể được đáp ứng. Mặt khác, hiệu suất L-BFGS có thể không kém hơn nhiều so với BFGS.

Ngay cả ở cấp độ mô tả này, có rất nhiều biến thể. Ví dụ, các phương thức có thể hoàn toàn không được bảo vệ, trong trường hợp bất cứ điều gì xảy ra, và chúng có thể không hội tụ đến bất cứ điều gì, ngay cả trên các vấn đề lồi. Hoặc họ có thể được bảo vệ. Các phương pháp được bảo vệ thường dựa trên các vùng tin cậy hoặc tìm kiếm dòng và có nghĩa là để đảm bảo hội tụ đến một cái gì đó. Rất quan trọng, chỉ cần biết rằng một phương thức là L-BFGS không tự nó cho bạn biết loại bảo vệ nào, nếu có, được sử dụng. Nó giống như nói rằng một chiếc xe hơi là một chiếc xe 4 cửa - nhưng tất nhiên không phải tất cả các dòng xe 4 cửa đều giống nhau về hiệu suất hoặc độ tin cậy. Nó chỉ là một thuộc tính của một thuật toán tối ưu hóa.


1
Xin chào, tôi cần sự giúp đỡ của bạn một lần nữa, bạn có thể cho tôi biết ngắn gọn về sự khác biệt giữa phương pháp newton và quazi newton ?? cảm ơn
Abir

3
Các phương pháp Newton tính toán ma trận Hessian, "bằng đầu", tại mỗi lần lặp của thuật toán, hoặc chính xác, hoặc bằng sự khác biệt hữu hạn của độ dốc ở lần lặp đó .. Các phương pháp Quasi-Newton xây dựng một xấp xỉ của ma trận Hessian bằng cách sử dụng sự khác biệt độ dốc trên các lần lặp. Có nhiều cách khác nhau để thực hiện việc này, tạo ra nhiều phương pháp Quasi-Newton khác nhau, chẳng hạn như BFGS, DFP, SR1 và các phương pháp khác. Thông thường các phương thức Newton yêu cầu một số lượng lớn tính toán ở mỗi lần lặp để tính toán Hessian, tính toán trên mỗi lần lặp nhiều hơn so với phương pháp Quasi-Newton.
Mark L. Stone
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.