首页-FH至尊自媒体培训机构

优化方法-Adam.PPT

佚名
优化方法 */25 5、 Mini-batch Gradient Descent 面临的挑战: learning rate选取比较困难 对于稀疏数据或者特征,有时我们可能想更新快一些; 对于常出现的特征更新慢一些,这时候SGD就不太能满足要求了; SGD容易收敛到局部最优,并且在某些情况下可能被困在鞍点 优化方法-Momentum */25 momentum是模拟物理里动量的概念,积累之前的动量来替代真正的梯度: 其中, 是动量因子。 优化方法-Momentum */25 SGD without momentum SGD with momentum 优化方法-Momentum */25 特点: 下降初期时,使用上一次参数更新,下降方向一致,乘上较大的 能够进行很好的加速; 下降中后期时,在局部最小值来回震荡的时候, , 使得更新幅度增大,跳出陷阱; 在梯度改变方向的时候, 能够减少更新; 总之,momentum项能够在相关方向加速SGD,抑制振荡,从而加快收敛。 优化方法-Nesterov */25 nesterov项在梯度更新时做一个校正,避免前进太快,同时提高灵敏度: 并没有直接改变当前梯度 ,所以Nesterov的改进就是让之前的动量直接影响当前的梯度。即: 因此,加上nesterov项后,梯度在大的跳跃后,进行计算对当前梯度进行校正。 优化方法-Nesterov */25 momentum首先计算一个梯度(短的蓝色向量),然后在加速更新梯度的方向进行一个大的跳跃(长的蓝色向量),nesterov项首先在之前加速的梯度方向进行一个大的跳跃(棕色向量),计算梯度然后进行校正(绿色梯向量): momentum项和nesterov项都是为了使梯度更新更加灵活,对不同情况有针对性。 优化方法-Adagrad */25 Adagrad其实是对学习率进行了一个约束,即: 对 从1到 进行一个递推形成一个约束项regularizer 优化方法-Adagrad */25 特点: 前期 较小时候,regularizer较大,能够放大梯度 ; 后期 较大的时候,regularizer较小,能够约束梯度; 适合处理稀疏梯度。 缺点: 仍依赖于人工设置一个全局学习率; 设置过大的话,会使regularizer过于敏感,对梯度的调节太大; 中后期,分母上梯度平方的累加将会越来越大,使 ,训练提前结束。 优化方法-Adadelta */25 Adadelta是对Adagrad的扩展, Adagrad会累加之前所有的梯度平方,而Adadelta只累加固定大小的项,并且也不直接存储这些项,仅仅是近似计算对应的平均值。即: 其实Adadelta还是依赖于全局学习率的,但作者做了一定处理,经过近似牛顿迭代法之后: 此时Adadelta已经不用依赖于全局学习率了 优化方法-Adadelta */25 特点: 训练初中期,加速效果不错,很快; 训练后期,反复在局部最小值附近抖动。 优化方法-RMSprop */25 RMSprop可以算作Adadelta的一个特例: 当 时, 就变为了求梯度平方和的平均数; 如果再求根的话,就变成了RMS(均方根): 此时,这个RMS就可以作为学习率的一个约束: 优化方法-RMSprop */25 RMSprop: 其实RMSprop依然依赖于全局学习率; RMSprop算是Adagrad的一种发展,和Adadelta的变体,效果趋于二者之间; 适合处理非平稳目标 - 对于RNN效果很好。 优化方法-Adam */25 Adam(Adaptive Moment Estimation)本质上是带有动量项的RMSprop, 它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率; Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。 优化方法-Adam */25 公式如下: 其中, 、 分别是对梯度的一阶矩估计和二阶矩估计,可以看作对期望 、 的估计; 、 是对 、 的校正,这样可以近似为对期望的无偏估计。 对学习率形成一个动态约束,而且有明确的范围。 优化方法-Adam */25 特点: 结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点; 对内存需求

平台注册入口