梯度下降算法详解

来源:互联网 发布:数据库管理系统教程 编辑:程序博客网 时间:2024/05/21 08:49

在机器学习中梯度下降算法是一个很重要的方法。上次竟然有个面试题让描述梯度下降算法,曾用过的东西也说不清楚,真的很汗颜。

首先要说下梯度的概念。这要从微分说起,我们都清楚函数在平面上的曲线在某个点A对x微分,此处微分的意义为曲线在点A的变换率。多元函数的时候就有了方向导数的概念。因为这个时候函数的变化可以沿着不同的方向变化,例如在曲面上的任一点都可以有无数个可以变化的方向,方向倒数可理解为函数在某个方向上的变化率。梯度是一个向量,函数沿着梯度的方向是增长最快的方向,至于为什么先看下梯度的定义:


任一方向倒数都可以表示成梯度的模乘上该方向和梯度夹角的余弦。所以在夹角为0时方向导数最大,这就是为什么梯度方向是函数增长最快方向的原因。


在实际应用中,梯度下降和上市方法通常用来寻找最优解。上面只是理论的东西,下面是在求解回归参数上的例子。

        例如回归方程为:


为了求参数a通常是让总体误差最小化


就是上面的函数值最小。这是关于参数a的函数。对上面的函数求梯度,然后在训练的时候确定一个步长,不断的用梯度去更新参数向量。具体细节参考稍后贴上的代码。







0 0
原创粉丝点击