全梯度下降算法从零实现,基于Numpy

批量梯度下降法BGD

Github

批量梯度下降法(Batch Gradient Descent,简称BGD)是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新,其数学形式如下:

  • 对上述的能量函数求偏导:
  • 由于是最小化风险函数,所以按照每个参数θ的梯度负方向来更新每个θ:

具体的伪代码形式为:

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

优点:全局最优解;易于并行实现;
缺点:当样本数目很多时,训练过程会很慢。

从迭代的次数上来看,BGD迭代的次数相对较少。其迭代的收敛曲线示意图可以表示如下:

image

文章引用于 https://www.cnblogs.com/maybe2030/p/5089753.html
编辑 Lornatang
校准 Lornatang

你可能感兴趣的:(全梯度下降算法从零实现,基于Numpy)