【Deep Learning 】深度模型中的优化问题(五)AdaGrad(自适应算法1)

本文是Deep Learning 之 最优化方法系列文章的AdaGrad方法(自适应算法1)。主要参考Deep Learning 一书。

 

以下节选自个人深度学习笔记。

内容整合来源于网络与个人理解。

 

Adagrad

口 应该为不同的参数设置不同的学习步长。

口 梯度越小,则学习步长越大,反之亦然。

【Deep Learning 】深度模型中的优化问题(五)AdaGrad(自适应算法1)_第1张图片

口 想象一下:在缓坡上,可以大步地往下跑;而且陡坡上,只能小步地往下挪

 

【Deep Learning 】深度模型中的优化问题(五)AdaGrad(自适应算法1)_第2张图片

③ 上面提到的方法对于所有参数都使用了同一个更新速率。但是同一个更新速率不一定适合所有参数。比如有的参数可能已经到了仅需要微调的阶段,但又有些参数由于对应样本少等原因,还需要较大幅度的调动。

Adagrad就是针对这一问题提出的,自适应地为各个参数分配不同学习率的算法。

其中 同样是当前的梯度,连加和开根号都是元素级别的运算。θ是初始学习率,由于之后会自动调整学习率,所以初始值就不像之前的算法那样重要了。而是一个比较小的数,用来保证分母非0。

其含义是,对于每个参数,随着其更新的总距离增多,其学习速率也随之变慢。

 

④ Adagrad算法存在三个弊端:

1.  其学习率是单调递减的,训练后期学习率非常小。

2.  其需要手工设置一个全局的初始学习率。

3.  更新时,左右两边的单位不同一。


⑤ 具体见算法: 
【Deep Learning 】深度模型中的优化问题(五)AdaGrad(自适应算法1)_第3张图片

 

 

参考:

Deep Learning 最优化方法之AdaGrad

 

你可能感兴趣的:(算法,Python,深度学习)