梯度下降算法

梯度

**梯度:**在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y)。对于在点(x0,y0)的具体梯度向量就是(∂f/∂x0, ∂f/∂y0)T.或者▽f(x0,y0),如果是3个参数的向量梯度,就是(∂f/∂x, ∂f/∂y,∂f/∂z)T,以此类推。

**梯度意义:**从几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值。

梯度下降算法

**场景导入:**假如一个人要从山上下来,他怎样才能最快到达山脚的最低点呢?他可以根据当前位置为基准,找到最陡峭的地方,向这个方向走一步;然后又以这个位置为基准,寻找最陡峭的地方,再朝着这个方向走一步。重复以上过程直到走到最低处。

在这里插入图片描述

梯度下降(Gradient Descent)通常也被叫做最速下降法,是求解无约束最优化问题最常用的方法,在机器学习中应用十分的广泛。它的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。
其实梯度下降最关键的是一个公式:
在这里插入图片描述

相关概念

1.步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步梯度负方向前进的方向。(上式中的α)
2.假设函数(hypothesis function):在监督学习中,为乐拟合输入样本,而使用假设函数,记为hθ(x)。在这里插入图片描述
3.损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着你和的程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。
在这里插入图片描述

几种常见的梯度下降

说明:这几种提速下降主要区别就是在于使用多少数据来计算目标函数的梯度。

1.批量梯度下降算法(Batch Gradent Descent,BGD)
简介:每次利用所有样本去计算损失函数关于参数θ的梯度。公式为:
在这里插入图片描述
其中η为学习率,用来控制更新的“力度”/“步长”。
优点:全数据集能够更好的代表样本总体;当目标函数为凸函数时,批量梯度下降一定能够得到全局最优解。
缺点:如果样本数量很大,训练过程很慢,并且会花费大量时间和内存。

2.随机梯度下降算法(Stochastic Gradient Descent ,SGD)
简介:在样本集中随机挑选一个样本来计算损失,然后利用该样本计算导数,最后更新参数。在样本集中随机挑选一个样本来计算损失,然后利用该样本计算导数,最后更新参数。公式为:
在这里插入图片描述
优点:过程简单,高效,通常可以较好地避免更新迭代收敛到局部最优解;
缺点:准确度下降,若遇上噪声则容易陷入局部最优解,动荡性增加。

3.小批量梯度下降算法(Mini-batch Gradient Descent ,MBGD)
简介:小批量梯度下降法是批量梯度下降法和随机梯度下降法的折中(最常用的梯度下降算法)。先将样本集均分,然后利用划分后的子样本集来进行损失计算,然后再利用子样本集来计算导数,最后更新参数 。公式为:在这里插入图片描述
优点:参数更新时的动荡变小,收敛过程更稳定,降低收敛难度。
缺点:batch_size的选择不当可能会带来一些问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值