机器学习逻辑回归梯度公式推导

假设 { x ( 1 ) , y ( 1 ) } \left\{x^{(1)},y^{(1)}\right\} {x(1),y(1)}, { x ( 2 ) , y ( 2 ) } \left\{x^{(2)},y^{(2)}\right\} {x(2),y(2)} { x ( m ) , y ( m ) } \left\{x^{(m)},y^{(m)}\right\} {x(m),y(m)}是m个训练样本,
其中 x ( i ) x^{(i)} x(i)是n维向量( ∀ i ∈ 1 , 2 , . . . m \forall i\in{1,2,...m} i1,2,...m).设损失函数为 J ( θ ) J(\theta) J(θ) 其中 θ \theta θ是模型训练的参数。则logistic
regression模型的损失函数为:
J ( θ ) = ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] = ∑ i = 1 m J i ( θ ) \begin{aligned} J(\theta) &=\sum_{i=1}^{m}[y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))] \\ &=\sum_{i=1}^{m}J_{i}(\theta) \end{aligned} J(θ)=i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]=i=1mJi(θ)

其中 h θ ( x ( i ) ) = 1 1 + e − θ T x ( i ) h_{\theta}(x^{(i)})=\frac{1}{1+e^{-\theta^{T}x^{(i)}}} hθ(x(i))=1+eθTx(i)1

梯度上升公式为:
θ j : = θ j + η ∂ J ( θ ) ∂ θ j \theta_{j}:=\theta_{j}+\eta\frac{\partial{J(\theta)}}{\partial{\theta_{j}}} θj:=θj+ηθjJ(θ)
其中 η \eta η称为学习率
∂ J ( θ ) ∂ θ j = ∑ i = 1 m ∂ J i ( θ ) ∂ h θ ( x ( i ) ) × ∂ h θ ( x ( i ) ) ∂ ( θ T x ( i ) ) × ∂ θ T x ( i ) ∂ θ j = ∑ i = 1 m [ y ( i ) 1 h θ ( x ( i ) ) + ( y ( i ) − 1 ) 1 1 − h θ ( x ( i ) ) ] × [ h θ ( x ( i ) ) ( 1 − h θ ( x ( i ) ) ] × x j ( i ) = ∑ i = 1 m [ ( y ( i ) − h θ ( x ( i ) ) ) ] x j ( i ) \begin{aligned} \frac{\partial{J(\theta)}}{\partial{\theta_{j}}} & =\sum_{i=1}^{m}\frac{\partial{J_{i}(\theta)}}{\partial{h_{\theta}(x^{(i)})}}\times\frac{\partial{h_{\theta}(x^{(i)})}}{\partial{(\theta^{T}x^{(i)}})}\times\frac{\partial{\theta^{T}x^{(i)}}}{\partial{\theta_{j}}} \\ & =\sum_{i=1}^{m}[y^{(i)}\frac{1}{h_{\theta}(x^{(i)})}+(y^{(i)}-1)\frac{1}{1-h_{\theta}(x^{(i)})}]\times[h_{\theta}(x^{(i)})(1-h_{\theta}(x^{(i)})]\times x_{j}^{(i)} \\ & =\sum_{i=1}^{m}[(y^{(i)}-h_{\theta}(x^{(i)}))]x_{j}^{(i)} \end{aligned} θjJ(θ)=i=1mhθ(x(i))Ji(θ)×(θTx(i))hθ(x(i))×θjθTx(i)=i=1m[y(i)hθ(x(i))1+(y(i)1)1hθ(x(i))1]×[hθ(x(i))(1hθ(x(i))]×xj(i)=i=1m[(y(i)hθ(x(i)))]xj(i)
其中 x j ( i ) x_{j}^{(i)} xj(i)表示第i个训练样本输入向量的第j个分量。

θ j : = θ j + η ∑ i = 1 m [ ( y ( i ) − h θ ( x ( i ) ) ) ] x j ( i ) \theta_{j}:=\theta_{j}+\eta\sum_{i=1}^{m}[(y^{(i)}-h_{\theta}(x^{(i)}))]x_{j}^{(i)} θj:=θj+ηi=1m[(y(i)hθ(x(i)))]xj(i)

关于为什么要用log做梯度上升:

1.减少计算量。取对数可以将连乘的形式化为求和的形式,在求导的时候也会更加方便

2.防止浮点数下溢。当数据集很大的时候,连乘的结果会趋向0,非常不利于后续的计算

3.取对数不影响单调性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值