梯度下降法

本文深入浅出地讲解了梯度下降法的基本原理及其在机器学习中的应用,通过实例演示了如何利用梯度下降法寻找多元函数的最小值,同时介绍了相关概念如步长、特征和损失函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在微积分中,对多元函数的参数求偏导,把各个参数的偏导写成向量,就是梯度。梯度向量的意义就在于反映了函数变化最快的地方,比如说对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值。在机器学习中,我们需要最小化损失函数,所以就需要梯度下降法。

梯度下降的直观解释就是假设我们要下山,但是并不知道具体怎么下,于是我们选择分析目前的位置往哪个方向走是最陡的,走了一步之后继续重复分析,力求每一步下山的幅度是最大的,最后我们可能不能下到最低处,但起码也能达到一个局部最优的地方。

接下来再介绍一些相关概念,首先是步长,也叫学习率,就是每一次迭代往负方向移动的距离;特征,也就是线性回归中的predictor,也是自变量,也是输入的数据,有很多叫法,但本质都是一样;假设函数,也就是我们的目标函数,线性回归中的回归函数,包含了自变量和我们需要估计的参数;损失函数,可以评价模型的好坏,像之前用到的均方误差,损失函数越小,证明预测值和真实值之间的差异越小,模型越好。

说完简单的理解,再举一个实际的例子,比如我们现在有一个二元函数求梯度:

f ( x 1 , x 2 ) = x 1 2 + x 1 x 2 − 3 x 2 f(x_1, x_2) = x_1 ^2 +x_1 x_2-3x_2 f(x1,x2)=x12+x1x23x2
∇ f = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 ) = ( 2 x 1 + x 2 , x 1 − 3 ) \nabla f = (\frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2}) = (2x_1+x_2, x_1-3) f=(x1f,x2f)=(2x1+x2,x13)

比如我们设置初始点在(0,0),那么我们就可以代入梯度,知道函数往(0,-3)的方向下降得最快(假设学习率为1),验证一下,一开始我们函数的结果为0,第一次迭代后点在(0,3)(初始点减去梯度),函数结果为-9,确实下降了,所以这个点比初始点更接近最小值。

想浏览更多关于数学、机器学习、深度学习的内容,可浏览本人博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值