二、优化算法
0 存在的问题:病态曲率问题上图为损掉函数轮廓。在进入以蓝色标识表记标帜的山沟状区域之前随机开始。 颜色实际上暗示损掉函数在特定点处的值有多大,红色暗示最大值,蓝色暗示最小值。想要达到最小值点,就必需颠末山沟。这个区域就是所谓的病态曲率。对该区域进行放大:
考虑山脊概况的A点。我们看到,梯度在这点可以分化为两个分量,一个沿着 w_{1} 标的目的,此外一个沿着 w_{2} 标的目的。如果 f 显著下降的独一标的目的是低曲率的,那么优化可能会变得太慢而不切实际,甚至看起来完全遏制,造成局部最小值的假象。
针对山脊间反弹的问题,可以采用一个较慢的学习率来实现收敛,但可能会造成其他的问题:需要花费更多的时间才能达到极小值点。事实上,有研究论文报道过:使用足够小的学习率来阻止山脊间的反弹可能导致参与者以为损掉底子没有改善,从而放弃训练。
1 动量法
动量法借用了物理中的动量概念,它模拟的是物体运动时的惯性,即更新的时候在必然程度上保留之前更新的标的目的,同时操作当前batch的梯度微调最终的更新标的目的。这样一来,不仅可以在必然程度上增加SGD的不变性,减少震荡,而且可以辅佐它在相关标的目的加速前进,从而学习地更快。同时,还有必然摆脱局部最优的能力。
SGD:\theta=\theta-\eta\cdot\nabla_{\theta}J\left(\theta;x^{(i)};y^{(i)} \right)\\ 采用动量法的SGD:
v_{t}=\gamma v_{t-1}+\eta\nabla_{\theta}J\left(\theta \right)\\ \theta=\theta-v_{t}\\2 自适应梯度算法
2.1 AdaGrad(Adaptive gradient)
Adagrad的主要长处是不需要对每个学习率手工地调节。而大大都算法,只是简单地使用一个不异的默认值如0.1来避免这样的情况。
从公式可以看出,Adagrad仍依赖于人工设置一个全局学习率 \eta ,如果设置过大的话,会使梯渡过于敏感。同时,它在分母上的 \bm{r} 项中堆集了平方梯度和,因为每次插手的项总是一个正值,所以累积的和将会随着训练过程而增大。到训练中后期,这会导致学习率不竭缩小,并最终变为一个无限小值——此时,这个算法已经不能从数据中学到额外的信息。
2.2 RMSProp
RMSprop算是Adagrad的一种成长,解决了AdaGrad方式中学习率过度衰减的问题;使用指数衰减平均以丢弃遥远的历史,使其能够快速收敛;此外,RMSProp还插手了超参数 \rho 控制衰减速率。但RMSprop依然依赖于全局学习率。
2.3 Adam(Adaptive Moment Estimation)
在数据斗劲稀疏的时候,adaptive的方式能得到更好的效果,例如Adagrad,RMSprop,Adam 等。而Adam方式也会比RMSprop方式收敛的成果要好一些,所以在实际应用中,结合了Adagrad长于措置稀疏梯度,和RMSprop长于措置非平稳方针的长处的Adam是最常用的方式,可以斗劲快地得到一个预估成果。
Adam为分歧的参数计算分歧的自适应学习率,而颠末偏置校正后,每一次迭代学习率都有个确定范围,使得参数斗劲平稳。同时,它对内存的需求较小,也适用于大多非凸优化,以及大数据集和高维空间。
3 常用技巧
3.1 模型初始化
尺度初始化:将所有权值在[-1,1]区间内按均值分布或高斯分布进行初始化。
Xavier初始化:每一层输出的方差尽量相等,使得网络中信息更好地流动。权值需要满足下面的均匀分布W\sim U\left[-\frac{\sqrt{6}}{\sqrt{n_{j}+n_{j+1}}},\frac{\sqrt{6}}{\sqrt{n_{j}+n_{j+1}}} \right]\\
3.2 训练数据和测试数据
数据包罗:训练数据、验证数据、测试数据;凡是三者比例为70%、15%、15%,或60%、20%、20%。当数据很多时,训练数据和验证数据可适当减少。
K折交叉验证:将原始训练数据分成 K 个不重叠的子集,然后执行 K 次模型训练和验证,每次在 K-1 个子集长进行训练,并在残剩的一个子集(在该轮中没有用于训练的子集)长进行验证。 最后,通过对 K 次尝试的成果取平均来估计训练和验证误差。
3.3 权重衰减( L_{2} 正则化)
欠拟合:误差一直斗劲大
过拟合:在训练数据集上误差小而在测试数据集上误差大
为防止过拟合和权值震荡,插手新的指标函数项:
J\left(\bm{w} \right)+\frac{\lambda}{2} \Vert \bm{w} \Vert^{2}\\ 第二项约束了权值不能过大。在梯度下降时,容易计算导数\frac{dJ\left(\bm{w} \right)}{d\bm{w}}+\lambda\bm{w}\\
3.4 Dropout(暂退)
在整个训练过程的每一次迭代中,尺度暂退法包罗在计算下一层之前将当前层中的一些节点置零。
页:
[1]