机器学习中的梯度下降法

引言:

梯度下降法的在机器学习中的地位:当神经网络使用反向传播算法之后,需要使用最优化算法来减小误差。而在各种最优化算法中,梯度下降法是最简单、最常见的一种,在深度学习的训练中被广泛使用。

最优化问题

求解函数极值的问题,包括极大值和极小值

  1. 只要函数是可导的,极值点的导数必定为0。
  2. 其中x称为优化变量,f称为目标函数。极大值问题可以转换成极小值问题来求解,只需要将目标函数加上负号即可
    $$max_xf(x)\equiv{min_x{-f(x)}}$$

导数与梯度

  1. 多元函数的梯度定义为:
    $$\nabla{f(x)=(\frac{\partial{f}}{\partial{x_1}},…,\frac{\partial{f}}{\partial{x_n}})^{T}}$$

 其中$\nabla$称为梯度算子,它作用于一个多元函数,得到一个向量。下面是计算函数梯度的一个例子:$\nabla{(x^2+xy-y^2)=(2x+y,x-2y)}$

  1. 梯度为0只是函数取极值的必要条件而不是充分条件
  2. 如何确定驻点是极大值还是极小值?
    要看二阶导数/Hessian矩阵:

    • 如果Hessian矩阵正定,函数有极小值
    • 如果Hessian矩阵负定,函数有极大值
    • 如果Hessian矩阵不定,则需要进一步讨论
  3. 为什么不可以直接求函数的梯度,来解方程?
    答:方程可能很难解:对于有指数函数,对数函数,三角函数的方程,我们称为超越方程。比如$3x^2e^{xy}+xcos(xy)=0$。其求解的难度并不比求极值本身小。

推导过程

面临的问题

补充:驻点要求一阶导数必须存在,而极值点对导数没有要求

  1. 局部极小值点
  2. 鞍点问题

    变种

  3. AdaGrad(自适应梯度)
  4. AdaDelta
  5. Adam(adaptive moment estimation)
  6. NAG

    随机梯度下降法

    随机梯度下降法在数学期望的意义下收敛,但并不能保证每次迭代时函数值一定下降。

参考与引用

  1. https://mp.weixin.qq.com/s/lqwUkimO4irkIZmAnp0bcg
  2. https://blog.csdn.net/lanchunhui/article/details/52504859
请zzy824喝杯咖啡
0%