1 .概念
(1)批量梯度下降---最小化所有训练样本的损失函数,最终求解的是全局最优解,即求解的参数是最小化风险函数。
)2)随机梯度下降---最小化每个样本的损失函数。 每次迭代得到的损失函数并不朝向全局最优方向,但较大的整体方向朝向全局最优解,最终结果往往接近全局最优解。
2 .数学表达
以以下圆拟合为例,m个数据拟合点是已知的,需要找到最佳拟合圆,即最佳圆的中心(xc,yc ),和最佳拟合半径r。
圆拟合损失函数可以表示为:
圆拟合损失函数
就是找到最佳拟合圆,使损失函数最小化。
最小化损失函数
2.1 .批量坡度下降的解决思路
(1)将l对xc、yc、r求偏导数,得到各自的梯度
参数梯度
)2)因为是使风险最小化的函数,所以针对每个参数在坡度负方向上针对每个参数进行更新,将学习率设为lr
更新参数
)从上式可以看出,它得到了全局最优解,但每次迭代都要用到训练集中的所有数据。 如果m大,则可以考虑该方法的反复速度! 所以,这引入了另一种方法,随机梯度下降。
2.2 .随机梯度下降的求解思路
随机梯度下降求每个样本的损耗函数,对参数求偏导数,得到相应的梯度,更新参数。
第I个样本的损失函数
第I个样本的参数梯度
参数更新的随机梯度下降按采样迭代更新。 在采样数较多(例如数十万)的情况下,其中只有数万个或数千个采样,可能正在将theta反复进行最佳解。 与上面的批量梯度下降相比,迭代一次需要十几万个训练样本,一次迭代不是最佳的。 如果迭代次数为10次,则需要遍历10次训练样本。 然而,与SGD相关联的一个问题是,噪声比BGD多,并且SGD并非每次重复都朝向整体优化的方向。
3.matlab代码
批次梯度降低
随机梯度下降
核对结果