Hessian của chức năng hậu cần


15

Tôi gặp khó khăn để lấy được Hessian của hàm mục tiêu, l(θ) , trong hồi quy logistic nơi l(θ) là:

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

hθ(x) là một hàm logistic. Các Hessian làXTDX . Tôi cố gắng để lấy được nó bằng cách tính toán2l(θ)θiθj , nhưng sau đó nó là không rõ ràng để tôi làm thế nào để có được các ký hiệu ma trận từ2l(θ)θiθj .

Có ai biết bất kỳ cách dễ dàng và dễ dàng để lấy XTDX không?


3
bạn đã nhận được gì cho 2lθiθj ?
Glen_b -Reinstate Monica

1
Dưới đây là một bộ slide tốt cho thấy tính toán chính xác mà bạn đang tìm kiếm: sites.stat.psu.edu/~jiali/cference/stat597e/notes2/logit.pdf

Tôi tìm thấy một video tuyệt vời tính toán từng bước của Hessian. Hồi quy logistic (nhị phân) - tính toán Hessian
Naomi

Câu trả lời:


19

Ở đây tôi rút ra tất cả các thuộc tính và danh tính cần thiết để giải pháp được khép kín, nhưng ngoài ra, dẫn xuất này là sạch sẽ và dễ dàng. Hãy để chúng tôi chính thức hóa ký hiệu của chúng tôi và viết hàm mất mát gọn hơn một chút. Xem xét m mẫu {xi,yi}xiRdyiR . Hãy nhớ lại rằng trong hồi quy logistic nhị phân, chúng ta thường có hàm giả thuyết hθ là hàm logistic. Chính thức

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

trong đó ωRdzi=ωTxi . Hàm mất (mà tôi tin là OP thiếu dấu âm) sau đó được định nghĩa là:

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

Có hai thuộc tính quan trọng của hàm logistic mà tôi lấy ở đây để tham khảo trong tương lai. Đầu tiên, lưu ý rằng 1σ(z)=11/(1+ez)=ez/(1+ez)=1/(1+ez)=σ(z) .

Cũng lưu ý rằng

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

Instead of taking derivatives with respect to components, here we will work directly with vectors (you can review derivatives with vectors here). The Hessian of the loss function l(ω) is given by 2l(ω), but first recall that zω=xTωω=xT and zωT=ωTxωT=x.

Let li(ω)=yilogσ(zi)(1yi)log(1σ(zi)). Using the properties we derived above and the chain rule

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

It's now trivial to show that

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

whew!

Our last step is to compute the Hessian

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

For m samples we have 2l(ω)=i=1mxixiTσ(zi)(1σ(zi)). This is equivalent to concatenating column vectors xiRd into a matrix X of size d×m such that i=1mxixiT=XXT. The scalar terms are combined in a diagonal matrix D such that Dii=σ(zi)(1σ(zi)). Finally, we conclude that

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

A faster approach can be derived by considering all samples at once from the beginning and instead work with matrix derivatives. As an extra note, with this formulation it's trivial to show that l(ω) is convex. Let δ be any vector such that δRd. Then

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

since D>0 and δTX0. This implies H is positive-semidefinite and therefore l is convex (but not strongly convex).


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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.