Hessian da função logística


15

Tenho dificuldade em derivar o Hessiano da função objetivo, , em regressão logística em que é: l(θ)l(θ)

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

hθ(x) é uma função logística. O hessiano é . Tentei derivá-lo calculando , mas não me era óbvio como chegar à notação matricial de .XTDX∂2l(θ)∂θi∂θj∂2l(θ)∂θi∂θj

Alguém conhece alguma maneira limpa e fácil de derivar ?XTDX


3
o que você recebeu por ? ∂2l∂θi∂θj
— Glen_b -Replica Monica

1
Aqui está um bom conjunto de slides que mostram o cálculo exato que você está procurando: sites.stat.psu.edu/~jiali/course/stat597e/notes2/logit.pdf

Encontrei um vídeo maravilhoso que calcula o Hessian passo a passo. Regressão logística (binário) - computar o Hessian
— Naomi

Respostas:


19

Aqui, deduzo todas as propriedades e identidades necessárias para que a solução seja independente, mas, além disso, essa derivação é limpa e fácil. Vamos formalizar nossa notação e escrever a função de perda um pouco mais compacta. Considere m amostras {xi,yi} de tal modo que xi∈Rd e yi∈R . Lembre-se de que, na regressão logística binária, normalmente temos a função de hipótese hθ ser a função logística. Formalmente

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

onde ω∈Rd e zi=ωTxi . A função de perda (que eu acredito que OPs está faltando um sinal negativo) é então definida como:

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

Existem duas propriedades importantes da função logística que derivam aqui para referência futura. Primeiro, observe que 1−σ(z)=1−1/(1+e−z)=e−z/(1+e−z)=1/(1+ez)=σ(−z) .

Observe também que

∂∂zσ(z)=∂∂z(1+e−z)−1=e−z(1+e−z)−2=11+e−ze−z1+e−z=σ(z)(1−σ(z))

Em vez de usar derivadas com relação aos componentes, aqui trabalharemos diretamente com vetores (você pode revisar derivadas com vetores aqui ). O Hesse da função perda l(ω) é dada por ∇→2l(ω) , mas primeira recolha que ∂z∂ω=xTω∂ω=xTe∂z∂ωT=∂ωTx∂ωT=x.

Seja li(ω)=−yilog⁡σ(zi)−(1−yi)log⁡(1−σ(zi)) . Usando as propriedades que derivamos acima e a regra da cadeia

∂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

Agora é trivial mostrar que

∇→li(ω)=∂li(ω)∂ωT=−yixi(1−σ(zi))+(1−yi)xiσ(zi)=xi(σ(zi)−yi)

uau!

Nosso último passo é calcular o hessiano

∇→2li(ω)=∂li(ω)∂ω∂ωT=xixiTσ(zi)(1−σ(zi))

Para m amostras temos ∇→2l(ω)=∑i=1mxixiTσ(zi)(1−σ(zi)) . Isso é equivalente à concatenação de vetores de colunas xi∈Rd em uma matriz X de tamanho d×m tal que ∑i=1mxixiT=XXT . Os termos escalares são combinados em uma matriz diagonalD de tal forma queDii=σ(zi)(1−σ(zi)) . Finalmente, concluímos que

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

Uma abordagem mais rápida pode ser obtida considerando todas as amostras de uma só vez desde o início e, em vez disso, trabalhe com derivadas da matriz. Como uma observação extra, com esta formulação é trivial mostrar que l(ω) é convexo. Deixe δ ser qualquer vector de modo a que δ∈Rd . Então

δTH→(ω)δ=δT∇→2l(ω)δ=δTXDXTδ=δTXD(δTX)T=‖δTDX‖2≥0

D>0‖δTX‖≥0Hl


2
In the last equation, shouldn't it be ||δD1/2X|| since XDX⊤ = XD1/2(XD1/2)⊤?
— appletree

1
Shouldn't it be XTDX?
— Chintan Shah
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.