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))+(1−yi)log⁡(1−hθ(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 .XTDX∂2l(θ)∂θi∂θj∂2l(θ)∂θi∂θj

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


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}xi∈Rdyi∈Rhθ

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

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)+(1−yi)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)=1−1/(1+e−z)=e−z/(1+e−z)=1/(1+ez)=σ(−z)

Zauważ też, że

∂∂zσ(z)=∂∂z(1+e−z)−1=e−z(1+e−z)−2=11+e−ze−z1+e−z=σ(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ω∂ω=xT∂z∂ωT=∂ωTx∂ωT=x

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

∂log⁡σ(zi)∂ωT=1σ(zi)∂σ(zi)∂ωT=1σ(zi)∂σ(zi)∂zi∂zi∂ωT=(1−σ(zi))xi∂log⁡(1−σ(zi))∂ωT=11−σ(zi)∂(1−σ(zi))∂ωT=−σ(zi)xi

Teraz jest to banalne

∇→li(ω)=∂li(ω)∂ωT=−yixi(1−σ(zi))+(1−yi)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 wnioskum∇→2l(ω)=∑i=1mxixiTσ(zi)(1−σ(zi))xi∈RdXd×m∑i=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→(ω)δ=δT∇→2l(ω)δ=δTXDXTδ=δTXD(δTX)T=‖δTDX‖2≥0

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


2
W ostatnim równaniu nie powinno to byćponieważ = ? ||δD1/2X||XDX⊤XD1/2(XD1/2)⊤
— appletree

1
Czy nie powinien to być ? XTDX
— Chintan Shah,
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.