梯度下降法是一种常见的优化算法,在机器学习中应用很广泛。本文从代码的角度,带你理解梯度下降法。

优化算法
优化指的是改变x以最小化或最大化某个函数 f(x) 的任务。通常以最小化 f(x) 指代大多数最优化问题。最大化可以通过最小化 -f(x) 来实现。
在机器学习领域,我们把要最小化或最大化的函数称为目标函数(objective function)或准则(criterion)。当我们对其进行最小化时,也把它称为代价函数(cost function)、损失函数(loss function)或误差函数(error function)。1
优化算法中常用的迭代方法有线性搜索和置信域方法等。线性搜索的策略是寻找方向和步长,具体算法有:梯度下降法、牛顿法、共轭梯度法等。2
梯度下降法为一阶收敛算法,当靠近局部最小解时梯度变小,收敛速度会变慢,并且可能以“之字形”的方式下降。如果目标函数为二阶连续可微,可以采用牛顿法,牛顿法(Newton’smethod)为二阶收敛算法,收敛速度更快,但是每次迭代需要计算Hessian矩阵的逆矩阵,复杂度较高。2下一章解析牛顿法。
梯度下降法
梯度(gradient)是相对一个向量求导的导数: f f f的导数是包含所有偏导数的向量,记为 ∇ x f ( x ) \nabla_\boldsymbol{x} f(\boldsymbol x) ∇xf(x)。梯度的第 i i i个元素是 f f f关于 x i \boldsymbol{x}_i xi的偏导数。在多维情况下,临界点是梯度中所有元素都为零的点。
梯度下降(

本文从代码角度介绍梯度下降法。梯度下降法是常见优化算法,在机器学习中应用广泛。文中阐述了优化算法概念,对比了梯度下降法和牛顿法,介绍了梯度下降原理及更新公式,还给出用该法求多元函数最小值的代码示例。
最低0.47元/天 解锁文章
1791

被折叠的 条评论
为什么被折叠?



