Hessen lojistik fonksiyon


15

Nesnel fonksiyonun Hessian türetmek için zorluk lojistik regresyon, olan: l(θ)l(θ)

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

X T D X 2 l ( θ )hθ(x) bir lojistik işlevdir. Hessian . I hesaplayarak bunu elde etmek için güvenilir , ama o zaman, matris gösterimi krokisi bana belirgin değildi .XTDX2l(θ)2l(θ)θiθj2l(θ)θiθj

Herkes türetmek için temiz ve kolay bir yol biliyor mu ?XTDX


3
sizin için ne aldın ? 2lθiθj
Glen_b-Monica'yı geri yükle

2
Tam aradığınız hesaplamayı gösteren iyi bir slayt kümesi: sites.stat.psu.edu/~jiali/course/stat597e/notes2/logit.pdf

1
Hessian'ı adım adım hesaplayan harika bir video buldum. Lojistik regresyon (ikili) - Hessian'ın hesaplanması
Naomi

Yanıtlar:


20

Burada, çözümün kendi kendine yetmesi için gerekli tüm özellikleri ve kimlikleri türetiyorum, ancak bunun dışında bu türetme temiz ve kolaydır. Notasyonumuzu resmileştirelim ve kayıp fonksiyonunu biraz daha kompakt yazalım. Göz önünde m örnekleri {xi,yi} , öyle ki xiRd ve yiR . İkili lojistik regresyon biz genellikle hipotez işlevi olduğunu hatırlayın hθ lojistik fonksiyon olsun. resmen

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

burada ωRd ve zi=ωTxi . Kayıp fonksiyonu (ki OP'lerin negatif bir işaretin eksik olduğuna inanıyorum) daha sonra şöyle tanımlanır:

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

Gelecekte başvurmak üzere burada türediğim lojistik fonksiyonun iki önemli özelliği vardır. İlk olarak, 1σ(z)=11/(1+ez)=ez/(1+ez)=1/(1+ez)=σ(z) olduğuna dikkat edin .

Ayrıca şunu da unutmayın

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

Bileşenlere göre türev almak yerine, burada doğrudan vektörlerle çalışacağız ( burada vektörlerle türevleri inceleyebilirsiniz ). Kayıp fonksiyonu Hessian l(ω) ile verilir 2l(ω) ama ilk geri çekme zω=xTωω=xTvezωT=ωTxωT=x.

Let li(ω)=yilogσ(zi)(1yi)log(1σ(zi)) . Yukarıda elde ettiğimiz özellikleri ve zincir kuralını kullanma

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

Bunu göstermek artık önemsiz

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

vay!

Son adımımız Hessian'ı hesaplamak

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

İçin m örnekler elimizdeki 2l(ω)=i=1mxixiTσ(zi)(1σ(zi)) . Bu sütun vektörleri bitiştirme eşdeğerdir xiRd bir matris içine X boyutu d×m , öyle ki i=1mxixiT=XXT . Skalar terimler diyagonal matris içinde bir araya getirilmiştirD şekildeDii=σ(zi)(1σ(zi)) . Sonunda,

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

Daha hızlı bir yaklaşım, başlangıçtan itibaren tüm numuneler bir kerede düşünülerek ve bunun yerine matris türevleri ile çalışılarak elde edilebilir. Ek bir not olarak, bu formülasyonla l(ω) nin dışbükey olduğunu göstermek önemsizdir . Let δ herhangi bir vektör öyle ki δRd . Sonra

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

D>0δTX0Hl


2
||δD1/2X||XDXXD1/2(XD1/2)

1
XTDX
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.