在机器学习领域中,如要说哪一个优化算法最广为认知,用途最广的,那这个算法非梯度下降算法莫属。梯度下降算法是一种非常经典的求极小值的算法。

例如:在线性回归里面我们可以通过使用最小二乘法解析最优解,但是在解析过程中存在的一些问题却让人觉得非常的难受。而且无论是使用L1正则化还是L2正则化,它们得到的结果并不是让人很满意。

梯度下降曲线为什么是等高线的法线 为什么要梯度下降_数据集

梯度下降的优化思想是利用当前位置负梯度的方向作为搜索方向,该方向作为当前位置最快的下降方向,梯度下降中越接近目标值,变化量越小,梯度下降的公式如下:

梯度下降曲线为什么是等高线的法线 为什么要梯度下降_机器学习中为什么需要梯度下降_02

其中,η成为学习率,i表示第i条数据。权重参数w每次迭代变化的大小。

收敛:目标函数的值变化非常小或达到到最大的迭代次数

梯度下降方法,我们就可以把其理解成一站在山顶上的人,要下山一样,比如下图中红色的地方作为山顶,是我们的起始的地方,蓝色的地方作为山脚。那么我们怎么才能到达蓝色的区域呢?根据梯度下降的思想,应该是这样的:

第一步:我们首先要找到自己所在的位置,只有这样才能确定往下走的方向。
第二步:找到从自己所在的位置到蓝色区域的最快路线。
第三步:然后沿着第二步找到的路线,然后往下走出一小步,这时候我们处于一个新的位置。
第四步:重复前面几步。
第五步:到底蓝色区域。

梯度下降曲线为什么是等高线的法线 为什么要梯度下降_机器学习中为什么需要梯度下降_03

当然,通过上图我们也可以看到,下山的路并不止一条,只是因为上图这不是一个标准的凸函数,这种情况下,我们往往找到的是局部最优解。

所以在刚开始的时候,你可以从不同的位置上去尝试不同的下山路径,寻找更小的极小值点。如果函数是一个标准的凸函数,那么你要做的只需要往一个方向进行梯度下降即可,例如下面这种:

梯度下降曲线为什么是等高线的法线 为什么要梯度下降_梯度下降曲线为什么是等高线的法线_04

梯度下降训练方法可以分为以下几种:

●批量梯度下降(BGD),使用所有数据集中的样本(共m个样本)在当前点的梯度之和来对权重参数进行更新操作。

梯度下降曲线为什么是等高线的法线 为什么要梯度下降_数据集_05

●随机梯度下降(SGD),随机选取一个数据集中的样本在当前的梯度来对权重参数进行更新操作

梯度下降曲线为什么是等高线的法线 为什么要梯度下降_权重_06

●小批量梯度下降(MBGD),结合BGD与SGD的特性,每次选择数据集中n个样本的梯度来对权重参数进行更新操作。

梯度下降曲线为什么是等高线的法线 为什么要梯度下降_权重_07