机器学习中的梯度下降法
1. 机器学习中为什么需要梯度下降梯度下降是机器学习中常见优化算法之一,梯度下降法有以下几个作用:(1)梯度下降是迭代法的一种,可以用于求解最小二乘问题。(2)在求解机器学习算法的模型参数,即无约束优化问题时,主要有梯度下降法(GradientDescent)和最小二乘法。(3)在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。(4)如果我们需要求解
·
1. 机器学习中为什么需要梯度下降
梯度下降是机器学习中常见优化算法之一,梯度下降法有以下几个作用:
(
1
)梯度下降是迭代法的一种,可以用于求解最小二乘问题。
(
2
)在求解机器学习算法的模型参数,即无约束优化问题时,主要有梯度下降法(
Gradient Descent
)和最小二乘法。
(
3
)在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。
(
4
)如果我们需要求解损失函数的最大值,可通过梯度上升法来迭代。梯度下降法和梯度上升法可相互转换。
(
5
)在机器学习中,梯度下降法主要有随机梯度下降法和批量梯度下降法。
2. 梯度下降法缺点
梯度下降法缺点有以下几点:
(
1
)靠近极小值时收敛速度减慢。
(
2
)直线搜索时可能会产生一些问题。
(
3
)可能会
“
之字形
”
地下降。
梯度概念也有需注意的地方:
(
1
)梯度是一个向量,即有方向有大小。
(
2
)梯度的方向是最大方向导数的方向。
(
3
)梯度的值是最大方向导数的值。
3. 梯度下降法直观理解
梯度下降法经典图示如下图
所示:
形象化举例,由上图
所示,假如最开始,我们在一座大山上的某处位置,因为到处都是陌生的,
不知道下山的路,所以只能摸索着根据直觉,走一步算一步,在此过程中,每走到一个位置的时候,都
会求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前
位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。不断循环求梯度,就这样一步步地走
下去,一直走到我们觉得已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个
局部的山势低处。
由此,从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部的最优
解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。
核心思想归纳
:
- 初始化参数,随机选取取值范围内的任意数;
- 迭代操作
a
)计算当前梯度;
b
)修改新的变量;
c
)计算朝最陡的下坡方向走一步;
d
)判断是否需要终止,如否,返回
a
);
- 得到全局最优解或者接近全局最优解。
4. 梯度下降法算法描述
5. 如何对梯度下降法进行调优
实际使用梯度下降法时,各项参数指标不能一步就达到理想状态,对梯度下降法调优主要体现在以下几个方面:
- 算法迭代步长选择
在算法参数初始化时,有时根据经验将步长初始化为
1
。实际取值取决于数据样本。可以从大到小,多取一些值,分别运行算法看迭代效果,如果损失函数在变小,则取值有效。如果取值无效,说明要增
大步长。但步长太大,有时会导致迭代速度过快,错过最优解。步长太小,迭代速度慢,算法运行时间
长。
- 参数的初始值选择
初始值不同,获得的最小值也有可能不同,梯度下降有可能得到的是局部最小值。如果损失函数是凸
函数,则一定是最优解。由于有局部最优解的风险,需要多次用不同初始值运行算法,关键损失函数的
最小值,选择损失函数最小化的初值。
- 标准化处理
由于样本不同,特征取值范围也不同,导致迭代速度慢。为了减少特征取值的影响,可对特征数据标
准化,使新期望为
0
,新方差为
1
,可节省算法运行时间。
6. 随机梯度和批量梯度区别
6.1. 批量梯度下降的求解思路
6.2. 随机梯度下降的求解思路
6.3. 小批量(Mini-Batch)梯度下降的求解思路
6.4. 在线梯度下降(Online GD)的求解思路
7. 各种梯度下降法性能比较
下表简单对比随机梯度下降(
SGD
)、批量梯度下降(
BGD
)、小批量梯度下降(
Mini-batch
GD
)、和
Online GD
的区别:
参考文献
深度学习500问
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献90条内容
所有评论(0)