彻底搞懂梯度下降

本文参考知乎:古月居

梯度下降是机器学习中的常用算法,通过不断迭代计算函数的梯度,判断该点的某一方向和目标之间的距离,最终求得最小的损失函数后反推相关参数,为建立线性模型提供支持。

简单说就是:构建一个误差函数,求这个误差函数的最小值,使用梯度下降可以实现
在这里插入图片描述
这个图是误差函数的图像,我们要找出最低点
方法:梯度下降
具体过程:
预测模型:y=ax1+bx1+cx1+b
u为偏差值,也是真实值和预测值的误差
损失函数:求u的最小值
在求最小值(利用求导)的过程中|u|没有优良性,所以我们通常用u²代替。
定义一个损失函数
在这里插入图片描述
2是为了求导后没有常数。

此时,利用梯度下降的方法为
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
梯度下降的详细算法:

代数表示法
假设预测模型是
hθ(x1,x2,…xn)=θ0+θ1x1+…+θnxn, 其中θi (i = 0,1,2… n)为模型参数,xi (i = 0,1,2… n)为每个样本的n个特征值。这个表示可以简化,我们增加一个特征x0=1

预测函数:
在这里插入图片描述
损失函数为:
在这里插入图片描述

梯度下降更新函数:
在这里插入图片描述
整合(样本中没有x0上式中令所有的xj0为1)
在这里插入图片描述
从这个例子可以看出当前点的梯度方向是由所有的样本决定的。

不同的梯度下降方法
1.批量梯度下降法
批量梯度下降法,是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新,也就是上面的例子
在这里插入图片描述
2.随机梯度下降法
仅仅选取一个样本j来求梯度。对应的更新公式是:
在这里插入图片描述
随机梯度下降法,和批量梯度下降法是两个极端,一个采用所有数据来梯度下降,一个用一个样本来梯度下降。
对于训练速度来说,随机梯度下降法由于每次仅仅采用一个样本来迭代,训练速度很快,而批量梯度下降法在样本量很大的时候,训练速度太慢
对于准确度来说,随机梯度下降法用于仅仅用一个样本决定梯度方向,导致解很有可能不是最优。对于收敛速度来说,由于随机梯度下降法一次迭代一个样本,导致迭代方向变化很大,不能很快的收敛到局部最优解。

于是提出
小批量梯度下降法(Mini-batch Gradient Descent)
小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样本来迭代,1<x<m。根据样本的数据,可以调整这个x的值。对应的更新公式是:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值