正文
梯度下降法求解最小值过程概述:
在一个可微的光滑曲面上随机选取一个点,然后通过不断的迭代计算,使这个点移动的每一步都向着梯度方向(即下降最快的方向),最终到达局部极小值点,之后通过多次随机取点进行同样的计算,即可找出最小值点。
那么我们为什么不直接求解最小值点,而是通过迭代的方法一步一步来求解呢?
实际上机器学习所要求的非线性方程一般很难求得数值解,而且在实际应用中也没有必要求得精确的数值解,往往只要求得满足一定精度要求的近似解即可。计算模型的过程是一个拟合的过程,通过不断迭代缩小误差来得到近似解,最终误差在一个可接受的范围内就算拟合完成。
举个例子,假设我们要寻找一个小于10的误差在2以内的数,那么通过迭代我们可以得到9或9.5甚至更接近(因为迭代的过程是一个不断减小误差的过程),但是直接求解我们很有可能只能找到8,这时候误差就很大了。
梯度下降法的数学表达:
假设f(x)是Rn(n维特征空间)上具有一阶连续偏导数的函数,要求解的无约束最优化函数如下:
则有:
目标函数(损失函数+正则化项): f(x)
梯度函数: g(x)=∇f(x)
给定精度: ϵ
给定步长: η
下降距离: ηg
极小值点: x∗
计算步骤: