梯度下降算法的实质

  梯度下降算法的做法是通过改变权重w的值,从而使代价函数最小。那么问题是,为什么改变w的值能够使代价函数最小呢?最直接的方式应该是求取代价函数C对于w的导数,当∂C⁄∂w = 0时,代价函数C才具有最小值,此时通过∂C⁄∂w = 0计算出来的值才是最优权重。但是,由于计算复杂度的原因,我们采取的是一种间接的思路:梯度下降算法。
  实际上,由于最终的目的是让C值变小。既然通过求导的方式达不到目的,那就看有没有方式能够让C逐步变小。而梯度下降的方式,就是沿着C值下降最快的方向来减小C的值。
  C值下降最快的方向即为C值的梯度方向∇C。梯度可以理解为某点的斜率:
∇C= ∂C⁄∂w
  沿着梯度方向下降一定的距离∆w,这就是下降的梯度值∆C:
∆C=∇C×∆w
  最后,更新梯度值
C = C-∆C=C- ∂C/∂w×∆w
  通过以上步骤也能实现梯度的下降。重要的是,通过操纵∆w能够控制C下降的幅度。这就是我们能够通知C的值进行调参的关键。
  但是又如何能保证∆C一定是正数呢?否者就不能保证每一步都是朝着减小C的方向。∆C= ∂C/∂w×∆w,∂C/∂w无法控制,但∆w能控制,那么?是否可以通过控制∆w使两者乘积一定为正值呢?答案是可以的,某个数的平方就一定为正。
  因此,∆w= η× ∂C/∂w,其中的η是学习率,用于控制下降的速度。
  即w = w - η× ∂C/∂w,这就通过改变权重w的值,实现了C值的下降。

http://www.tensorfly.cn/home/?p=80

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值