美文网首页
批量梯度下降和随机梯度下降

批量梯度下降和随机梯度下降

作者: Wangcy | 来源:发表于2017-01-04 20:58 被阅读0次

1.概念

(1)批量梯度下降---最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小。

(2)随机梯度下降---最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近。

2.数学表达

以下以圆拟合为例,已知m个数据拟合点,需要找到最优的拟合圆,即最佳的圆心(xc,yc),最佳拟合半径R。

圆拟合损失函数可以表示为:

圆拟合损失函数

就是要找到最佳拟合圆,使得损失函数最小化:

损失函数最小化

2.1. 批量梯度下降的求解思路

(1)将L对xc,yc,R求偏导,得到各自的梯度

参数梯度

(2)由于是要最小化风险函数,所以按每个参数的梯度负方向,来更新每个参数,假设学习率为lr

参数更新

(3)从上面公式可以注意到,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果m很大,那么可想而知这种方法的迭代速度!!所以,这就引入了另外一种方法,随机梯度下降。

2.2. 随机梯度下降的求解思路

随机梯度下降是求每个样本的损失函数,对参数求偏导得到对应梯度,来更新参数。

第 i个样本的损失函数 第 i个样本的参数梯度 参数更新 随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。

3.matlab代码

批量梯度下降 随机梯度下降 拟合结果

相关文章

网友评论

      本文标题:批量梯度下降和随机梯度下降

      本文链接:https://www.haomeiwen.com/subject/zohavttx.html