Dlaczego nie wykorzystać trzeciej pochodnej do optymalizacji numerycznej?

29

Jeśli Hesjanie są tak dobrzy do optymalizacji (patrz np . Metoda Newtona ), po co się tu zatrzymywać? Użyjmy trzeciej, czwartej, piątej i szóstej pochodnej? Dlaczego nie?

Echo
źródło
11
Gdy znajdziesz optymalne, po co szukać dalej? Rzeczywiście, o co tak naprawdę chcesz zapytać? Jakie jest twoje pytanie statystyczne?
whuber
2
W wielu przypadkach ograniczający rozkład oszacowań, który rozwiązuje optymalne równania szacunkowe lub minimalizuje funkcje celu, są wspólnie normalne, dzięki czemu można je całkowicie scharakteryzować za pomocą pierwszego i drugiego momentu.
AdamO,
3
Jeśli możesz coś zrobić, to nie znaczy, że powinieneś to zrobić. Pochodne wyższego rzędu są coraz bardziej podatne na hałas.
Vladislavs Dovgalecs
6
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ nie dotyczy statystyk. Chodzi o optymalizację numeryczną
Aksakal
11
Nie dokonałeś przełomu naukowego. Halley pokonał cię około 3 1/4 wieków. Halley, E., 1694, „Nowa, dokładna i łatwa metoda znajdowania podstaw wszelkich równań ogólnie i bez wcześniejszej redukcji” Philos. Trans. Roy. Soc. Londyn, 18, 136–145. Metody optymalizacji 3. pochodnych istniały i były badane od wielu lat, ale nie zyskały dużej popularności. Jeśli są dobrze zaimplementowane, ich największą zaletą może być wzrost niezawodności w porównaniu z dobrze zaimplementowaną metodą Newtona. Może to być korzystne w przypadku najbardziej paskudnych problemów.
Mark L. Stone,

Odpowiedzi:

31

Interpretuję to pytanie jako „dlaczego metoda Newtona wykorzystuje tylko pierwszą i drugą pochodną, ​​a nie trzecią lub wyższą?”

W rzeczywistości, w wielu przypadkach, przejście do trzeciej pochodnej pomaga; Wcześniej robiłem to z niestandardowymi rzeczami. Jednak ogólnie rzecz biorąc, przejście na wyższe pochodne powoduje złożoność obliczeniową - musisz znaleźć i obliczyć wszystkie te pochodne, a w przypadku problemów wielowymiarowych istnieje znacznie więcej trzecich pochodnych niż pierwszych pochodnych! - to znacznie przewyższa ewentualne oszczędności w liczbie kroków. Na przykład, jeśli mam problem trójwymiarowy, mam 3 pierwsze pochodne, 6 drugie pochodne i 10 trzecie pochodne, więc przejście do wersji trzeciego rzędu ponad dwukrotnie zwiększa liczbę ocen, które muszę wykonać (od 9 do 19), nie wspominając o zwiększonej złożoności obliczania kierunku / wielkości kroku po wykonaniu tych ocen, ale prawie na pewno nie zmniejszy liczby kroków, które muszę podjąć o połowę.

Teraz, w ogólnym przypadku z zmiennych, zbiór pochodnych cząstkowych będzie miał numer , więc w przypadku problemu z pięcioma zmiennymi, całkowita liczba trzeciego , czwarty i piąty częściowe pochodne będą równe 231, ponad 10-krotny wzrost w stosunku do liczby pierwszego i drugiego częściowego pochodnego (20). Musiałbyś mieć problem, który jest bardzo, bardzo bliski wielomianowi piątego rzędu w zmiennych, aby zobaczyć wystarczająco duże zmniejszenie liczby iteracji, aby zrekompensować to dodatkowe obciążenie obliczeniowe.knth(k+n1k1)

łucznik
źródło
3
Czy możesz wyjaśnić, w jaki sposób korzystasz z wyższych instrumentów pochodnych?
whuber
5
@whuber To, o czym mówi OP, niezwykle niejasno muszę przyznać, że jest to metoda Newtona w optymalizacji. Pytanie naprawdę brzmi: „Dlaczego metoda Newtona używa tylko pierwszej i drugiej pochodnej, a nie trzeciej lub wyższej pochodnej?”. Jest to nie na temat, a także niejasne, o co pyta, ale pomyślałem, że po prostu dam odpowiedź, zamiast głosować za zamknięciem z tego czy innego powodu.
jbowman
4
+1 Myślę, że to dobra odpowiedź, ale można ją poprawić, pokazując, co planujesz w oparciu o rozszerzenie Taylor.
Matthew Drury
8
Jeden z moich profesorów - również odnoszący sukcesy konsultant - powiedział nam kiedyś: „Ilekroć myślisz, że wymyśliłeś lepszą pułapkę na myszy, spróbuj dowiedzieć się, dlaczego 1000 osób wpadło na ten sam pomysł zanim nie wprowadzisz go na rynek ”. Cały sens używania Newtona polega na zapisaniu obliczeń - w przeciwnym razie po prostu przeprowadzilibyśmy wyczerpujące wyszukiwanie. Zapewniam cię, dodanie trzeciej pochodnej do trójwymiarowego problemu bardzo, bardzo rzadko zapłaci za podwojenie obliczeń na każdym kroku przy znacznie zmniejszonych iteracjach, chyba że funkcja jest ~ sześcienna.
jbowman
9
Nie, to nie jest - to trochę głębszy komentarz, niż może się wydawać na początku. Rzecz jest dwojaka - większość pomysłów, które na pierwszy rzut oka wydają się dobre, nie jest z powodów, które wcale nie są oczywiste, a prawdziwym kluczem do przełomu może nie być sam pomysł, ale coś, co przezwycięża lub rozwiązuje problem pomysł. To rozumowanie w rzeczywistości wskazuje na to i każe szukać słabych punktów w tym pomyśle. Nie chodzi o rezygnację, chodzi o przemyślenie wszystkiego i krytyczne spojrzenie.
jbowman
22

Naprawdę nie rozumiem, jaki jest statystyczny aspekt tego pytania, więc odpowiem na część dotyczącą optymalizacji.

Konwergencja składa się z 2 części: kosztów iteracji i liczby iteracji

Prawie każda odpowiedź tutaj koncentruje się tylko na koszcie iteracji i ignoruje liczbę iteracji . Ale oba mają znaczenie. Metoda, która iteruje w 1 nanosekundę, ale do uzyskania zbieżności nic ci nie da. A metoda, która się wysadzi, też nie pomoże, bez względu na to, jak tani jest koszt iteracji.1020

Zastanówmy się, co się dzieje.

Więc: dlaczego nie użyć> instrumentów pochodnych drugiego rzędu?

Częściowo dlatego, że (dotyczy to również drugiego rzędu, ale o tym za chwilę):

Metody wyższego rzędu zazwyczaj zbiegają się szybciej, gdy są bliskie optimum .

Z drugiej strony wybuchają łatwiej, gdy są dalej od optymalnego!

(Oczywiście nie zawsze jest to prawdą; np. Kwadratyka zbiegnie się w 1 kroku metodą Newtona. Ale w przypadku dowolnych funkcji w świecie rzeczywistym, które nie mają ładnych właściwości, jest to na ogół prawda).

Oznacza to, że gdy znajdujesz się dalej od optymalnego, zazwyczaj potrzebujesz metody niskiego rzędu (czytaj: pierwszego rzędu). Dopiero gdy jesteś blisko, chcesz zwiększyć kolejność metody.

Po co więc zatrzymywać się na drugim rzędzie, gdy jesteś blisko korzenia?

Ponieważ „kwadratowe” zachowanie konwergencji jest naprawdę „wystarczająco dobre”!

Aby zrozumieć, dlaczego, musisz najpierw zrozumieć, co oznacza „konwergencja kwadratowa” .

Z matematycznego punktu widzenia konwergencja kwadratowa oznacza, że ​​jeśli jest twoim błędem w iteracji , to w końcu dla niektórych stałych :ϵkkc

|ϵk+1|c |ϵk|2

Mówiąc wprost, oznacza to, że gdy znajdziesz się w pobliżu optymalnego (ważne!), Każdy dodatkowy krok podwaja liczbę cyfr dokładności .

Czemu? Łatwo to zobaczyć na przykładzie: dla i masz , itd., Co jest absurdalnie szybkie . (Jest to wykładniczy !)c=1|ϵ1|=0.1|ϵ2|0.01|ϵ3|0.0001

Dlaczego nie zatrzymać się na pierwszym zamówieniu, a nie na drugim?

W rzeczywistości ludzie często to robią, gdy instrumenty pochodne drugiego rzędu stają się zbyt drogie. Ale liniowa konwergencja może być bardzo powolna. np. jeśli masz , to potrzebujesz 10 000 000 iteracji ze zbieżnością liniową, aby uzyskać , ale tylko 23 iteracje ze zbieżnością kwadratową. Możesz więc zobaczyć, dlaczego istnieje drastyczna różnica między zbieżnością liniową i kwadratową. Nie dotyczy to na przykład konwergencji drugiego i trzeciego rzędu (patrz następny akapit).ϵk=0.9999999|ϵ|<0.5

W tym momencie, jeśli znasz się na informatyce, rozumiesz, że dzięki konwergencji drugiego rzędu problem został już rozwiązany . Jeśli nie rozumiesz dlaczego, oto dlaczego: nie ma nic praktycznego do zyskania dzięki potrojeniu liczby cyfr w każdej iteracji zamiast jej podwojeniu - co ci kupi? Wszakże w komputerze nawet doubledokładna liczba ma 52 bity precyzji, czyli około 16 cyfr dziesiętnych. Może to zmniejszy liczbę wymaganych kroków z 16 do 3 ... co brzmi świetnie, dopóki nie zdasz sobie sprawy, że przychodzi to za cenę obliczania trzecich pochodnych przy każdej iteracji, czyli tam, gdzie przekleństwo wymiarowościuderza cię mocno. W przypadku problemu wymiarowego właśnie zapłaciłeś współczynnik aby uzyskać współczynnik , co jest głupie. A w prawdziwym świecie problemy mają co najmniej setki wymiarów (a nawet tysiące, a nawet miliony), a nie tylko ! Więc zyskujesz współczynnik może 20, płacąc współczynnik, powiedzmy, 20 000 ... nie jest to rozsądny kompromis.6656

Ale znowu: pamiętaj, że przekleństwo wymiarowości to połowa historii .

Druga połowa polega na tym, że zazwyczaj gorsze zachowanie jest dalekie od optymalnego, co ogólnie negatywnie wpływa na liczbę iteracji, które musisz wykonać.

Wniosek

W ogólnym ustawieniu metody wyższego rzędu niż 2 są złym pomysłem. Oczywiście, jeśli można przynieść dodatkowe pomocne założeń do tabeli (na przykład dane może nie przypominać wysoki stopień wielomianu, lub masz sposoby ograniczające położenie optimum, etc.), a następnie być może okaże się, że są one dobry pomysł - ale będzie to decyzja związana z konkretnym problemem, a nie ogólna zasada życia.

Mehrdad
źródło
Świetna odpowiedź, ale myślę, że twierdzenie Abla-Ruffiniego to czerwony śledź. Przede wszystkim mówimy o problemach wielowymiarowych, więc obliczanie zer wielomianów jednowymiarowych jest co najwyżej łatwym podproblemem o ograniczonym zainteresowaniu. I, co ważniejsze, nie ma znaczenia, czy istnieje zamknięta formuła rozwiązania, czy nie: w praktyce, o ile mi wiadomo, ludzie nie używają zamkniętych formuł nawet dla wielomianów stopnia 4. Są po prostu za długie, skomplikowane i niestabilne. Zera wielomianów oblicza się numerycznie, w praktyce (przy użyciu QR na macierzy towarzyszącej).
Federico Poloni,
@FedericoPoloni: Tak, te same myśli przyszły mi do głowy, kiedy zdecydowałem się je wprowadzić. Nie miałem tego pierwotnie ... Pomyślałem, że może powinienem umieścić to jako kolejny przykład, dlaczego wyższe stopnie mogą mieć nieoczekiwane problemy. Ale myślę, że wyciągnę to jeszcze raz, jeśli to nie pomoże, dzięki za komentarz.
Mehrdad
@FedericoPoloni: PS Gdy jesteśmy w temacie obliczeń numerycznych, możesz zainteresować się funkcjami Sturma (jeśli jeszcze o nich nie słyszałeś).
Mehrdad
7

Nawet obliczanie Hesjan jest dość pracochłonne:

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

Zobaczmy teraz, jak wygląda trzecia pochodna: Jest to macierz trójwymiarowa. Oto jak wyglądają jego elementy:

H/x=[Hx1Hx2Hxn]
(H/x)ijk=3fxixjxk

Pochodną szóstą będzie macierz :

6fxixjxkxlxmxn

Zwykle kompromis nie jest korzystny, jeśli chodzi o wyższe niż Heskie. Mam na myśli kompromis między potencjalnym przyrostem prędkości poprzez zastosowanie aproksymacji wyższych rzędów a wzmocnieniem szumu. Zawsze masz szum na wejściu, ponieważ mówimy o zastosowaniach statystycznych. Ten hałas zostanie wzmocniony przez pochodne.

Jeśli grasz w golfa, analogia w optymalizacji polega na tym, aby najpierw uderzyć próbując dostać się do zieleni, nie martw się zbytnio o dołek. Kiedyś na zieleni postawimy celowanie dołka.

Aksakal
źródło
4

Zazwyczaj, gdy analizujesz skuteczność takich algorytmów, znajdziesz wyniki, takie jak jeden krok algorytmu czwartego rzędu mający mniej więcej taką samą skuteczność jak dwa kroki algorytmu drugiego rzędu.

Zatem wybór używanego algorytmu jest stosunkowo prosty: jeśli jeden krok algorytmu czwartego rzędu zajmuje dwa razy więcej pracy lub więcej niż jeden krok algorytmu drugiego rzędu, zamiast tego należy użyć tego drugiego.

Jest to typowa sytuacja dla tego rodzaju metod: klasyczny algorytm ma optymalny stosunek wydajności do wydajności dla ogólnych problemów. Chociaż zdarzają się czasem problemy, w których podejście wyższego rzędu jest niezwykle łatwe do obliczenia i może przewyższyć klasyczny wariant, są one stosunkowo rzadkie.


źródło
2

Kolejność pochodnych można traktować jako kolejność wielomianowego przybliżenia do funkcji. Większość procedur optymalizacji opiera się na wypukłości. Kwadratowy wielomian będzie wszędzie wypukły / wklęsły, podczas gdy wielomian trzeciego rzędu lub wyższy nie będzie wszędzie wypukły. Z tego powodu większość procedur optymalizacji opiera się na kolejnych aproksymacjach funkcji wypukłych z kwadratami. Kwadratowe przybliżenie, które jest wypukłe, wymaga nałożenia warunku dodatniej pozytywności, aby kwadrat był wypukły.

Lucas Roberts
źródło
3
Nie, kwadratyki niekoniecznie muszą być wypukłe lub wklęsłe (pomyśl o ). x2y2
Dirk
@Dirk równy co? x2y2
Ovi
1
Jest to funkcja kwadratowa, ale ani wypukła, ani wklęsła.
Dirk
@Dirk tak masz rację, powinienem był dodać pozytywne, częściowo określone zastrzeżenie. Dodam to do mojej odpowiedzi.
Lucas Roberts,
1

Pozwól mi być tutaj jedyną broniącą metod 3-go rzędu dla konwergencji SGD, ale zdecydowanie nie w całej przestrzeni, co wymagałoby współczynników, ale np. Tylko w jednym kierunku, który potrzebuje tylko jednego dodatkowego współczynnika, jeśli mając już model drugiego rzędu w tym kierunku.dim3/6

Dlaczego jednokierunkowy model trzeciego rzędu może być korzystny? Na przykład ponieważ blisko zera druga pochodna w tym kierunku w zasadzie oznacza dwa alternatywne scenariusze: plateau lub punkt przegięcia - tylko pierwszy wymaga większej wielkości kroku, a trzecia pochodna pozwala je rozróżnić.

Wierzę, że pójdziemy w kierunku hybrydowych metod wielopoziomowych: metody drugiego rzędu w podprzestrzeni o niskim wymiarze np. Z PCA ostatnich gradientów, co wciąż pozwala na swobodne równoczesne opadanie pierwszego rzędu w kierunku części gradientu prostopadłego do tej podprzestrzeni ... i dodatkowo Dodałbym np. Model trzeciego rzędu dla jednego najbardziej odpowiedniego kierunku.

Jarek Duda
źródło