背景:在深度学习优化算法,如:Momentum、RMSprop、Adam中都涉及到指数加权平均这个概念。为了系统的理解上面提到的三种深度学习优化算法,先着重理解一下指数加权平均(exponentially weighted averages)
指数移动平均(EMA)也称为指数加权移动平均(EWMA),是一种求平均数的方法,应用指数级降低的加权因子。 每个较旧数据的权重都呈指数下降,从未达到零。
m个数据的数据集\({[\theta_1,\theta_2,...,\theta_m]}\) ;
符号 | 含义 |
---|---|
\(\beta\) | 参数 |
\(v_0\) | 初始平均值 |
\(v_t\) | 前t条记录的平均值 |
\(\theta_t\) | 第t条记录值 |
有100天伦敦温度记录\({[\theta_1,\theta_2,...,\theta_{100}]}\),计算伦敦100天温度平均值。如果\(\beta =0.9\);
计算公式:
展开公式:
即:\(v_{100} = 0.1\theta_{100} + 0.1*0.9 \theta_{99} + 0.1*(0.9)^2 \theta_{98} + ... + 0.1*0.9^{99}\theta_1\)
可以看出:各个记录前的权重系数是以指数级下降的,但不为0。所以这种平均值的求解方法称为指数加权平均 。
温度平均值变化图:
主要用在深度学习优化算法中,用来修改梯度下降算法中参数的更新方法。
在优化算法中,\(\frac{1}{1-\beta}\) 可以粗略表示指数加权平均考虑的样本数[由于随着样本容量t的逐渐增多,其系数指数下降,对平均值的贡献程度逐渐降低;影响平均值计算的几个关键样本就是最近几天的样本值,而这个样本量可以通过\(\frac{1}{1-\beta}\) 来进行大致估算]。
初始化:\(v_{dW} = np.zeros(dW.shape)\) ; \(v_{db} = np.zeros(db.shape)\) ----初始为0;分别与dW、db shape相同;
在第t次迭代中On iteration \(t\):
超参数: \(\alpha, \beta\), ---\(\beta\) usually be 0.9. (a very robust number)
初始化:\(S_{dW} = np.zeros(dW.shape)\) ; \(S_{db} = np.zeros(db.shape)\) ----初始为0;分别与dW、db shape相同;
在t次迭代中On iteration \(t\):
初始化:\(v_{dW} = np.zeros(dW.shape)\) ; \(S_{dW} = np.zeros(dW.shape)\) ; \(v_{db} = np.zeros(db.shape)\) \(S_{db} = np.zeros(db.shape)\) ; ----初始为0;分别与dW、db shape相同;【\(v_{dW}\)、\(v_{db}\) 是Momentum算法;\(S_{dW}\)、\(S_{db}\) 是RMSprop优化算法】
t次迭代过程On iteration \(t\):
指数加权平均早期估算过程中存在:偏差 。
由于指数加权平均初始值\(v_0 = 0\),\(\beta = 0.9\)则:
就是说在平均值求解的刚开始几次计算过程中,计算的平均值过小,偏差过大。表现在下面的图里,绿线 是理想情况;紫线 是指数加权平均线。可以看出前几次平均值紫线比绿线要高一些! 紫线早期过下,偏差过大。
进行偏差纠正。
将计算的平均值结果除以\(1-\beta^t\),即\(v_t = \frac{v_t}{1-\beta^t}=\frac{\beta v_{t-1} + (1-\beta)\theta_t}{1-\beta^t}\) ;
从计算公式可以看出\(v_t\) 随着计算样本t的增大,不断接近于没有进行偏差纠正的指数加权平均值。在图中表现就是随着样本的增大,紫线和绿线逐渐重合。