基于梯度下降法的最优化方法

匿名 (未验证) 提交于 2019-12-02 23:32:01

基于梯度下降法的最优化方法

梯度下降法的基本思想

x+=-lr*dx 其中lr称为学习率,是超参数,是正的常量,其值一般较小。在整个数据集上计算梯度进行参数更新时,只要学习率足够小,每次更新参数时总能使损失函数的值减小。

随机梯度下降法SGD

从训练集中随机抽取小批量样本,计算它们平均损失的梯度,来实现一次参数更新。用小批量样本的平均损失代替全体样本的平均损失进行参数更新,可以加快参数更新频率,加速收敛。小批量样本的平均损失是全体样本平均损失的无偏估计。这是因为训练集中的同类样本是相关的,同类样本中不同个体的损失是相似的,所以随机抽取的一个样本损失可以作为该类所有样本损失的估计。 如果小批量样本中只有一个样本,那么称为随机梯度下降法(Stochastic Gradient Descent,SGD)。SGD指每次使用一个样本来更新参数,但我们经常使用SGD来指代小批量梯度下降法。小批量样本的数量是一个超参数,它受存储器的存储容量限制,一般设置为32、64、128等2的指数,运算效率会更高。SGD算法中,每次都要随机抽取batch个样本,实现时可以采用先整体打乱训练集,然后每次按顺序取batch个样本的方式。 深度学习中最常用的优化算法之一就是利用SGD及其改进算法进行训练,下面将介绍这些算法。

基本动量法

  mu = 0.9   v = mu *v     #[1]   v += -lr *dx   #[2]   x += v


v = -lr/(1-mu)xdx,此时相当于学习率为lr/(1-mu),mu=0.9表示10倍于SGD算法的收敛速度。把1/(1-mu)看作放大率更容易理解,mu越大,放大率越大,收敛可能越快。

n* v0,其中n是参数更新次数。可见,v是指衰减,小球只要滚动到平地时的初速度v0足够大,就有机会冲出当前平地,到达一个更低的山谷。速度v被称为动量,所以该方法被称为动量法。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!