Tại sao phương pháp của Newton không được sử dụng rộng rãi trong học máy?


132

Đây là một cái gì đó đã làm tôi khó chịu trong một thời gian và tôi không thể tìm thấy bất kỳ câu trả lời thỏa đáng nào trên mạng, vì vậy hãy vào đây:

Sau khi xem xét một tập hợp các bài giảng về tối ưu hóa lồi, phương pháp của Newton dường như là một thuật toán vượt trội hơn nhiều so với việc tìm ra các giải pháp tối ưu toàn cầu, bởi vì phương pháp của Newton có thể đảm bảo cho giải pháp của nó, đó là bất biến và hầu hết tất cả đều hội tụ trong ít bước hơn Tại sao các thuật toán tối ưu hóa bậc hai, chẳng hạn như phương pháp của Newton không được sử dụng rộng rãi như độ dốc dốc ngẫu nhiên trong các vấn đề học máy?


24
Đối với các mạng thần kinh, deeplearningbook.org Phần "8.6 Phương pháp bậc hai gần đúng" cung cấp một cái nhìn tổng quan đẹp. Tóm lại "Vượt xa những thách thức được tạo ra bởi các tính năng nhất định của chức năng mục tiêu, chẳng hạn như điểm yên ngựa, việc áp dụng phương pháp của Newton để đào tạo mạng lưới thần kinh lớn bị hạn chế bởi gánh nặng tính toán đáng kể mà nó đặt ra." Có những lựa chọn thay thế cố gắng đạt được một số lợi thế của phương pháp Newton trong khi đẩy mạnh các rào cản tính toán, nhưng chúng có những vấn đề riêng.
Franck Dernoncourt

1
xem câu hỏi và nhận xét liên quan này, stats.stackexchange.com/questions/232305/ trên
Haitao Du

1
Lưu ý rằng các ý kiến ​​khác có một số ứng dụng rộng rãi hơn cho học máy ngoài việc chỉ là "học sâu". Tuy nhiên, trong khi tất cả các vấn đề ML có thể có xu hướng là "dữ liệu lớn", không phải tất cả các vấn đề ML nhất thiết phải là "tính năng lớn" (nghĩa là nhiều tham số để điều chỉnh), mặc dù học sâu luôn luôn là như vậy.
GeoMatt22

1
Điều đáng chú ý là trong học máy ngoài học sâu, L-BFGS (nói một cách đại khái, gần đúng với phương pháp của Newton) một thuật toán tối ưu hóa khá phổ biến.
Dougal

2
Phương pháp của Newton giả định sự lồi lõm, các vấn đề ML hiện đại (lưới trung tính) không có khả năng ở bất cứ nơi nào gần lồi, mặc dù phải thừa nhận là một lĩnh vực nghiên cứu mở ở đó. Do đó phương pháp của Newton có lẽ là một công cụ ước tính tồi như tuyến tính ở bất cứ đâu nhưng gần điểm tính toán. Bạn có thể sẽ kiếm được rất ít cho sự gia tăng bậc hai trong tính toán. Điều đó nói rằng, một hội nghị gần đây tại Berkeley đã có một người dẫn chương trình tiếp tục cho thấy sự tiến bộ trong việc sử dụng các phương pháp thứ 2, vì vậy nó không bị chết bởi bất kỳ phương tiện nào.
David

Câu trả lời:


95

Gradient giảm dần tối đa hóa một hàm sử dụng kiến ​​thức về đạo hàm của nó. Phương pháp của Newton, một thuật toán tìm kiếm gốc, tối đa hóa một hàm sử dụng kiến ​​thức về đạo hàm thứ hai của nó. Điều đó có thể nhanh hơn khi đạo hàm thứ hai được biết đến và dễ tính toán (thuật toán Newton-Raphson được sử dụng trong hồi quy logistic). Tuy nhiên, biểu thức phân tích cho đạo hàm thứ hai thường phức tạp hoặc khó hiểu, đòi hỏi nhiều tính toán. Các phương pháp số để tính đạo hàm thứ hai cũng đòi hỏi rất nhiều tính toán - nếu các giá trị được yêu cầu để tính đạo hàm thứ nhất, được yêu cầu cho đạo hàm thứ hai.N 2NN2


5
Đáng lưu ý rằng (những thứ dựa trên) phương pháp Gauss-Newton có lẽ phổ biến hơn. Đây là một chuyên ngành của Newton để bình phương nhỏ nhất phi tuyến.
GeoMatt22

4
Tôi sẽ không gọi Gauss-Newton là chuyên môn hóa của Newton thành các bình phương nhỏ nhất phi tuyến. Tôi gọi nó là một xấp xỉ bastardized của Newton cho các bình phương nhỏ nhất phi tuyến, sử dụng một xấp xỉ Hessian không chính xác hơn, phần dư trong các phương trình được trang bị càng lớn, và do đó, càng tranh luận về sự tối ưu.
Mark L. Stone

1
@ MarkL.Stone điểm công bằng, tôi đã cố gắng không đi sâu vào kỹ thuật :) Đúng là các phương pháp kiểu Gauss-Newton cố gắng "giả mạo" đơn hàng thứ 2 chỉ với thông tin đơn hàng thứ nhất. Cá nhân tôi chưa bao giờ sử dụng các phương thức Newton để tối ưu hóa, chỉ các phương pháp Gauss-Newton (hoặc LM, hoặc ~ UKF tương tự) hoặc DFO-SQP (ví dụ BOBYQA ). "Tính tối ưu" là một câu hỏi khó mà tôi muốn nói ... đối với vấn đề ML, so với vấn đề tối ưu hóa thiết kế kỹ thuật, độ tin cậy / thông tin của "Hessian địa phương" có thể bị nghi ngờ. Có lẽ DFO-SQP không cục bộ là ~ "Newton ngẫu nhiên"? (ví dụ: "trực tuyến")
GeoMatt22

1
Theo suy nghĩ thứ hai, các cách tiếp cận DFO-SQP có xu hướng không tập trung trong không gian tham số , thay vì các lô dữ liệu. Các ukf có thể là gần nhất trong hương vị cho "ngẫu nhiên Newton" vì nó là trực tuyến w / bộ nhớ hạn chế ... nhưng nó có hiệu quả giả định một Hessian dương-nhất định (ví dụ: Gaussian approx.).
GeoMatt22

1
Trên thực tế đó là lý do sai lệch vì có các phương pháp bậc hai như CG không yêu cầu tính toán hessian. k lặp lại của CG sẽ chỉ có giá kN. Đúng là về mặt lý thuyết, CG chỉ khớp với Newton ở k = N, nhưng thực sự bạn không cần quá nhiều lần lặp.
dùng25322

40

Nhiều người nên sử dụng phương pháp của Newton trong học máy *. Tôi nói điều này như một người có nền tảng về tối ưu hóa số, người đã học hỏi về máy học trong vài năm qua.

Những hạn chế trong câu trả lời ở đây (và thậm chí trong tài liệu) không phải là vấn đề nếu bạn sử dụng phương pháp của Newton một cách chính xác. Hơn nữa, những hạn chế gây ra vấn đề cũng làm chậm độ dốc giảm dần cùng một lượng hoặc nhiều hơn, nhưng thông qua các cơ chế ít rõ ràng hơn.

  • Sử dụng tìm kiếm dòng với các điều kiện Wolfe hoặc sử dụng hoặc vùng tin cậy sẽ ngăn chặn sự hội tụ đến các điểm yên ngựa. Một triển khai giảm dần độ dốc thích hợp cũng nên được thực hiện điều này. Bài viết được tham khảo trong câu trả lời của Cam.Davidson.Pilon chỉ ra các vấn đề với "phương pháp của Newton" với sự hiện diện của các điểm yên ngựa, nhưng cách khắc phục mà họ ủng hộ cũng là một phương pháp của Newton.

  • Sử dụng phương pháp của Newton không yêu cầu xây dựng toàn bộ Hessian (dày đặc); bạn có thể áp dụng nghịch đảo của Hessian cho một vectơ bằng các phương pháp lặp chỉ sử dụng các sản phẩm vectơ ma trận (ví dụ: các phương pháp Krylov như gradient liên hợp). Xem, ví dụ, phương pháp vùng tin cậy CG-Steihaug.

  • Bạn có thể tính toán các sản phẩm vectơ ma trận Hessian một cách hiệu quả bằng cách giải hai phương trình điều chỉnh bậc cao có cùng dạng với phương trình điều chỉnh đã được sử dụng để tính toán độ dốc (ví dụ: công việc của hai bước backpropagation trong đào tạo mạng thần kinh).

  • Điều hòa không khí làm chậm sự hội tụ của các bộ giải tuyến tính lặp, nhưng nó cũng làm chậm độ dốc xuống bằng hoặc tệ hơn. Sử dụng phương pháp của Newton thay vì giảm độ dốc chuyển độ khó từ giai đoạn tối ưu hóa phi tuyến (trong đó không thể thực hiện được nhiều để cải thiện tình hình) sang giai đoạn đại số tuyến tính (nơi chúng ta có thể tấn công nó bằng toàn bộ kho vũ khí của kỹ thuật tiền thuật toán tuyến tính số).

  • Ngoài ra, tính toán chuyển từ "nhiều bước rẻ tiền" sang "một vài bước tốn kém", mở ra nhiều cơ hội hơn cho sự song song ở cấp độ phụ (đại số tuyến tính).

Để biết thông tin cơ bản về các khái niệm này, tôi giới thiệu cuốn sách "Tối ưu hóa số" của Nocedal và Wright.

* Tất nhiên, phương pháp của Newton sẽ không giúp bạn với L1 hoặc các chức năng hình phạt / cảm biến nén tương tự khác thúc đẩy các chức năng hình phạt, vì chúng thiếu độ mịn cần thiết.


2
Tôi nghĩ rằng chúng ta đang thỏa thuận bạo lực với nhau, không phải với mọi người khác.
Mark L. Stone

1
Điều đó giống như so sánh việc Vương quốc Anh hay Hoa Kỳ tạo ra các nhà toán học nghiên cứu tốt hơn bằng cách so sánh khả năng toán học của những học sinh trung học nghiện ma túy 26 tuổi, thay vì so sánh tiếng vang hàng đầu của các sinh viên tốt nghiệp toán học bước ra từ các trường tốt nhất của mỗi quốc gia. Giấy được ký, đóng dấu và giao, không có ai, và ý tôi là không ai thay đổi hoặc rút ngay bây giờ. Không thể tin được.
Mark L. Stone

3
@ MarkL.Stone Có vẻ như một cuộc trò chuyện đã xảy ra ở đây và đã bị xóa trong khi tôi đi vắng. Dù sao, tôi nghĩ rằng bạn đúng khi chúng tôi đồng ý với nhau và không ai khác. Tôi đoán điều này sẽ được dự kiến ​​dựa trên nền tảng của chúng tôi so với những người khác ở đây. Như bạn có thể mong đợi, tôi không nghĩ nhiều về bài báo được liên kết. Mặt khác, tôi nghĩ rằng phương pháp Riemannian đa dạng của Newton , trong đó người ta bắn một quỹ đạo trắc địa theo hướng tìm kiếm của Newton, là một kỹ thuật có nhiều hứa hẹn cho các vấn đề rất khó khăn.
Nick Alger

2
Làm thế nào bạn sẽ đối phó với một tập huấn luyện lớn? Nếu bạn có ví dụ 1 triệu mẫu đào tạo, thì chỉ cần đánh giá mục tiêu tối ưu hóa hiện tại yêu cầu thử nghiệm 1 triệu mẫu. Và bạn cần phải làm điều đó nhiều lần trong một tìm kiếm dòng. Vì vậy, tại thời điểm bạn thực hiện 1 bước Newton, Stochastic Gradient Descent sẽ thực hiện một vài triệu cập nhật.
nikie

2
Nick và @ MarkL.Stone: Bạn đang nói về cơ bản phương pháp này ? Đây là một cái gì đó rất phổ biến trong thời gian học sâu, đặc biệt là đối với các mạng tái phát, nhưng từ đó không được ưa chuộng bởi vì nó chỉ hoạt động theo kinh nghiệm tốt hơn nhiều so với các phương pháp gradient thích ứng. Nếu họ chỉ làm sai điều gì đó và bạn sửa bất cứ điều gì và cho thấy nó thường vượt trội so với biến thể SGD tiêu chuẩn hiện tại Adam, bạn có thể tạo ra một tác động lớn: bài báo Adam đã có 1345 trích dẫn trong hai năm ....
Dougal

33

Gần đây tôi đã tự học điều này - vấn đề là sự phổ biến của các điểm yên ngựa trong không gian chiều cao, mà các phương pháp Newton muốn hội tụ. Xem bài viết này: Xác định và tấn công vấn đề điểm yên trong tối ưu hóa không lồi chiều cao .

Thật vậy, tỷ lệ của số điểm yên ngựa với cực tiểu địa phương tăng theo cấp số nhân với chiều thứ N.

Trong khi động lực giảm độ dốc được đẩy lùi từ điểm yên xuống lỗi thấp hơn bằng cách làm theo các hướng cong âm, ... phương pháp Newton không xử lý điểm yên một cách thích hợp; như lập luận dưới đây, các điểm yên ngựa thay vào đó trở nên hấp dẫn dưới động lực học Newton.


3
Bạn có thể thêm một số lời giải thích tại sao điều này là như vậy? Về lý thuyết, phương pháp của Newton tạo ra một độ dốc có trọng số với trọng số "tối ưu" cho mỗi hàm riêng.
nbubis

4
Những gì bài báo nói về phương pháp Newton "muốn" hội tụ đến các điểm yên ngựa chỉ đúng với việc triển khai rác theo phương pháp của Newton.
Mark L. Stone

Bài viết xác định lại vấn đề về các giá trị riêng và hàm riêng, và sử dụng nó để chỉ ra rằng độ dốc di chuyển ra khỏi điểm yên ngựa: nó di chuyển về phía điểm yên theo hướng của vectơ điện tử âm, nhưng nó di chuyển theo hướng của vectơ điện tử tích cực, vì vậy cuối cùng nó rời khỏi điểm yên ngựa. Newton, mặt khác, không có sự đảm bảo như vậy.
Elizabeth Santorella

Thuật toán mới mà họ ủng hộ trong bài báo này là (một biến thể của) phương pháp của Newton. về cơ bản, đó là phương pháp của Newton cho các hướng của độ cong dương và phương pháp của Newton đối với các hướng của độ cong âm.
Nick Alger

26

Một sự kết hợp của hai lý do:

  • Phương pháp Newton thu hút các điểm yên ngựa;
  • điểm yên ngựa là phổ biến trong học máy, hoặc trong thực tế bất kỳ tối ưu hóa đa biến.

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

xn+1=xn[Hf(xn)]1f(xn)

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H=[2002]

[Hf]1=[1/2001/2]

f=[2x2y]

[xy]n+1=[xy]n[1/2001/2][2xn2yn]=[xy]n[xy]n=[00]

x=0,y=0

Ngược lại, phương pháp giảm độ dốc sẽ không dẫn đến điểm yên. Độ dốc bằng 0 tại điểm yên ngựa, nhưng một bước nhỏ xíu sẽ kéo tối ưu hóa đi như bạn có thể thấy từ độ dốc ở trên - độ dốc của nó trên biến y là âm.


1
Nhờ bạn tôi thực sự hiểu phương pháp này hoạt động từ A đến Z, vì vậy cảm ơn bạn rất nhiều vì ví dụ rõ ràng này!
greenoldman

Điều gì sẽ là điểm yêu thích ở đây?
Bến

14

Bạn đã hỏi hai câu hỏi: Tại sao nhiều người không sử dụng phương pháp của Newton và tại sao nhiều người sử dụng phương pháp giảm độ dốc ngẫu nhiên? Những câu hỏi này có câu trả lời khác nhau, bởi vì có nhiều thuật toán làm giảm gánh nặng tính toán của phương pháp Newton nhưng thường hoạt động tốt hơn SGD.

HO(N2)NgO(N)H1gO(N3)để tính toán. Vì vậy, trong khi tính toán Hessian là tốn kém, đảo ngược nó hoặc giải các bình phương tối thiểu thường thậm chí còn tồi tệ hơn. (Nếu bạn có các tính năng thưa thớt, các tiệm cận trông đẹp hơn, nhưng các phương pháp khác cũng hoạt động tốt hơn, do đó, độ thưa thớt không làm cho Newton tương đối hấp dẫn hơn.)

Thứ hai, nhiều phương pháp, không chỉ là độ dốc gốc, được sử dụng thường xuyên hơn Newton; chúng thường là những điểm nổi bật của phương pháp Newton, theo nghĩa là chúng xấp xỉ một bước Newton với chi phí tính toán trên mỗi bước thấp hơn nhưng lại có nhiều lần lặp hơn để hội tụ. Vài ví dụ:

  • H1

  • O(N2)

  • Khi bạn không muốn đối phó với các công cụ phái sinh thứ hai xấp xỉ, độ dốc giảm dần sẽ hấp dẫn bởi vì nó chỉ sử dụng thông tin đơn hàng đầu tiên. Gradient giảm dần hoàn toàn xấp xỉ Hessian nghịch đảo khi tốc độ học tập nhân với ma trận danh tính. Tôi, cá nhân, hiếm khi sử dụng giảm độ dốc: L-BFGS cũng dễ thực hiện, vì nó chỉ yêu cầu chỉ định hàm mục tiêu và độ dốc; nó có một xấp xỉ Hessian nghịch đảo tốt hơn so với độ dốc dốc; và bởi vì độ dốc giảm dần đòi hỏi phải điều chỉnh tốc độ học tập.

  • Đôi khi bạn có số lượng quan sát rất lớn (điểm dữ liệu), nhưng bạn có thể học gần như từ số lượng quan sát nhỏ hơn. Khi đó là trường hợp, bạn có thể sử dụng "phương pháp lô", như giảm độ dốc ngẫu nhiên, chu kỳ đó thông qua việc sử dụng tập hợp con của các quan sát.


(+1) Điều đáng chú ý là L-BFGS có cùng độ phức tạp với độ dốc giảm dần về số lượng tham số. Đây không phải là trường hợp cho BFGS. Vì vậy, nó không chỉ là phần bộ nhớ hạn chế của L-BFGS khiến nó trở nên hấp dẫn.
Vách đá AB

12

Hướng xuống dốc rẻ hơn để tính toán và thực hiện tìm kiếm đường theo hướng đó là nguồn tiến bộ ổn định, đáng tin cậy hơn theo hướng tối ưu. Trong ngắn hạn, độ dốc gốc tương đối đáng tin cậy.

Phương pháp của Newton tương đối tốn kém ở chỗ bạn cần tính toán Hessian trong lần lặp đầu tiên. Sau đó, trên mỗi lần lặp lại tiếp theo, bạn có thể tính toán lại đầy đủ Hessian (như trong phương pháp của Newton) hoặc chỉ "cập nhật" Hessian của lần lặp trước (theo phương pháp quasi-Newton) rẻ hơn nhưng kém mạnh mẽ hơn.

Trong trường hợp cực đoan của một hàm hoạt động rất tốt, đặc biệt là hàm bậc hai hoàn hảo, phương pháp của Newton là người chiến thắng rõ ràng. Nếu nó hoàn toàn là bậc hai, phương pháp của Newton sẽ hội tụ trong một lần lặp duy nhất.

Trong trường hợp cực đoan ngược lại của một chức năng hoạt động rất kém, độ dốc giảm dần sẽ có xu hướng chiến thắng. Nó sẽ chọn một hướng tìm kiếm, tìm kiếm theo hướng đó và cuối cùng thực hiện một bước nhỏ nhưng hiệu quả. Ngược lại, phương pháp của Newton sẽ có xu hướng thất bại trong những trường hợp này, đặc biệt nếu bạn cố gắng sử dụng các xấp xỉ gần đúng của Newton.

Ở giữa phương pháp giảm độ dốc và phương pháp của Newton, có các phương thức như thuật toán Levenberg Gian Marquest (LMA), mặc dù tôi đã thấy các tên bị nhầm lẫn một chút. Ý chính là sử dụng tìm kiếm có nhiều độ dốc hơn khi mọi thứ hỗn loạn và khó hiểu, sau đó chuyển sang tìm kiếm theo phương pháp Newton hơn khi mọi thứ trở nên tuyến tính và đáng tin cậy hơn.


3
Boy, bạn phải sử dụng triển khai khủng khiếp của Newton và Quasi-Newton. Nếu sử dụng hoặc với Hessian xác định không dương, thì sử dụng các vùng tin cậy hoặc thực hiện tìm kiếm đường dọc theo (các) độ cong âm. Nếu vậy, chúng đáng tin cậy hơn so với gốc dốc nhất (nghĩa là giảm độ dốc với tìm kiếm dòng hoặc vùng tin cậy). Nói tóm lại, việc giảm dần độ tin cậy kém hơn nhiều so với phương pháp Quasi-Newton được triển khai đúng cách, nó kém tin cậy hơn so với phương pháp Newton được thực hiện đúng. Tuy nhiên, thời gian tính toán và yêu cầu bộ nhớ cho mỗi lần lặp là một vấn đề khác nhau.
Mark L. Stone

4
Tôi nghĩ rằng bạn có nghĩa là chức năng bậc hai hoàn hảo. Đó là, phương pháp của Newton hội tụ trong một lần lặp duy nhất với hàm mục tiêu bậc hai, có độ dốc tuyến tính.
Elizabeth Santorella

1
@ElizabethSantorella: Yup, bạn nói đúng! Tôi cập nhật câu trả lời.
Nat

2
1/2xTx

1
Tôi đã làm cho trường hợp của tôi. Nếu bạn muốn nghĩ rằng độ dốc cao nhất, độ dốc dốc là tuyệt vời, đặc biệt là về các chức năng hoạt động kém, đó là việc của bạn. Tự rút khỏi.
Mark L. Stone

7

Hd=g

Phương pháp của Newton hoạt động tốt khi gần với một giải pháp, hoặc nếu Hessian đang dần thay đổi, nhưng cần một số thủ thuật để đối phó với việc thiếu sự hội tụ và thiếu dứt khoát.

Thường thì một sự cải tiến được tìm kiếm, thay vì một giải pháp chính xác, trong trường hợp đó, chi phí tăng thêm của các phương pháp như Newton hoặc Newton là không chính đáng.

Có nhiều cách khác nhau để cải thiện các yếu tố trên như số liệu biến đổi hoặc phương pháp vùng tin cậy.

Một lưu ý phụ, trong nhiều vấn đề, một vấn đề quan trọng là nhân rộng và Hessian cung cấp thông tin mở rộng tuyệt vời, mặc dù phải trả giá. Nếu một người có thể ước chừng Hessian, nó thường có thể cải thiện hiệu suất đáng kể. Ở một mức độ nào đó, phương pháp của Newton cung cấp tỷ lệ 'tốt nhất' ở chỗ nó là bất biến affine.


0

Có rất nhiều khó khăn liên quan đến việc sử dụng phương pháp của Newton cho SGD, đặc biệt là:

  • nó cần ma trận Hessian - làm thế nào để ước tính nó, ví dụ từ độ dốc nhiễu với độ chính xác đủ với chi phí hợp lý?

  • full Hessian quá tốn kém - chúng ta cần một số hạn chế của nó, ví dụ như một không gian con (không gian con nào?),

  • H1λ=0

  • Phương pháp của Newton thu hút trực tiếp đến điểm gần với độ dốc bằng không ... thường là yên xe ở đây. Làm thế nào để đẩy lùi chúng? Ví dụ , Newton không có yên xe đảo ngược các hướng cong tiêu cực, nhưng nó đòi hỏi phải kiểm soát các dấu hiệu của giá trị bản địa,

  • sẽ tốt hơn nếu thực hiện trực tuyến - thay vì thực hiện nhiều tính toán trong một điểm duy nhất, hãy thử chia nó thành nhiều bước nhỏ khai thác thêm thông tin địa phương.

Chúng ta có thể đi từ bậc 1 đến bậc 2 theo các bước nhỏ, ví dụ: thêm cập nhật chỉ 3 mức trung bình cho phương pháp động lượng, chúng ta có thể đồng thời MSE phù hợp với parabola theo hướng của nó để lựa chọn kích thước bước thông minh hơn ... mô hình hóa bậc 2 trong không gian con chiều thấp Vẫn có thể sử dụng các tọa độ còn lại để giảm độ dốc đồng thời.

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.