梯度下降法(BGD & SGD & Mini-batch SGD)

Posted lvdongjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了梯度下降法(BGD & SGD & Mini-batch SGD)相关的知识,希望对你有一定的参考价值。

 

梯度下降法(Gradient Descent)

优化思想:用当前位置的负梯度方向作为搜索方向,亦即为当前位置下降最快的方向,也称“最速下降法”。越接近目标值时,步长越小,下降越慢。

如下图所示,梯度下降不一定能找到全局最优解,可能寻找到的是局部最优解。(当损失函数是凸函数时,梯度下降得到的解一定是全局最优解,因为凸函数的极小值即为最小值)

技术图片梯度下降法

批量梯度下降法(Batch Gradient Descent,BGD):在更新参数时,BGD根据batch中的所有样本对参数进行更新。

技术图片θ为参数,x为每个样本的n个特征值
技术图片为了简化表示,增加特征x_0=1
技术图片损失函数J,m为一个batch中的样本数
技术图片参数更新,α为步长
技术图片上式展开即为,其中α和1/m均为常数,可用一个常数表示

随机梯度下降法(Stochastic Gradient Descent,SGD):和BGD的原理类似,区别在于每次随机选取一个样本j求梯度。

对于训练速度来说,SGD每次仅仅采用一个样本来迭代,训练速度很快,而BGD在样本量很大的时候,训练速度不能让人满意。

对于准确度来说,SGD仅仅用一个样本决定梯度方向,导致解很有可能不是最优。

对于收敛速度来说,由于SGD一次迭代一个样本,导致迭代方向变化很大,不能很快的收敛到局部最优解。

技术图片SGD

小批量梯度下降法(Mini-batch Gradient Desent,也称Mini-batch SGD):BGD和SGD二者的折中法,对于m个样本,选取x个子样本进行迭代,且1<x<m。

技术图片

(1)选择n个训练样本(n<m,m为总训练集样本数)(即batchsize = n,样本总数为m,随机的思想在于每个epoch之前,随机打乱样本顺序,顺序选取n个样本作为batch)

(2)在这n个样本中进行n次迭代,每次使用1个样本

(3)对n次迭代得出的n个gradient进行加权平均再并求和,作为这一次mini-batch下降梯度

(4)不断在训练集中重复以上步骤,直到收敛。

以上是关于梯度下降法(BGD & SGD & Mini-batch SGD)的主要内容,如果未能解决你的问题,请参考以下文章

批量梯度下降(BGD)随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

批量梯度下降BGD随机梯度下降SGD和小批量梯度下降MBGD对比

机器学习 | 梯度下降种类及对比

机器学习 | 梯度下降种类及对比

梯度优化方法:BGD,SGD,mini_batch, Momentum,AdaGrad,RMSProp,Adam

常见优化器