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

假设$\left{x^{(1)},y^{(1)}\right}$,$\left{x^{(2)},y^{(2)}\right}$...$\left{x^{(m)},y^{(m)}\right}$是m个训练样本,

其中$x^{(i)}$是n维向量($\forall i\in{1,2,...m}$).设损失函数为$J(\theta)$ 其中$\theta$是模型训练的参数。则logistic

regression模型的损失函数为:

$$\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}$$

其中$h_{\theta}(x^{(i)})=\frac{1}{1+e^{-\theta^{T}x^{(i)}}}$

梯度上升公式为:

$\theta_{j}:=\theta_{j}+\eta\frac{\partial{J(\theta)}}{\partial{\theta_{j}}}$

其中$\eta$称为学习率

$$\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}$$

其中$x_{j}^{(i)}$表示第i个训练样本输入向量的第j个分量。

故$\theta_{j}:=\theta_{j}+\eta\sum_{i=1}^{m}[(y^{(i)}-h_{\theta}(x^{(i)}))]x_{j}^{(i)}$

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

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值