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))+(1−yi)log⁡(1−hθ(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án∂2l(θ)∂θ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} mà xi∈Rd và yi∈R . 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+e−zi,

trong đó ω∈Rd và zi=ω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)+(1−yi)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)=1−1/(1+e−z)=e−z/(1+e−z)=1/(1+ez)=σ(−z) .

Cũng lưu ý rằng

∂∂zσ(z)=∂∂z(1+e−z)−1=e−z(1+e−z)−2=11+e−ze−z1+e−z=σ(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)−(1−yi)log⁡(1−σ(zi)). Using the properties we derived above and the chain rule

∂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

It's now trivial to show that

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

since D>0 and ‖δTX‖≥0. 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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.