欢迎浏览我公司网站!!
行业资讯
Adam优化算法中的指数移动平均
时间: 2024-03-04浏览次数:
机器学习经典算法(三)--指数加权平均机器学习经典算法(三)–指数加权平均?指数加权平均(ExponentiallyWeightedAverages)是一些改进梯度下降法重要理论,如上篇博文梯度下降法(2)提到的动量梯度下降法,RMSprop、Adam等都用到了指数加权平均。也叫指数加权移动平均(ExponentiallyWeightedMovingAverages);那么到底什

机器学习经典算法(三)--指数加权平均

机器学习经典算法(三)–指数加权平均

?指数加权平均(Exponentially Weighted Averages)是一些改进梯度下降法重要理论,如上篇博文梯度下降法(2)提到的动量梯度下降法,RMSprop、Adam等都用到了指数加权平均。也叫指数加权移动平均(Exponentially Weighted Moving Averages);那么到底什么是指数加权平均呢?

基础概念?
?话说有这么一个例子,如下图,横轴表示天数ii,纵轴表示某地每天对应的温度θiθi,这是1年的数据,现在我们想计算一下,这一年温度变化的趋势?

?这个变化趋势也就是局部平均或移动平均,怎么做呢??
?我们用vivi表示这个平均值,引入一个参数,且令v0=0v0=0,?
vi=β?vi?1+(1?β)?θi
vi=β?vi?1+(1?β)?θi

?这样一个式子表达了相当于,当天的温度平均值约等于前TT天温度数据加权平均,T≈11?βT≈11?β。?
?例如:β=0.9β=0.9时,T=10T=10天,效果如图:?

?例如:β=0.98β=0.98时,T=50T=50天,效果如图:?

?例如:β=0.5β=0.5时,T=2T=2天,效果如图:?

?从上述3种情况对比看,该数据平均前10天较为符合我们期望;前50天曲线太平滑,有点偏离数据;前2天与数据较为贴合,但同时存在噪声。

进一步理解?
?我们将上式展开,这里用第100个平均值,β=0.9β=0.9为例:?
v100v99v98?===0.9?v99+0.1?θ1000.9?v98+0.1?θ990.9?v97+0.1?θ98
v100=0.9?v99+0.1?θ100v99=0.9?v98+0.1?θ99v98=0.9?v97+0.1?θ98?

?则:?
v100?====0.1?θ100+0.9?v990.1?θ100+0.9(0.1?θ99+0.9?v98)0.1?θ100+0.9(0.1?θ99+0.9(0.1?θ98+0.9?v97)0.1?θ100+0.1?0.9θ99+0.1?0.92θ98+0.1?0.93?θ97+?+0.1?0.999θ1
v100=0.1?θ100+0.9?v99=0.1?θ100+0.9(0.1?θ99+0.9?v98)=0.1?θ100+0.9(0.1?θ99+0.9(0.1?θ98+0.9?v97)?=0.1?θ100+0.1?0.9θ99+0.1?0.92θ98+0.1?0.93?θ97+?+0.1?0.999θ1

?从上式可以看出第100天的平均值是由前100天数据加权平均的,但是看它们的权重系数,是符合一个指数级衰减函数,当T=10T=10时,0.910≈1/e0.910≈1/e,当小于1/e1/e的权重其影响已经非常小了,所以相当于前10天的数据加权平均;同理当θ=0.98θ=0.98时,0.9850≈1/e0.9850≈1/e,所以相当于前50天数据加权平均。
偏差修正(bias correction)?
?上面讲述了指数加权平均原理,但还存在一个问题,就是开始时,我们算法的天数不到TT天时,怎么办呢?如下图?

?图中红色曲线还是β=0.9β=0.9的曲线,绿色是我们上面提到的β=0.98β=0.98的曲线;但是,按照上面公式去计算,呈现的β=0.98β=0.98的曲线应该是紫色曲线,注意到它起步阶段与理想绿色曲线是偏小的。?
?这时误差修正就上场了:?
vt=vt1?βt
vt=vt1?βt

?在tt较小时,将会修正平均值,随着tt曾大,其修正作用减小,因为这时也不需要修正了。?
?当然了再机器学习中,很多人不在意起步阶段偏小问题,而愿意熬过这个阶段,所以这个误差修正,也常常被忽略,如动量梯度下降法和RMSprop中就没有加入误差修正,在Adam算法中加入了误差修正。
参考文献:?
【1】吴恩达DeepLearning.ai课程:https://mooc.study.163.com/smartSpec/detail/1001319001.htm
?


Copyright © 2002-2022 盛煌-盛煌娱乐-盛煌全球注册认证站 版权所有

粤IP*******

平台注册入口