在这里,我导出了使解决方案自包含的所有必要属性和标识,但除此之外,这种推导是干净且容易的。让我们形式化我们的符号,并更紧凑地编写损失函数。考虑样本,使得和。回想一下,在二进制逻辑回归中,我们通常将假设函数作为逻辑函数。正式地m{xi,yi}xi∈Rdyi∈Rhθ
hθ(xi)=σ(ωTxi)=σ(zi)=11+e−zi,
其中和。损失函数(我认为OP缺少负号)然后定义为:ω∈Rdzi=ωTxi
l(ω)=∑i=1m−(yilogσ(zi)+(1−yi)log(1−σ(zi)))
我在这里导出逻辑函数的两个重要属性,以供将来参考。首先,请注意。1−σ(z)=1−1/(1+e−z)=e−z/(1+e−z)=1/(1+ez)=σ(−z)
另请注意
∂∂zσ(z)=∂∂z(1+e−z)−1=e−z(1+e−z)−2=11+e−ze−z1+e−z=σ(z)(1−σ(z))
在这里,我们将直接使用向量(而不是分量的派生)(您可以在此处查看使用向量的派生)。损失函数的Hessian 由,但首先回想一下和。l(ω)∇⃗ 2l(ω)∂z∂ω=xTω∂ω=xT∂z∂ωT=∂ωTx∂ωT=x
令。使用我们上面得出的属性和链式规则li(ω)=−yilogσ(zi)−(1−yi)log(1−σ(zi))
∂logσ(zi)∂ωT∂log(1−σ(zi))∂ωT=1σ(zi)∂σ(zi)∂ωT=1σ(zi)∂σ(zi)∂zi∂zi∂ωT=(1−σ(zi))xi=11−σ(zi)∂(1−σ(zi))∂ωT=−σ(zi)xi
现在证明这很简单
∇⃗ li(ω)=∂li(ω)∂ωT=−yixi(1−σ(zi))+(1−yi)xiσ(zi)=xi(σ(zi)−yi)
!
我们的最后一步是计算Hessian
∇⃗ 2li(ω)=∂li(ω)∂ω∂ωT=xixTiσ(zi)(1−σ(zi))
对于样本,我们有。这等效于串联列向量为矩阵大小的使得。标量项组合在对角矩阵,使得。最后,我们得出结论m∇⃗ 2l(ω)=∑mi=1xixTiσ(zi)(1−σ(zi))xi∈RdXd×m∑mi=1xixTi=XXTDDii=σ(zi)(1−σ(zi))
H⃗ (ω)=∇⃗ 2l(ω)=XDXT
通过从一开始就一次考虑所有样本,而是使用矩阵导数,可以得出一种更快的方法。另外需要注意的是,用这种公式可以证明是凸的。令是等于任何向量。然后l(ω)δδ∈Rd
δTH⃗ (ω)δ=δT∇⃗ 2l(ω)δ=δTXDXTδ=δTXD(δTX)T=∥δTDX∥2≥0
因为和。这意味着是正中半定的,因此是凸的(但不是强凸的)。D>0∥δTX∥≥0Hl