|
|
|
|
移动端

2.5.6 AdaGrad:每个变量有自己的节奏

《深度学习与计算机视觉:算法原理、框架应用与代码实现》本书全面介绍了深度学习及计算机视觉中最基础的知识,并结合最常见的应用场景和大量实例,带领读者进入丰富多彩的计算机视觉领域。作为一本“原理+实践”教程,本书在讲解原理的基础上,通过有趣的实例带领读者一步步亲自动手,不断提高动手能力,而不是枯燥和深奥原理的堆砌。本节为大家介绍AdaGrad:每个变量有自己的节奏。

作者:叶韵来源:机械工业出版社|2017-10-23 17:02

【新品产上线啦】51CTO播客,随时随地,碎片化学习

2.5.6  AdaGrad:每个变量有自己的节奏

在基本的梯度下降法优化中,有个一个常见问题是,要优化的变量对于目标函数的依赖是各不相同的。对于某些变量,已经优化到了极小值附近,但是有的变量仍然在梯度很大的地方,这时候一个统一的全局学习率是可能出现问题的。如果学习率太小,则梯度很大的变量会收敛很慢,如果梯度太大,已经优化差不多的变量可能会不稳定。

针对这个问题,当时在伯克利加州大学读博士的Jhon Duchi,提出了AdaGrad(Adaptive Gradient),字面上理解就是自适应学习率。AdaGrad的基本思想是对每个变量用不同的学习率,这个学习率在一开始比较大,用于快速梯度下降。随着优化过程的进行,对于已经下降很多的变量,则减缓学习率,对于还没怎么下降的变量,则保持一个较大的学习率

用(xt)i表示第i个变量xi在第t次迭代时的值,(▽f(xt))i表示函数在t次迭代时,对第i个变量xi的梯度值,则算法更新梯度的公式如下:

其实就是每个变量都随着学习的进行,根据历史学习率累积总量来决定当前学习率减小的程度。根据AdaGrad的特性,对于下面这种函数会比一般的梯度下降有很大的优势,如图2-52中等高线所示的情况。

图2-52中,中间区域上下方向梯度变化明显,但是左右方向梯度非常平缓。如果是一般的梯度下降,学习率过大的话则会沿着图2-52中的上下方向震荡,如果学习率过小则会像图2-52中的虚线箭头所示,到达B位置后,以一个极其缓慢的速度向A点前进。

在机器学习的应用中,AdaGrad非常适合样本稀疏的问题,因为稀疏的样本下,每次梯度下降的方向,以及涉及的变量都可能有很大的差异。AdaGrad的缺点是虽然不同变量有了各自的学习率,但是初始的全局学习率还是需要手工指定。如果全局学习率过大,优化同样不稳定;而如果全局学习率过小,因为AdaGrad的特性,随着优化的进行,学习率会越来越小,很可能还没有到极值就停滞不前了。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

数据库系统工程师考试全程指导

为了满足广大考生的需要,我们组织了参与过多年资格考试命题或辅导的教师,以新的考试大纲为依据,编写了《数据库系统工程师考试全程指导》...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊