로지스틱 함수의 헤 시안


15

가 다음과 같은 로지스틱 회귀 분석에서 목적 함수 의 Hessian을 도출하는 데 어려움이 있습니다 . : l(θ)l(θ)

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

hθ(x) 는 로지스틱 함수입니다. 헤 시안은 입니다. I가 계산하여 도출하려고 하지만 다음은 행렬 표기법으로 얻는 방법을 그다지 명백하지 않았다 .XTDX2l(θ)2l(θ)θiθj2l(θ)θiθj

아무도 를 도출하는 깨끗하고 쉬운 방법을 알고 있습니까?XTDX


3
당신이 무엇을 얻었 는가 2lθiθj ?
Glen_b-복지국 모니카

1
원하는 정확한 계산을 보여주는 좋은 슬라이드 세트는 다음과 같습니다. sites.stat.psu.edu/~jiali/course/stat597e/notes2/logit.pdf

나는 Hessian을 단계별로 계산하는 멋진 비디오를 발견했습니다. 로지스틱 회귀 (이진)-Hessian 계산
Naomi

답변:


20

여기서는 솔루션이 자체적으로 포함되는 데 필요한 모든 속성과 ID를 도출하지만이 파생물은 깨끗하고 쉽습니다. 표기법을 공식화하고 손실 함수를 좀 더 간결하게 작성하겠습니다. 고려 샘플 되도록 및 . 이항 로지스틱 회귀 분석에서는 일반적으로 가설 함수 가 로지스틱 함수라는 것을 상기하십시오. 공식적으로m{xi,yi}xiRdyiRhθ

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

여기서 및 입니다. 손실 기능 (OP에 음수 부호가 없다고 생각)은 다음과 같이 정의됩니다.ωRdzi=ωTxi

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

나중에 참조하기 위해 여기서 유도하는 로지스틱 함수의 두 가지 중요한 특성이 있습니다. 먼저 입니다.1σ(z)=11/(1+ez)=ez/(1+ez)=1/(1+ez)=σ(z)

또한

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

성분에 대한 도함수를 취하는 대신 여기에서 벡터를 직접 사용합니다 ( 여기서는 벡터가있는 도함수를 검토 할 수 있음 ). 손실 함수 의 Hessian은 의해 주어 지지만 먼저 및 .l(ω)2l(ω)zω=xTωω=xTzωT=ωTxωT=x

하자 . 위에서 파생 한 속성과 체인 규칙 사용li(ω)=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

이제는 그것을 보여주는 것은 사소한 일입니다.

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

아휴!

마지막 단계는 Hessian을 계산하는 것입니다

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

들어 샘플 우리가 . 이것은 벡터 열을 연접 동등 행렬로 크기의 되도록 . 스칼라 항은 되도록 대각 행렬 로 결합됩니다 . 마지막으로, 우리는 결론m2l(ω)=i=1mxixiTσ(zi)(1σ(zi))xiRdXd×mi=1mxixiT=XXTDDii=σ(zi)(1σ(zi))

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

모든 샘플을 처음부터 한 번에 고려하고 대신 매트릭스 파생물을 사용하여 더 빠른 접근 방식을 도출 할 수 있습니다. 참고로,이 공식을 사용하면 가 볼록한 것을 보여주는 것은 사소한 일 입니다. 하자 임의 벡터 일되도록 . 그때l(ω)δδRd

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

및 이기 때문 입니다. 이것은 가 양의 반 음성이므로 이 볼록 하다는 것을 의미합니다 (단, 볼록하지는 않습니다).D>0δTX0Hl


2
마지막 방정식에서사람 = ? ||δD1/2X||XDXXD1/2(XD1/2)
appletree

1
이어야하지 않습니까? XTDX
Chintan Shah
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.