梯度下降算法推导(机器学习系列-1)

本文详细阐述了梯度下降算法的数学推导过程,并通过线性回归模型的cost function最小值计算进行了说明。介绍了梯度下降算法的基本原理,即通过计算cost function的导数来确定其下降方向,从而寻找最小值。

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

  在网上能够搜到很多关于梯度下降算法的文章,但找了几篇发现推导都不能很好的理解(也可能是愚生数学功底差),本文将着重从数学角度讲述一下梯度下降算法的数学推导。


梯度下降算法理论

  梯度下降算法源自于线性回归模型的cost function 最小值计算,在线性回归中,我们通过一个拟合函数:

h(θ)=θ0+θ1x1
,然后计算cost function:
J(θ)=12mi=0m(hθ(x)y)2

  很明显这是计算在某一个θ向量取值的时候,所得拟合函数在每组数据x上的计算值与其实际值y的差值,为了更好的展现这种误差,我们用平方和均值来表示,为了后面的计算方便还将其乘以12。那么,后面的问题就是,当我们能够求得一组θ值使得J(θ)得到最小值的时候,我们就认为得到了最佳拟合参数–θ向量。因此,线性拟合模型的问题,最后就归结到了cost function的最小值计算了。那么这里要介绍的方法就是梯度下降方法。我们通过梯度下降的方法来寻找J(θ)的最小值。
  看过Andrew Ng视频的人肯定知道,梯度下降算法的原理,就是通过计算J(θ)的导数,通过寻找导数最小值的方式,来决定J(θ)的下降方向,在不断的迭代之后,即可找到J(θ)的最小值。以下就是J(θ)的求导计算:
J(θ)=(12mi=0m(hθ(x)y)2)=12m(i=0m(hθ(x)y)2)=12m2(hθ(x)y)i=0m(hθ(x)y)=1m(hθ(x)y)i=0m(hθ)=1m(hθ(x)y)i=0m(θ0+θ1x1+θ2x2+...+θn)

所以:
J(θj)=1m(hθ(x)y)i=0m(θ0+θ1x1+θ2x2+...+θn)=1m(hθ(x)y)xj

  在梯度下降算法中,我们需要不断收敛各个θj,寻找J(θ)的最小值。θj在其导数方向上减少(下降),即可使得J(θ)达到最小值,最后当J(θ)收敛时,则停止θj的计算。具体如下:
  θ取随机值(初始值)
  repeat:
    计算h(θ),将第一个样本数据y代入,更新θj -= (h(θ)y)θj,更新每个θj,然后把剩下的数据代入,得到一组新的θ
    计算各组数据在新的θ下的h(θ)值与实际值y的误差,当误差小于阈值时.
  停止repeat。
完成计算,得到拟合函数h(θ)

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值