梯度下降法求解最小值过程概述:
在一个可微的光滑曲面上随机选取一个点,然后通过不断的迭代计算,使这个点移动的每一步都向着梯度方向(即下降最快的方向),最终到达局部极小值点,之后通过多次随机取点进行同样的计算,即可找出最小值点。
梯度下降法 Gradient Descent

那么我们为什么不直接求解最小值点,而是通过迭代的方法一步一步来求解呢?

实际上机器学习所要求的非线性方程一般很难求得数值解,而且在实际应用中也没有必要求得精确的数值解,往往只要求得满足一定精度要求的近似解即可。计算模型的过程是一个拟合的过程,通过不断迭代缩小误差来得到近似解,最终误差在一个可接受的范围内就算拟合完成。

举个例子,假设我们要寻找一个小于10的误差在2以内的数,那么通过迭代我们可以得到9或9.5甚至更接近(因为迭代的过程是一个不断减小误差的过程),但是直接求解我们很有可能只能找到8,这时候误差就很大了。

梯度下降法的数学表达:
假设f(x)Rn(n维特征空间)上具有一阶连续偏导数的函数,要求解的无约束最优化函数如下:

minxRnf(x)
则有:
目标函数(损失函数+正则化项):f(x)
梯度函数:g(x)=f(x)
给定精度:ϵ
给定步长:η
下降距离:ηg
极小值点:x

计算步骤:

  1. 取初始值x(k)Rn,置k为0;
  2. 计算f(x(k))
  3. 计算梯度gk=g(x(k))。当gk<ϵ时,停止迭代,令x=x(k)。否则求ηk使得:
    f(x(k)ηkgk)=minη0f(x(k)ηkgk)
  4. x(k+1)=x(k)ηkgk,计算f(x(k+1))
  5. 如果||f(x(k+1))f(x(k))||ϵ或者||x(k+1)x(k)||ϵ,则停止迭代,令x=x(k+1)。否则,转到第三步。

相关文章: