回归-梯度下降法

导语

    在上一节中,我们求解了OLS的解析式,但是对于样本数量较多的情况下,矩阵的求解过程计算量非常大,本节讨论的是线性回归中的梯度下降法。

梯度下降法

    梯度下降在李航的《统计学习方法》附录A里有比较详细的理论推导过程,大家可以参考。梯度下降是求解无约束最优化问题的一种最常见的方法,实现比较简单。它的核心在于迭代,即给定初值 x(0) ,通过不断迭代,来更新 x ,使目标函数(线性回归中就是我们的损失函数)取得极小值,直到收敛。下面是一张梯度下降的示意图,对此,我们可以这样理解,当你站在一座山上要下山,那么你环顾四周,寻找当前能下的最快的方向,一步踩下去……然后不断的这样,直到你站在了山下。
梯度下降
    梯度下降的原理就是这样,那么问题来了,我站在山上下去的方向多了,我选哪一个呢?OK,回想另外一个问题,对于vt(线)图像来说,它的某一点切线斜率大小代表着当前时间的瞬时加速度,如果按照当前切线斜率方向移动,变化应该是最快的。所以,这里引入梯度的概念,设函数 z=f(x,y) 在平面区域D内具有一阶连续偏导数,则对于每一个点P(x,y)∈D,向量

(fxfy)

为函数 z=f(x,y) 在点p的梯度,记做 gradf(x,y)
    ok,梯度定义出来以后,我们就可以搜索了,定义式如下:
x(k+1)x(k)+λkpk

其中 λk 是学习率,即每次下降的幅度,而 pk 是下降方向,通常情况下我们选择的是负梯度方向。

线性回归的梯度下降

    线性回归的损失函数为:

J(θ)=12i=1m(θTx(i)y(i))2

我们最终要求的是参数 θ ,而 x(i) y(i) 已知(样本数据),因此对 θ 求导求出梯度方向。
θjJ(θ)=212i=1m(θTx(i)y(i))θj(θkx(i)ky(i))=i=1m(θTx(i)y(i))x(i)j

上述的表达式就是线性回归的梯度方向,由于使用了 ,因此每次更新参数 θ 使用了全部样本,此种方式也被称为 批处理梯度下降算法,更新公式为
θj:=θj+λi=0m(θTx(i)y(i))x(i)j

    由于批处理梯度下降算法使用了所有算法,当迭代次数较多时,计算量依旧很大,因此在实践中多采用 随机梯度下降算法,即每次只用一个样本数据来更新参数 θ ,这样可以大幅降低计算量,但是这种方式的效果可能不如批处理梯度下降算法,批处理梯度下降能够得到 全局最优解,但是随机梯度处理可能在某些样本点使参数 θ 剧烈变化,因此对于学习率 λ ,在实践中其值经常是动态的,此话题下次讨论。
    由于最近有些事情耽误,因此本节先讨论到这里,在逻辑回归之后,我将以具体代码示例来阐述我们做过的数学推导,曾几何时我只注重工程上的东西,但是后来发现不知道原理自己永远只能是一个coder,永远在迷雾中前行,加油吧……

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值