W jaki sposób wzmocnienie gradientu przypomina opadanie gradientu?


9

Czytam przydatny wpis w Wikipedii na temat zwiększania gradientu ( https://en.wikipedia.org/wiki/Gradient_boosting ) i próbuję zrozumieć, w jaki sposób / dlaczego możemy przybliżać reszty za pomocą najbardziej stromego kroku opadania (zwanego również pseudo-gradientem ). Czy ktoś może mi podpowiedzieć, w jaki sposób najbardziej strome zejście jest powiązane / podobne do resztek? Pomoc bardzo ceniona!

wprowadź opis zdjęcia tutaj

Odpowiedzi:


11

Załóżmy, że jesteśmy w następującej sytuacji. Mamy pewne dane , gdzie każdy może być liczbą lub wektorem, i chcielibyśmy wyznaczyć funkcję która aproksymuje zależność , w tym sensie, że najmniejsze kwadraty błąd:{xi,yi}xiff(xi)yi

12i(yif(xi))2

jest mały.

Teraz pojawia się pytanie, czym chcielibyśmy być domeną . Zdegenerowany wybór dla domeny to tylko punkty w naszych danych szkoleniowych. W takim przypadku możemy po prostu zdefiniować , obejmując całą pożądaną domenę, i gotowe. Okrągłym sposobem na uzyskanie tej odpowiedzi jest zejście gradientowe z tą dyskretną przestrzenią jako domeną. To wymaga nieco zmiany punktu widzenia. Spójrzmy na stratę jako funkcję punktu prawdziwego i prognozy (na razie nie jest funkcją, ale tylko wartością prognozy)ff(xi)=yy ff

L(f;y)=12(yf)2

a następnie weź gradient w stosunku do prognozy

fL(f;y)=fy

Następnie aktualizacja gradientu, zaczynając od wartości początkowej wynosiy0

y1=y0f(y0,y)=y0(y0y)=y

Dzięki tej konfiguracji odzyskujemy nasze idealne prognozy w kroku gradientu, co jest miłe!

Błąd tu jest, oczywiście, że chcemy należy określić na wiele więcej niż tylko nasze punkty danych szkolenia. Aby to zrobić, musimy zrobić kilka ustępstw, ponieważ nie jesteśmy w stanie ocenić funkcji straty ani jej gradientu w żadnym innym punkcie niż nasz zestaw danych treningowych. f

Wielka idea jest słabo przybliżonej . L

Startz początkowym domysłem przy , prawie zawsze prostą stałą funkcją , jest to zdefiniowane wszędzie. Teraz wygeneruj nowy działający zestaw danych, oceniając gradient funkcji utraty na danych treningowych, używając wstępnej domysły dla :ff(x)=f0f

W={xi,f0y}

Now approximate L montując słabą uczący się . Powiedzieć otrzymujemy przybliżenie . Uzyskaliśmy rozszerzenie danych w całej domenie w postaci , chociaż straciliśmy precyzję w punktach treningowych, ponieważ pasujemy do małego ucznia.WFLWF(X)

Finally, użyj zamiast w aktualizacji gradientu w całej domenie:FLf0

f1(x)=f0(x)F(x)

się z , nowego przybliżenia , nieco lepszego niż . Zacznij od i iteruj, aż będziesz zadowolony.f1ff0f1

Mamy nadzieję, że widać, że naprawdę ważne jest przybliżenie gradientu straty. W przypadku minimalizacji metodą najmniejszych kwadratów przyjmuje to postać surowych reszt, ale w bardziej wyrafinowanych przypadkach nie. Maszyna wciąż jednak obowiązuje. Tak długo, jak można zbudować algorytm do obliczania utraty i gradientu strat na danych treningowych, możemy użyć tego algorytmu do przybliżenia funkcji minimalizującej tę stratę.


Tak, myślę, że to dobrze. Jedyną rzeczą do odnotowania jest to, że jeśli na przykład chcesz zwiększyć, aby zminimalizować straty dwumianowe wówczas rozwinięty gradient nie jest już związane z resztkami w naturalny sposób.
iyilog(pi)+(1yi)log(1pi)
Matthew Drury,

Dzięki Matthew. Jedną rzecz, którą staram się rozwiązać. W literaturze często stwierdza się, że aktualizacja modelu to F (m + 1) = F (m) + , gdzie h (m) jest słabym uczniem. Jeśli mam na myśli model oparty na drzewie - czy oznacza to, że zarówno w przypadku regresji, jak i klasyfikacji faktycznie faktycznie aktualizujemy nasze prognozy dla danego punktu danych poprzez proste dodanie wyników dwóch modeli? czy to też działa, jeśli próbujemy to binarnie sklasyfikować? a może znak + nie powinien być interpretowany dosłownie? αmh(m)
Wouter

Znak plus jest dosłowny. Jednak w przypadku słabych uczniów opartych na drzewie prognozy modelu należy interpretować jako średnią ważoną w liściu, nawet w przypadku, gdy drzewo jest odpowiednie do danych dwumianowych. Zauważ jednak, że podczas wzmacniania zwykle nie dopasowujemy się do danych dwumianowych, dopasowujemy się do gradientu prawdopodobieństwa oszacowanego na podstawie prognoz z poprzedniego etapu, który nie będzie wyceniony na . 0,1
Matthew Drury,

1
@MatthewDrury myślę w wielu literaturze, nie są bezpośrednim zmiana z , a z , w którym od 0 do 1, jest szybkość uczenia się. f1f0F(x)f0αF(x)α
Haitao Du

@ hxd1011 Tak, jest to absolutnie poprawne i kluczowe dla skutecznego zwiększenia gradientu.
Matthew Drury
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.