梯度下降法 Gradient Descent

xiaoxiao2021-02-28  21

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

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

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

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

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

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

计算步骤:

取初始值 x(k)Rn x ( k ) ∈ R n ,置 k k 为0; 计算f(x(k))f(x(k));计算梯度 gk=g(x(k)) g k = g ( x ( k ) ) 。当 gk<ϵ g k < ϵ 时,停止迭代,令 x=x(k) x ∗ = x ( k ) 。否则求 ηk η k 使得: f(x(k)ηkgk)=minη0f(x(k)ηkgk) f ( x ( k ) − η k g k ) = min η ⩾ 0 f ( x ( k ) − η k g k ) x(k+1)=x(k)ηkgk x ( k + 1 ) = x ( k ) − η k g k ,计算 f(x(k+1)) f ( x ( k + 1 ) ) ;如果 ||f(x(k+1))f(x(k))||ϵ | | f ( x ( k + 1 ) ) − f ( x ( k ) ) | | ⩽ ϵ 或者 ||x(k+1)x(k)||ϵ | | x ( k + 1 ) − x ( k ) | | ⩽ ϵ ,则停止迭代,令 x=x(k+1) x ∗ = x ( k + 1 ) 。否则,转到第三步。
转载请注明原文地址: https://www.6miu.com/read-2600046.html

最新回复(0)