梯度下降法 Gradient Descent

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

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

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

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

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

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

计算步骤:

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

猜你喜欢

转载自blog.csdn.net/baishuiniyaonulia/article/details/80948499
今日推荐