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

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


梯度下降算法理论

  梯度下降算法源自于线性回归模型的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(θ)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值