一 介绍


梯度下降法是一个最优化算法,通常也称 最速下降法,常用于机器学习和人工智能中递归性逼近最小偏差模型,梯度下降的方向就是用负梯度方向为搜索方向,沿着梯度下降的方向求解极小值。


在训练过程中,每次的正向传播都会得到输出值和真实值的损失值,这个损失值越小,代表模型越好,于是梯度下降的算法就用在这里,帮助寻找最小的那个损失值,从而可以反推出对应的学习参数b和w,达到优化模型的效果。


常用的梯度下降方法可以分为:批量梯度下降、随机梯度下降和小批量梯度下降。


  • 批量梯度下降:遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度和更新梯度。这种方法每更新一次参数,都要把数据集里的所有样本看一遍,计算量大,计算速度慢,不支持在线学习,称为批梯度下降。
  • 随机梯度下降:每看一个数据就算一下损失函数,然后求梯度更新参数,这称为随机梯度下降。这个方法速度比较快,但是收敛性能不是太好,可能在最优点附近晃来晃去,命中不到最优点。两次参数的更新可能互相抵消,造成目标函数震荡比较剧烈。
  • 小批量梯度下降:为了克服上面两种方法的缺点,一般采用一种折中的手段——小批量梯度下降。这种方法把数据分为若干批,按批来更新参数,这样一批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另外一方面,因为批的样本数与整个数据集相比小很多,计算量也不是很大。