更新时间:2024-04-15
目录
模型每次反向传导都会给各个可学习参数p计算出一个偏导数,用于更新对应的参数p。通常偏导数不会直接作用到对应的可学习参数p上,而是通过优化器做一下处理,得到一个新的值,处理过程用函数F表示(不同的优化器对应的F的内容不同),即,然后和学习率lr一起用于更新可学习参数p,即。
SGD是随机梯度下降(stochastic gradient descent)的首字母。
模型里需要被更新的可学习参数。
学习率。
动量值,通过上一次的v和当前的偏导数g,得到本次的v,即,这个就是上述的函数F。
动量是物理中的概念,它使v具有惯性,这样可以缓和v的抖动,有时候还可以帮助跳出局部盆地。比如上一次计算得到的v是10,参数更新后,本次的偏导数g是0,那么使用momentum=0.9后,最终用于更新可学习参数的v是10*0.9+0=9,而不是0,这样参数仍会得到较大的更新,就会增大离开当前局部盆地的可能性。
dampening是乘到偏导数g上的一个数,即:。注意:dampening在优化器第一次更新时,不起作用。
weight_decay的作用是用当前可学习参数p的值修改偏导数,即:,这里待更新的可学习参数p的偏导数就是。然后再使用上述公式,计算得到。
对应的文献还没看,从pytorch源码来看,当nesterov为False时,使用上述公式和计算得到。
当nesterov为True时,在上述得到的的基础上,最终的,即又使用了一次momentum和。
的导数是,此时,因此。这里w就是可学习参数p。
首先使用weight_decay:。
然后使用momentum(第一次更新不使用dampening):。这里
最后更新w:
的导数是,此时,因此。这里w就是可学习参数p。
首先使用weight_decay:。
然后使用momentum和dampening:,即:,这里用到的是在SGD类中缓存的。
最后更新w:
?
关于腾越娱乐
腾越最安全、信誉、快捷的娱乐【skype:zhumeng1688】,是亚洲极具公信力的娱乐游戏公司,以互联网技术为基础,引进海外高科技人才,腾越公司自主研发了基于playcraft引擎的H5网页版游戏,致力于带给腾越平台玩家最新颖、最高效的服务与娱乐体验。...联系我们
电话:400-123-4657
邮箱:admin@youweb.com
地址:广东省广州市天河区88号
传真:+86-123-4567