Tại sao không sử dụng đạo hàm thứ ba để tối ưu hóa số?


29

Nếu người Hessian rất tốt để tối ưu hóa (xem ví dụ phương pháp của Newton ), tại sao dừng lại ở đó? Chúng ta hãy sử dụng các dẫn xuất thứ ba, thứ tư, thứ năm và thứ sáu? Tại sao không?


11
Một khi bạn tìm thấy tối ưu, tại sao nhìn xa hơn? Thật vậy, những gì bạn đang thực sự cố gắng để hỏi? Câu hỏi thống kê của bạn là gì?
whuber

2
Trong nhiều trường hợp, việc phân phối giới hạn các ước tính giải các phương trình ước lượng tối ưu hoặc tối thiểu hóa các hàm mục tiêu là bình thường, do đó chúng có thể được đặc trưng hoàn toàn bởi khoảnh khắc thứ nhất và thứ hai của chúng.
AdamO

3
Nếu bạn có thể làm điều gì đó, không có nghĩa là bạn nên làm điều đó. Các dẫn xuất bậc cao ngày càng dễ bị nhiễu.
Vladislavs Dovgalecs

6
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì nó không phải là về thống kê. Đó là về tối ưu hóa số
Aksakal

11
Bạn đã không tạo ra một bước đột phá khoa học. Halley đánh bại bạn khoảng 3 1/4 thế kỷ. Halley, E., 1694, "Một phương pháp mới, chính xác và dễ dàng để tìm ra gốc rễ của bất kỳ phương trình nào nói chung, và không có bất kỳ sự giảm trước nào" Philos. Xuyên. Roy. Sóc. Luân Đôn, 18, 136 Chân145. Phương pháp phái sinh thứ 3 để tối ưu hóa đã tồn tại và được nghiên cứu trong nhiều năm, nhưng không đạt được sự phổ biến lớn. Nếu được triển khai tốt, lợi thế lớn nhất của chúng có thể là sự gia tăng sức mạnh so với phương pháp của Newton được triển khai tốt. Điều này có thể là lợi thế cho các vấn đề khó khăn nhất.
Mark L. Stone

Câu trả lời:


31

Tôi đang diễn giải câu hỏi là "Tại sao phương pháp của Newton chỉ sử dụng các đạo hàm thứ nhất và thứ hai, chứ không phải các đạo hàm thứ ba hoặc cao hơn?"

Trên thực tế, trong nhiều trường hợp, đi đến đạo hàm thứ ba sẽ giúp ích; Tôi đã làm nó với các công cụ tùy chỉnh trước đây. Tuy nhiên, nói chung, đi đến các công cụ phái sinh cao hơn làm tăng độ phức tạp tính toán - bạn phải tìm và tính toán tất cả các công cụ phái sinh đó, và đối với các vấn đề đa biến, có nhiều công cụ phái sinh thứ ba hơn nhiều so với các công cụ phái sinh đầu tiên! - điều đó vượt xa số tiền tiết kiệm trong số bước bạn nhận được, nếu có. Ví dụ: nếu tôi gặp vấn đề 3 chiều, tôi có 3 đạo hàm đầu tiên, 6 đạo hàm thứ hai và 10 đạo hàm thứ ba, do đó, đến phiên bản bậc ba nhiều hơn gấp đôi số lượng đánh giá tôi phải thực hiện (từ 9 đến 19), chưa kể đến sự phức tạp gia tăng của việc tính toán hướng / kích thước bước một khi tôi đã thực hiện các đánh giá đó, nhưng gần như chắc chắn sẽ không cắt giảm số bước tôi phải thực hiện một nửa.

Bây giờ, trong trường hợp chung với biến, tập hợp các đạo hàm riêng của n t h sẽ đánh số , do đó, đối với một vấn đề với năm biến, tổng số thứ ba, thứ tư và các đạo hàm riêng thứ năm sẽ bằng 231, tăng hơn 10 lần so với số các đạo hàm riêng thứ nhất và thứ hai (20). Bạn sẽ phải có một vấn đề rất, rất gần với đa thức bậc 5 trong các biến để thấy mức giảm đủ lớn trong số lần lặp để bù cho gánh nặng tính toán thêm đó.knth(k+n-1k-1)


3
Bạn có thể giải thích làm thế nào bạn đang sử dụng các dẫn xuất cao hơn?
whuber

5
@whuber Những gì OP đang đề cập đến, cực kỳ không rõ ràng tôi phải thừa nhận, là phương pháp tối ưu hóa của Newton. Câu hỏi thực sự là "Tại sao phương pháp của Newton chỉ sử dụng các đạo hàm thứ nhất và thứ hai, chứ không phải các đạo hàm thứ ba hoặc cao hơn?". Nó lạc đề cũng như không rõ anh ấy / cô ấy hỏi gì, nhưng tôi nghĩ tôi chỉ đưa ra câu trả lời thay vì bỏ phiếu để đóng vì lý do này hay lý do khác.
jbowman

4
+1 Tôi nghĩ rằng đây là một câu trả lời hay, nhưng nó có thể được cải thiện bằng cách hiển thị những gì bạn dự định dựa trên bản mở rộng taylor.
Matthew Drury

8
Là một trong những giáo sư của tôi - một nhà tư vấn rất thành công - đã nói với chúng tôi một lần, "Bất cứ khi nào bạn nghĩ rằng bạn đã tìm ra cách xây dựng một cái bẫy chuột tốt hơn, hãy thử tìm hiểu tại sao 1.000 người nghĩ ra ý tưởng chính xác đó trước khi bạn không đưa nó ra thị trường. " Toàn bộ quan điểm của việc sử dụng Newton là để tiết kiệm tính toán - nếu không, chúng tôi chỉ thực hiện tìm kiếm toàn diện. Tôi đảm bảo với bạn, việc thêm đạo hàm thứ ba vào bài toán 3 chiều sẽ rất, rất hiếm khi trả tiền cho việc nhân đôi tính toán ở mỗi bước với số lần lặp giảm đáng kể trừ khi hàm là ~ một khối.
jbowman

9
Không, không phải - đó là một nhận xét sâu sắc hơn một chút so với lần đầu tiên nó xuất hiện. Vấn đề có hai mặt - hầu hết các ý tưởng ban đầu có vẻ tốt, không, vì những lý do có thể không rõ ràng, và chìa khóa thực sự cho một sự đột phá có thể không phải là ý tưởng mà là một cái gì đó khắc phục hoặc hoạt động xung quanh lỗ hổng trong Ý tưởng. Lý do này, trong thực tế, chỉ ra rằng, và nói với bạn để tìm kiếm điểm yếu trong ý tưởng. Đó không phải là từ bỏ, mà là suy nghĩ mọi thứ thông qua, và với con mắt phê phán về điều đó.
jbowman

22

Tôi thực sự không thấy khía cạnh thống kê của câu hỏi này là gì, vì vậy tôi sẽ trả lời phần tối ưu hóa.

Có 2 phần để hội tụ: chi phí lặp và số lần lặp

Khá nhiều mỗi câu trả lời ở đây là chỉ tập trung vào chi phí lặp và lờ đi lặp đếm . Nhưng cả hai đều quan trọng. Một phương pháp lặp lại trong 1 nano giây nhưng phải mất lần lặp để hội tụ sẽ không giúp ích gì cho bạn. Và một phương pháp làm nổ tung sẽ không giúp được gì, cho dù chi phí lặp lại của nó rẻ thế nào.1020

Hãy tìm hiểu những gì đang xảy ra.

Vậy: Tại sao không sử dụng các công cụ phái sinh bậc 2?

Một phần vì (và điều này cũng đúng với thứ tự 2, nhưng nhiều hơn về điều đó một chút):

Các phương pháp bậc cao hơn thường chỉ hội tụ nhanh hơn khi gần tối ưu .

Mặt khác, chúng nổ tung dễ dàng hơn khi chúng ở xa hơn mức tối ưu!

(Tất nhiên, đây không phải là luôn luôn đúng, ví dụ như một bậc hai sẽ hội tụ trong 1 bước với phương pháp của Newton Nhưng đối với các chức năng tùy ý trong thế giới thực mà không có đặc tính tốt đẹp, đây là. Nói chung là đúng.)

Điều này có nghĩa là khi bạn ở xa mức tối ưu, bạn thường muốn có một phương thức bậc thấp (đọc: bậc nhất). Chỉ khi bạn ở gần, bạn mới muốn tăng thứ tự của phương thức.

Vậy tại sao dừng lại ở bậc 2 khi bạn ở gần gốc?

Bởi vì hành vi hội tụ "bậc hai" thực sự là "đủ tốt"!

Để xem tại sao, trước tiên bạn phải hiểu "hội tụ bậc hai" nghĩa là gì .

Về mặt toán học, hội tụ bậc hai có nghĩa là, nếu là lỗi của bạn khi lặp k , thì cuối cùng sau đây đúng với một số hằng số c :εkkc

|εk+1|c |εk|2

Trong tiếng Anh đơn giản, điều này có nghĩa là, một khi bạn ở gần mức tối ưu (quan trọng!), Mỗi bước thêm sẽ nhân đôi số chữ số chính xác .

Tại sao? Thật dễ dàng để xem với một ví dụ: cho | ϵ 1 | = 0,1 , bạn có | ϵ 2 | 0,01 , | ϵ 3 | 0,0001 , v.v ... nhanh đến mức nực cười . (Đó là siêu cấp số nhân !)c= =1|ε1|= =0,1|ε2|0,01|ε3|0,0001

Tại sao không dừng lại ở đơn hàng thứ 1 hơn là đơn hàng thứ 2?

Trên thực tế, mọi người thường làm điều này khi các công cụ phái sinh bậc hai trở nên quá đắt đỏ. Nhưng hội tụ tuyến tính có thể rất chậm. ví dụ: nếu bạn có thì bạn cần khoảng 10.000.000 lần lặp với hội tụ tuyến tính để có được | ϵ | < 0,5 , nhưng chỉ có 23 lần lặp với hội tụ bậc hai. Vì vậy, bạn có thể thấy tại sao có sự khác biệt lớn giữa sự hội tụ tuyến tính và bậc hai. Điều này không đúng với sự hội tụ bậc 2 và bậc 3, ví dụ (xem đoạn tiếp theo).εk= =0,9999999|ε|<0,5

Tại thời điểm này, nếu bạn biết bất kỳ ngành khoa học máy tính nào, bạn hiểu rằng với sự hội tụ bậc 2, vấn đề đã được giải quyết . Nếu bạn không thấy lý do tại sao, thì đây là lý do: không có gì thực tế để đạt được từ việc tăng gấp ba số chữ số mỗi lần lặp thay vì nhân đôi số đó, nó sẽ mua gì cho bạn? Rốt cuộc, trong một máy tính, ngay cả một doublesố chính xác cũng có 52 bit chính xác, khoảng 16 chữ số thập phân. Có thể nó sẽ giảm số bước bạn yêu cầu từ 16 xuống còn 3 ... nghe có vẻ tuyệt vời, cho đến khi bạn nhận ra rằng nó phải trả giá khi phải tính toán các dẫn xuất thứ bamỗi lần lặp, đó là lời nguyền của chiềuđánh bạn mạnh Đối với một vấn đề chiều, bạn chỉ cần trả một yếu tố của 6 để đạt được một yếu tố của 5 , đó là câm. Và trong thế giới thực, các vấn đề có ít nhất hàng trăm chiều (hoặc thậm chí hàng nghìn hoặc thậm chí hàng triệu), không chỉ 6 ! Vì vậy, bạn có được hệ số có thể là 20 bằng cách trả một nhân tố, ví dụ, 20.000 ... hầu như không phải là một sự đánh đổi khôn ngoan.6656

Nhưng một lần nữa: hãy nhớ lời nguyền của chiều là một nửa câu chuyện .

Một nửa khác là bạn thường có hành vi tồi tệ hơn khi bạn ở xa mức tối ưu, điều này thường ảnh hưởng xấu đến số lần lặp bạn phải làm.

Phần kết luận

Trong một thiết lập chung, các phương thức bậc cao hơn 2 là một ý tưởng tồi. Tất nhiên, nếu bạn có thể mang lại những giả định hữu ích bổ sung để bàn (ví dụ có lẽ dữ liệu của bạn không giống như một đa thức cao độ, hoặc bạn có cách bounding vị trí của tối ưu, vv), thì có lẽ bạn có thể thấy rằng họ là một ý tưởng hay, nhưng đó sẽ là một quyết định dành riêng cho vấn đề và không phải là một quy tắc chung để sống theo.


Câu trả lời tuyệt vời, nhưng tôi nghĩ định lý Abel-Ruffini là cá trích đỏ. Trước hết, chúng ta đang nói về các vấn đề đa biến, do đó, việc tính toán các số không của đa thức đơn biến nhiều nhất là một bài toán con dễ dàng về sự quan tâm hạn chế. Và, quan trọng hơn, không có vấn đề gì nếu có một công thức khép kín cho giải pháp hay không: trong thực tế, theo như tôi biết, mọi người không sử dụng các công thức khép kín ngay cả đối với đa thức bậc 4. Chúng quá dài và phức tạp và không ổn định. Số không của đa thức được tính bằng số, trong thực tế (sử dụng QR trên ma trận đồng hành).
Federico Poloni

@FedericoPoloni: Vâng, những suy nghĩ tương tự xuất hiện trong đầu tôi khi tôi quyết định đưa nó vào. Tôi không có nó ban đầu ... Tôi nghĩ có lẽ tôi nên đưa nó vào như một ví dụ khác về lý do tại sao mức độ cao hơn có thể có vấn đề bất ngờ. Nhưng tôi đoán tôi sẽ lấy nó ra một lần nữa nếu nó không có ích, cảm ơn vì đã bình luận.
Mehrdad

@FedericoPoloni: PS trong khi chúng ta đang ở chủ đề tính toán số, bạn có thể thấy các hàm Sturm thú vị (nếu bạn chưa nghe nói về chúng).
Mehrdad

7

H= =[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H/x= =[Hx1Hx2Hxn]
(H/x)tôijk= =3fxtôixjxk

6fxtôixjxkxtôixmxn

Thông thường, sự đánh đổi không thuận lợi cho việc đi sau cao hơn Hessian. Ý tôi là sự đánh đổi giữa mức tăng tiềm năng về tốc độ thông qua việc sử dụng xấp xỉ bậc cao hơn so với khuếch đại nhiễu. Bạn luôn có tiếng ồn trong đầu vào vì chúng ta đang nói về các ứng dụng thống kê. Tiếng ồn này sẽ được khuếch đại bởi các dẫn xuất.

Nếu bạn chơi golf thì sự tương tự trong tối ưu hóa là trước tiên hãy cố gắng để chuyển sang màu xanh lá cây, không phải lo lắng nhiều về một lỗ. Một lần, trên green, chúng ta sẽ nhắm vào một cái lỗ.


4

Thông thường, khi bạn phân tích tính hiệu quả của các thuật toán đó, bạn sẽ tìm thấy các kết quả như một bước của thuật toán bậc bốn có hiệu quả gần tương đương với hai bước của thuật toán bậc hai.

Vì vậy, việc lựa chọn sử dụng thuật toán nào là tương đối đơn giản: nếu một bước của thuật toán bậc bốn mất gấp đôi công việc hoặc nhiều hơn một bước của thuật toán bậc hai, bạn nên sử dụng thuật toán thứ hai thay thế.

Đó là tình huống điển hình cho các loại phương pháp này: thuật toán cổ điển có tỷ lệ hiệu quả công việc tối ưu cho các vấn đề chung. Mặc dù đôi khi có một số vấn đề trong đó cách tiếp cận bậc cao dễ tính toán hơn và có thể vượt trội hơn so với biến thể cổ điển, nhưng chúng tương đối không phổ biến.


2

Bạn có thể nghĩ về thứ tự của các đạo hàm là thứ tự của một xấp xỉ đa thức cho hàm. Hầu hết các thói quen tối ưu hóa đều dựa vào độ lồi. Một đa thức bậc hai sẽ lồi / lõm ở mọi nơi trong khi đa thức bậc 3 hoặc cao hơn sẽ không bị lồi ở mọi nơi. Hầu hết các thói quen tối ưu hóa dựa trên các xấp xỉ liên tiếp của các hàm lồi với tứ giác vì lý do này. Một phép tính gần đúng bậc hai là lồi đòi hỏi một điều kiện xác định dương được áp đặt để bậc hai được lồi.


3
x2-y2

x2-y2

1
Đó là một hàm bậc hai nhưng không lồi cũng không lõm.
Dirk

@Dirk có bạn đúng, tôi nên thêm một cảnh báo bán xác định tích cực. Tôi sẽ thêm nó vào câu trả lời của tôi.
Lucas Roberts

1

dtôim3/6

Tại sao mô hình đơn hàng thứ 3 có thể có lợi? Ví dụ, vì đạo hàm gần bằng 0 theo hướng này về cơ bản có nghĩa là hai kịch bản thay thế: cao nguyên hoặc điểm uốn - chỉ trước đây yêu cầu kích thước bước lớn hơn và đạo hàm thứ 3 cho phép phân biệt chúng.

Tôi tin rằng chúng ta sẽ hướng tới các phương pháp đa thứ tự lai: Phương pháp bậc 2 trong không gian con chiều thấp, ví dụ từ PCA của các gradient gần đây, những gì vẫn cho phép giảm độ dốc đồng thời bậc 1 miễn phí xuống một phần của trực giao gradient cho không gian con này ... và thêm vào đó Tôi sẽ thêm ví dụ mô hình thứ 3 cho một hướng phù hợp nhất.

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.