Objaśnienie min_child_weight w algorytmie xgboost

23

Definicja parametru min_child_weight w xgboost jest podawana jako:

minimalna suma wagi instancji (hessian) potrzebna dziecku. Jeśli krok partycji drzewa spowoduje utworzenie węzła liścia o sumie wagi instancji mniejszej niż min_child_weight, wówczas proces budowania przerwie dalsze partycjonowanie. W trybie regresji liniowej odpowiada to po prostu minimalnej liczbie wystąpień wymaganych w każdym węźle. Im większy, tym bardziej konserwatywny będzie algorytm.

Przeczytałem sporo rzeczy na temat xgboost, w tym oryginalny artykuł (patrz wzór 8 i ten zaraz po równaniu 9), to pytanie i większość rzeczy związanych z xgboost, które pojawiają się na pierwszych stronach wyszukiwania Google. ;)

Zasadniczo nadal nie jestem szczęśliwy, dlaczego nakładamy ograniczenie na sumę hessianu? Moją jedyną myślą w tej chwili z oryginalnego artykułu jest to, że dotyczy on ważonej sekcji szkicu kwantylu (i przeformułowania z równania 3 ważonej straty kwadratowej), która ma jako „wagę” każdego wystąpienia.hi

Kolejne pytanie dotyczy tego, dlaczego jest to po prostu liczba wystąpień w trybie regresji liniowej? Myślę, że jest to związane z drugą pochodną sumy równania kwadratów?

maw501
źródło

Odpowiedzi:

42

W przypadku regresji utrata każdego punktu w węźle wynosi

12(yiyi^)2

Druga pochodna tego wyrażenia w odniesieniu do to . Tak więc, sumując drugą pochodną na wszystkich punktach w węźle, otrzymujesz liczbę punktów w węźle. W tym przypadku min_child_weight oznacza coś w rodzaju „przestań próbować podzielić, gdy wielkość próbki w węźle spadnie poniżej określonego progu”. 1yi^1

W przypadku binarnej regresji logistycznej, hessian dla każdego punktu w węźle będzie zawierać terminy podobne

σ(yi^)(1σ(yi^))

gdzie jest funkcją sigmoidalną. Powiedz, że jesteś w czystym węźle (np. Wszystkie przykłady szkolenia w tym węźle to 1). Wtedy wszystkie będą prawdopodobnie dużymi dodatnimi liczbami, więc wszystkie będą bliskie 1, więc wszystkie wyrażenia hessianowe będą bliskie 0. Podobne logika obowiązuje, jeśli wszystkie przykłady szkolenia w węźle mają wartość 0. W tym przypadku min_child_weight oznacza coś w rodzaju „przestań próbować rozdzielić, gdy osiągniesz pewien stopień czystości w węźle i twój model będzie w stanie go dopasować”.^ y i σ ( ^ y i )σyi^σ(yi^)

Hesjan to rozsądna rzecz, której można używać do regularyzacji i ograniczania głębokości drzewa. W przypadku regresji łatwo jest zobaczyć, jak możesz się dopasować, jeśli zawsze dzielisz się na węzły z, powiedzmy, tylko 1 obserwacją. Podobnie w przypadku klasyfikacji łatwo jest zobaczyć, jak możesz się przesadzić, jeśli nalegasz na podział, dopóki każdy węzeł nie będzie czysty.

hahdawg
źródło
Dziękuję za odpowiedź, nie mogę cię głosować z powodu niskiej reputacji.
maw501
1
Cześć @ maw501: Nie ma problemów, mogę. Dobra odpowiedź Hahdawg!
Catbuilts,
Więc w przypadku wysoce niezrównoważonych danych, jaki jest twój proponowany zakres dla min_child_weight?
Mahdi Baghbanzadeh
Czy w zbalansowanym zbiorze danych min_child_weight obejmuje również wagi? Dziękuję Ci! @hahdawg
HanaKaze