Czy w przypadku problemów wypukłych gradient w Stochastic Descent Gradient (SGD) zawsze wskazuje na ekstremalną wartość globalną?

25

Biorąc pod uwagę funkcję wypukłego kosztu, wykorzystującą SGD do optymalizacji, będziemy mieli gradient (wektor) w pewnym punkcie podczas procesu optymalizacji.

Moje pytanie brzmi: biorąc pod uwagę punkt na wypukłości, czy gradient wskazuje tylko w kierunku, w którym funkcja rośnie / zmniejsza się najszybciej, czy gradient zawsze wskazuje na optymalny / skrajny punkt funkcji kosztu ?

Pierwsza z nich to koncepcja lokalna, druga to koncepcja globalna.

SGD może ostatecznie zbliżyć się do ekstremalnej wartości funkcji kosztu. Zastanawiam się nad różnicą między kierunkiem gradientu podanym dowolnym punktem na wypukłym a kierunkiem wskazującym na ekstremalną wartość globalną.

Kierunek gradientu powinien być kierunkiem, w którym funkcja zwiększa się / zmniejsza najszybciej w tym punkcie, prawda?

Tyler 十三 将士 归 玉门
źródło
6
Czy zdarzyło Ci się kiedyś zejść prosto z grzbietu górskiego, by znaleźć się w dolinie, która prowadzi w dół w innym kierunku? Wyzwaniem jest wyobrazić sobie taką sytuację z wypukłą topografią: pomyśl o krawędzi noża, w której grzbiet jest najbardziej stromy na szczycie.
whuber
4
Nie, ponieważ jest to stochastyczne zejście gradientowe, a nie gradientowe. Cały sens SGD polega na tym, że wyrzucasz niektóre informacje o gradiencie w zamian za zwiększoną wydajność obliczeniową - ale oczywiście odrzucając niektóre informacje o gradientach, nie będziesz już miał kierunku oryginalnego gradientu. To już ignoruje kwestię, czy regularne punkty gradientu w kierunku optymalnego zejścia, ale chodzi o to, że nawet jeśli miało to miejsce przy regularnym spadku, nie ma powodu, aby oczekiwać stochastycznego spadku.
Chill2Macht
3
@Tyler, dlaczego twoje pytanie dotyczy stochastycznego spadku gradientu. Czy wyobrażasz sobie coś innego w porównaniu ze standardowym spadkiem gradientu?
Sextus Empiricus,
2
Gradient zawsze będzie wskazywał na optimum w tym sensie, że kąt między gradientem a wektorem do optimum będzie miał kąt mniejszy niż i idąc w kierunku gradientu, nieskończenie mała ilość zbliży cię do optimum. π2
Przywróć Monikę
5
Gdyby gradient wskazywał bezpośrednio na globalny minimalizator, optymalizacja wypukła stałaby się bardzo łatwa, ponieważ moglibyśmy po prostu przeprowadzić jednowymiarowe wyszukiwanie linii, aby znaleźć globalny minimalizator. To za wiele na co można liczyć.
littleO

Odpowiedzi:

36

Mówią, że obraz jest wart więcej niż tysiąc słów. W poniższym przykładzie (dzięki uprzejmości MS Paint, poręcznego narzędzia zarówno dla amatorskich, jak i profesjonalnych statystyków) widać wypukłą powierzchnię funkcji i punkt, w którym kierunek najbardziej stromego zejścia wyraźnie różni się od kierunku w kierunku optymalnego.

Obraz wydłużonej funkcji wypukłej i strzałki wskazujące, że kierunek najbardziej stromego zejścia nie jest taki sam, jak kierunek w kierunku globalnego optimum

Mówiąc poważnie: w tym wątku są o wiele lepsze odpowiedzi, które również zasługują na aprobatę.

Jan Kukacka
źródło
27
A dzisiejszym kontrprzykładem jest ... awokado!
JDL
11
Widzisz, że podczas wycinania awokado, należy ciąć w najbardziej stromym kierunku, aby uniknąć ziaren i możliwej kontuzji .
Jan Kukacka
28
  • Metody zejścia gradientowego wykorzystują nachylenie powierzchni.
  • Będzie to nie koniecznie (lub nawet najprawdopodobniej nie) punkt bezpośrednio do punktu skrajnego.

Intuicyjnym widokiem jest wyobrażenie sobie ścieżki zejścia, która jest zakrzywioną ścieżką. Zobacz na przykład poniższe przykłady.

Jako analogię: wyobraź sobie, że zasłaniam ci oczy i umieszczam cię gdzieś na górze z zadaniem powrotu do skrajnego (niskiego) punktu. Na wzgórzu, jeśli masz tylko lokalne informacje, to jesteś nie wiedząc, w jakim kierunku będzie dno jeziora.

Jeśli możesz założyć wypukłość

  • Wtedy wiesz, że jest tylko jeden skrajny punkt.
  • Wtedy wiesz, że na pewno dotrzesz do skrajnego punktu, dopóki schodzisz w dół.
  • π/2

wypukły

Bez wypukłości

  • π/2

    W przypadku wypukłego problemu nie jest to możliwe. Można to odnieść do izolinii dla funkcji kosztu mającej krzywiznę w tym samym kierunku, gdy problem jest wypukły.

nie wypukły

W stochastycznym spadku gradientu

  • Podążasz za najbardziej stromym kierunkiem dla pojedynczego punktu (i wielokrotnie robisz krok dla innego punktu). W tym przykładzie problem jest wypukły, ale może istnieć więcej niż jedno rozwiązanie. W tym przykładzie wartości ekstremalne są na linii (zamiast jednego punktu) iz tego konkretnego punktu widzenia można powiedzieć, że najbardziej stromy kierunek zniżania może wskazywać bezpośrednio na „optymalne” (chociaż jest to tylko optymalne dla funkcji tego konkretnego punktu próbki szkolenia)

pojedyńczy punkt

Poniżej znajduje się inny widok dla czterech punktów danych . Każdy z czterech obrazów pokazuje powierzchnię dla innego pojedynczego punktu. Na każdym kroku wybierany jest inny punkt, wzdłuż którego obliczany jest gradient. To sprawia, że ​​są tylko cztery kierunki, wzdłuż których jest wykonywany krok, ale rozmiary kroków zmniejszają się, gdy zbliżamy się do rozwiązania.

gradient stochastyczny



Powyższe obrazy dotyczą 4 punktów danych wygenerowanych przez funkcję:

yi=e0.4xie0.8xi+ϵi

x = 0      2      4      6           
y = 0.006  0.249  0.153  0.098

Co skutkuje w:

  • S(a,b)=i=1(yi(eaxiebxi))2
    S(a,b)=[i=12xieaxi(yieaxiebxi)i=12xiebxi(yieaxiebxi)]

  • S(a,b)=i=1(yi(ae0.4xibe0.8xi))2
    S(a,b)=[i=12e0.4xi(yiae0.4xibe0.8xi)i=12e0.8xi(yiae0.4xibe0.8xi)]

  • i

    S(a,b)=(yi(ae0.4bxibe0.8xi))2
    S(a,b)=[2e0.4xi(yiae0.4xibe0.8xi)2e0.8xi(yiae0.4xibe0.8xi)]
    abS=0


Napisane przez StackExchangeStrike


Sextus Empiricus
źródło
17

Strome zejście może być nieefektywne, nawet jeśli funkcja celu jest mocno wypukła.

Zwykłe opadanie gradientu

Mam na myśli „nieefektywny” w tym sensie, że najbardziej strome zejście może powodować kroki, które oscylują daleko od optymalnego, nawet jeśli funkcja jest mocno wypukła lub nawet kwadratowa.

f(x)=x12+25x22x=[0,0]

f(x)=[2x150x2]

α=0.035x(0)=[0.5,0.5],

x(1)=x(0)αf(x(0))

który wykazuje ten niesamowicie oscylujący postęp w kierunku minimum.

wprowadź opis zdjęcia tutaj

θ(x(i),x)(x(i),x(i+1))

wprowadź opis zdjęcia tutaj

x2x12f(x)

Bezpośrednią ścieżką do minimum byłoby poruszanie się „po przekątnej” zamiast w ten sposób, który jest silnie zdominowany przez oscylacje pionowe. Zejście gradientowe zawiera jednak tylko informacje o lokalnej stromości, więc „nie wie”, że strategia byłaby bardziej wydajna i podlega kaprysu Hesji, który ma wartości własne w różnych skalach.

Spadek gradientu stochastycznego

SGD ma te same właściwości, z tą różnicą, że aktualizacje są głośne, co oznacza, że ​​powierzchnia konturu wygląda inaczej z jednej iteracji na drugą, a zatem gradienty również są różne. Oznacza to, że kąt między kierunkiem kroku gradientu a optymalnym również będzie powodował szum - wyobraź sobie te same wykresy z pewnym drżeniem.

Więcej informacji:


Ta odpowiedź zapożycza ten przykład i rysunek z Neural Networks Design (wyd. 2) Rozdział 9 autorstwa Martina T. Hagana, Howarda B. Demutha, Marka Hudsona Beale'a, Orlando De Jesús.

Sycorax mówi Przywróć Monikę
źródło
13

Lokalny najbardziej stromy kierunek różni się od globalnego optymalnego kierunku. Gdyby tak było, kierunek gradientu nie zmieniłby się; ponieważ jeśli zawsze dążysz do swojego optimum, wektor kierunku zawsze wskazywałby optimum. Ale tak nie jest. Jeśli tak, to po co zawracać sobie głowę obliczaniem gradientu przy każdej iteracji?

pistolety
źródło
3

Inne odpowiedzi podkreślają pewne irytujące problemy dotyczące współczynnika konwergencji dla GD / SGD, ale twój komentarz „SGD może się zbiegać ...” nie zawsze jest poprawny (ignorując pedantyczne uwagi na temat użycia słowa „może”, ponieważ wydaje się, że miałeś na myśli "Wola").

(x0,y0)=(1,0)
α
f(x,α)=α2αx.

(f(x0,α)y0)2=α2α,
β
αn+1=αnβ(2αn1)=αn(2αn1)=1αn.
α=12p=12p1p

Nie jestem pewien, czy wypukłość jest wystarczająca, aby przełamać gorsze zachowanie, które istnieje w przypadku ogólnego SGD, ale jeśli dopuścisz funkcje nawet tak złożone jak sześcienne dla twojej funkcji kosztu, SGD może podskakiwać na gęstym podzbiorze domeny i nigdy nie zbiegać się nigdzie lub zbliżyć się do dowolnego cyklu.

±

Interesującą rzeczą w całej sytuacji jest to, że istnieje niezliczona ilość funkcji (takich jak SGD), które przyjmują dowolne funkcje wypukłe jako dane wejściowe, a następnie generują regułę aktualizacji, która zawsze szybko zbiega się do globalnego minimum (jeśli taka istnieje). Chociaż koncepcyjnie istnieje ich mnóstwo, nasze najlepsze próby optymalizacji wypukłej mają patologiczne kontrprzykłady. Jakoś pomysł prostej / intuicyjnej / wydajnej reguły aktualizacji jest sprzeczny z ideą możliwej do udowodnienia poprawnej reguły aktualizacji.

Hans Musgrave
źródło
1
β=1
1
Zauważ, że dowód zbieżności SGD zakłada malejący rozmiar kroku ...
Jan Kukacka,
@MartijnWeterings Dobra obserwacja. Wydaje mi się, że mój przykład faktycznie wskazuje właściwy kierunek. Czy powinienem zaktualizować go o przykład 2D, który nigdy nie wskazuje właściwego kierunku i nie jest rozbieżny?
Hans Musgrave,
β=1β>0βf(x,α)=α2αxβ.
fβ
2

Być może odpowiedzi na to pytanie wymagają szybkiej aktualizacji. Wygląda na to, że SGD daje globalne minimum także w przypadku niewypukłym (wypukły jest tylko specjalnym przypadkiem):

SGD zbiega się do globalnego minimum w głębokim uczeniu się poprzez Star-Convex Path, anonimowi autorzy , artykuł pod podwójną ślepą recenzją na ICLR 2019

https://openreview.net/pdf?id=BylIciRcYQ

Autorzy ustalili konwergencję SGD do globalnego minimum dla niepoprawnych problemów optymalizacyjnych, które często występują w szkoleniu sieci neuronowej. Argument wykorzystuje następujące dwie ważne właściwości: 1) utrata treningu może osiągnąć wartość zerową (w przybliżeniu); 2) SGD podąża ścieżką wypukłą gwiazdy. W takim kontekście, chociaż SGD od dawna uważany jest za algorytm randomizowany, praca ujawnia, że ​​zbiega się on w sposób wewnętrznie deterministyczny do globalnego minimum.

Należy to jednak wziąć z odrobiną soli. Artykuł jest nadal w trakcie przeglądu.

Pojęcie ścieżki wypukłej gwiazdy daje wskazówkę w kierunku, w którym gradient wskazywałby przy każdej iteracji.

Tolga Birdal
źródło