梯度下降算法有哪些?有什么区别?背景原理公式代码

Posted Emiliano Martínez

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了梯度下降算法有哪些?有什么区别?背景原理公式代码相关的知识,希望对你有一定的参考价值。

一、梯度下降算法背景

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。

其实,梯度下降算法理解起来很简单,我们在训练模型时,随机初始化的参数肯定不是最优的,这样的参数会导致预测结果和真实结果存在一定的偏差,我们根据预测与真实之间的差异构造Loss Function,我们的任务就是找到Loss Function的最低点对应的参数(损失函数是Loss随参数变化而变化的图像),下图展示了2D和3D情形下损失函数的示意图。

二、梯度下降算法

1. 梯度下降 / 批量梯度下降(BGD)

(ps:我的理解是GD和BGD是一种算法,都是选取所有样本做Loss,或者说梯度下降是所有梯度下降算法的统称,如果我理解的有误,希望大噶多多指正~)
梯度下降算法的原理如下,L是Loss Fucntion,N是样本的数目,ε是学习率,我们可以发现梯度下降算法中,每进行一次下降操作,就需要拿全部的样

以上是关于梯度下降算法有哪些?有什么区别?背景原理公式代码的主要内容,如果未能解决你的问题,请参考以下文章

梯度下降法的原理是啥?

梯度提升分类树原理推导(超级详细!)

关于对率回归的求解,梯度下降和解析解相比有啥特点和优势,为啥?

常用优化器算法归纳介绍

梯度下降法原理和步骤

梯度下降法和粒子群优化算法的区别