梯度下降算法原理

下山问题

假设我们位于黄山的某个山腰处,山势连绵不绝,不知道怎么下山。于是决定走一步算一步,也就是每次沿着当前位置最陡峭最易下山的方向前进一小步,然后继续沿下一个位置最陡方向前进一小步。这样一步一步走下去,一直走到觉得我们已经到了山脚。这里的下山最陡的方向就是梯度的负方向。

首先理解什么是梯度?通俗来说,梯度就是表示某一函数在该点处的方向导数沿着该方向取得较大值,即函数在当前位置的导数。

其中,θo是自变量参数,即下山位置坐标,η是学习因子,即下山每次前进的一小步(步进长度),θ是更新后的θo,即下山移动一小步之后的位置。

 

一阶泰勒展开式

这里需要一点数学基础,对泰勒展开式有些了解。简单地来说,一阶泰勒展开式利用的就是函数的局部线性近似这个概念。我们以一阶泰勒展开式为例:

不懂上面的公式?没有关系。我用下面这张图来解释。

凸函数f(θ)的某一小段[θo,θ]由上图黑色曲线表示,可以利用线性近似的思想求出f(θ)的值,如上图红色直线。该直线的斜率等于f(θ)在θo处的导数。则根据直线方程,很容易得到f(θ)的近似表达式为:

这就是一阶泰勒展开式的推导过程,主要利用的数学思想就是曲线函数的线性拟合近似

 

梯度下降数学原理

知道了一阶泰勒展开式之后,接下来就是重点了!我们来看一下梯度下降算法是如何推导的。

 

想要两个向量的乘积小于零,我们先来看一下两个向量乘积包含哪几种情况:

A和B均为向量,α为两个向量之间的夹角。A和B的乘积为:


梯度下降法的问题

1)梯度下降的问题之一:参数调整缓慢

2)梯度下降的问题之二:收敛于局部极小值


参考: https://www.jianshu.com/p/c7e642877b0e

posted @ 2019-04-17 11:29  車輪の唄  阅读(28)  评论(0)    收藏  举报  来源