梯度下降法

梯度下降法是求解无约束最优化问题的一种最常用的方法,是一种迭代算法,每一步需要求解目标函数的梯度向量。

梯度的定义:

某一函数沿着某点处的方向导数可以以最快速度到达极大值,该方向导数我们定义为该函数的梯度。
                                                                          
其中θ是自变量,f(θ)是关于θ的函数,▽表示梯度。 所要研究的梯度下降式子可以写为: 
                                                                
其中η是步长,θ是由θ0按照上述式子更新后的值。

梯度是微积分中一个很重要的概念。

  • 在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率
  • 在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向

梯度的方向是函数在给定点上升最快的方向,那么梯度的反方向就是函数在给定点下降最快的方向。

其中:

步长:梯度下降迭代过程中每一步沿负方向前进的长度。

步长选择:

  •  步长太大,会导致迭代过快,错过最优解;
  • 步长太小,迭代速度太慢,耗时间太长。

公式推导:

一阶泰勒展开式

一阶泰勒展开式利用的是函数的局部线性近似这个概念


这里写图片描述

其中,  是微小矢量,它的大小就是我们之前讲的步进长度 ,为标量,而的单位向量用表示,则可以表示为:

在泰勒公式中,我们为了保证该式成立,最重要的一点是要保证θ和θ0的差距要足够小,只有这样才能够应用泰勒公式的基本思想“以直代曲”,即

 

即推导得到了梯度下降算法中\Theta的更新表达式。

原:https://zhuanlan.zhihu.com/p/36503663

比较详细的介绍:https://blog.csdn.net/pxhdky/article/details/82430196

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐