Hesjan funkcji logistycznej

15

Mam trudności z wyprowadzeniem Hesji funkcji celu, , w regresji logistycznej, gdzie wynosi: l(θ)l(θ)

l(θ)=i=1m[yilog(hθ(xi))+(1yi)log(1hθ(xi))]

hθ(x) to funkcja logistyczna. Hessian to . Próbowałem to wyliczyć, obliczając , ale wtedy nie było dla mnie oczywiste, jak dostać się do notacji macierzowej z .XTDX2l(θ)θiθj2l(θ)θiθj

Czy ktoś zna jakiś czysty i łatwy sposób na uzyskanie ?XTDX

DSKim
źródło
3
co dostałeś za 2lθiθj ?
Glen_b
1
Oto dobry zestaw slajdów, które pokazują dokładne obliczenia, których szukasz: sites.stat.psu.edu/~jiali/course/stat597e/notes2/logit.pdf
Znalazłem wspaniałe wideo, które krok po kroku oblicza Hesję. Regresja logistyczna (binarna) - obliczanie Hesji
Naomi

Odpowiedzi:

20

Tutaj czerpię wszystkie niezbędne właściwości i tożsamości, aby rozwiązanie było samodzielne, ale oprócz tego wyprowadzenie jest czyste i łatwe. Sformalizujmy naszą notację i napiszmy nieco funkcję zwartości. Rozważmy próbki takie, że i . Przypomnijmy, że w binarnej regresji logistycznej zwykle mamy funkcję hipotezy jest funkcją logistyczną. Formalniem{xi,yi}xiRdyiRhθ

hθ(xi)=σ(ωTxi)=σ(zi)=11+ezi,

gdzie oraz . Funkcja straty (która moim zdaniem OP nie ma znaku ujemnego) jest następnie definiowana jako:ωRdzi=ωTxi

l(ω)=i=1m(yilogσ(zi)+(1yi)log(1σ(zi)))

Istnieją dwie ważne właściwości funkcji logistycznej, które wyprowadzam tutaj na przyszłość. Najpierw zauważ, że .1σ(z)=11/(1+ez)=ez/(1+ez)=1/(1+ez)=σ(z)

Zauważ też, że

zσ(z)=z(1+ez)1=ez(1+ez)2=11+ezez1+ez=σ(z)(1σ(z))

Zamiast podejmować pochodnych w odniesieniu do komponentów, tutaj będziemy pracować bezpośrednio z wektorami (można przejrzeć pochodne wektorami tutaj ). Hessian funkcji straty jest podany przez , ale najpierw pamiętaj, że i .l(ω)2l(ω)zω=xTωω=xTzωT=ωTxωT=x

Niech . Wykorzystując powyższe właściwości i regułę łańcuchali(ω)=yilogσ(zi)(1yi)log(1σ(zi))

logσ(zi)ωT=1σ(zi)σ(zi)ωT=1σ(zi)σ(zi)ziziωT=(1σ(zi))xilog(1σ(zi))ωT=11σ(zi)(1σ(zi))ωT=σ(zi)xi

Teraz jest to banalne

li(ω)=li(ω)ωT=yixi(1σ(zi))+(1yi)xiσ(zi)=xi(σ(zi)yi)

uff!

Naszym ostatnim krokiem jest obliczenie Hesji

2li(ω)=li(ω)ωωT=xixiTσ(zi)(1σ(zi))

Dla próbek mamy . Jest to równoważne konkatenację wektorów kolumny do macierzy o rozmiarze , tak że . Terminy skalarne są łączone w macierz diagonalną tak że . Wreszcie dochodzimy do wnioskum2l(ω)=i=1mxixiTσ(zi)(1σ(zi))xiRdXd×mi=1mxixiT=XXTDDii=σ(zi)(1σ(zi))

H(ω)=2l(ω)=XDXT

Szybsze podejście można uzyskać, biorąc pod uwagę wszystkie próbki od początku i zamiast tego pracować z pochodnymi macierzowymi. Dodatkowo, w tym sformułowaniu banalne jest wykazanie, że jest wypukły. Niech będzie dowolnym wektorem takim, że . Następniel(ω)δδRd

δTH(ω)δ=δT2l(ω)δ=δTXDXTδ=δTXD(δTX)T=δTDX20

od i . To implikuje, że jest dodatnio-pół-skończony, a zatem jest wypukły (ale nie silnie wypukły).D>0δTX0Hl

Manuel Morales
źródło
2
W ostatnim równaniu nie powinno to byćponieważ = ? ||δD1/2X||XDXXD1/2(XD1/2)
appletree
1
Czy nie powinien to być ? XTDX
Chintan Shah,