50行代码,带你理解梯度下降法(Gradient Descent Method)

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

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

在这里插入图片描述

优化算法

优化指的是改变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的偏导数。在多维情况下,临界点是梯度中所有元素都为零的点。

梯度下降(

本文章已经生成可运行项目
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值