本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:【j2开奖】技术 | 深度解读最流行的优化算法:梯度下降(4)

时间:2016-11-21 23:05来源:本港台现场报码 作者:118KJ 点击:
因为我们现在能根据我们罚函数的梯度值来调整我们的更新,并能相应地加速 SGD,我们也希望能够对罚函数中的每个参数调整我们的更新值,基于它们的

因为我们现在能根据我们罚函数的梯度值来调整我们的更新,并能相应地加速 SGD,我们也希望能够对罚函数中的每个参数调整我们的更新值,基于它们的重要性以进行或大或小的更新。

Adagrad 法

Adagrad[3] 是一个基于梯度的优化算法,它的主要功能是:它对不同的参数调整学习率,具体而言,对低频出现的参数进行大的更新,对高频出现的参数进行小的更新。因此,他很适合于处理稀疏数据。Dean 等人 [14] 发现,Adagrad 法大大提升了 SGD 的鲁棒性,并在谷歌使用它训练大规模的神经网络,其诸多功能包括识别 Youtube 视频中的猫。此外,Pennington 等人 [5] 使用它训练 GloVe 单词向量映射(Word Embedding),在其中不频繁出现的词语需要比频繁出现的更大的更新值。

在这之前,我们对于所有的参数使用相同的学习率进行更新。但 Adagrad 则不然,对不同的训练迭代次数 t,adagrad 对每个参数都有一个不同的学习率。我们首先考察 adagrad 每个参数的的更新过程,然后我们再使之向量化。为简洁起见,我们记在迭代次数 t 下,对参数θi 求目标函数梯度的结果为 gt,i:

  

那么普通 SGD 的更新规则为:

  

而 adagrad 将学习率η进行了修正,对迭代次数 t,基于每个参数之前计算的梯度值,将每个参数的学习率η按如下方式修正:

  

其中 是一个对角阵,其中对角线上的元素是从一开始到 时刻目标函数对于参数 梯度的平方和。是一个平滑项,以避免分母为 0 的情况,它的数量级通常在。有趣的是,如果不开方的话,这个算法的表现会变得很糟。

因为 在其对角线上,含有过去目标函数对于参数 梯度的平方和,我们可以利用一个元素对元素的向量乘法,将我们的表达式向量化:

  

Adagrad 主要优势之一,是它不需要对每个学习率手工地调节。而大多数算法,只是简单地使用一个相同地默认值如 0.1,来避免这样地情况。

Adagrad 地主要劣势,是他在分母上的项中积累了平方梯度和。因为每次加入的项总是一个正值,所以累积的和将会随着训练过程而增大。因而,这会导致学习率不断缩小,并最终变为一个无限小值——此时,这个算法已经不能从数据中学到额外的信息。而下面的算法,则旨在解决这个问题。

Adadelta 法

Adadelta 法 [6] 是 Adagrad 法的一个延伸,它旨在解决它学习率不断单调下降的问题。相比计算之前所有梯度值的平方和,Adadelta 法仅计算在一个大小为 的时间区间内梯度值的累积和。

但该方法并不会存储之前 个梯度的平方值,而是将梯度值累积值按如下的方式递归地定义:它被定义为关于过去梯度值的衰减均值(decade average),当前时间的梯度均值是基于过去梯度均值和当前梯度值平方的加权平均,其中是类似上述动量项的权值。

  

与动量项的设定类似,我们设定 为以 0.9 左右的值。为明确起见,我们将我们的 SGD 更新规则写为关于参数更新向量 的形式:

  

wzatv:【j2开奖】技术 | 深度解读最流行的优化算法:梯度下降

由此,我们刚刚在 Adagrad 法中推导的的参数更新规则的向量表示,变为如下形式:

  

我们现在将其中的对角矩阵 用上述定义的基于过去梯度平方和的衰减均值 替换:

  

因为分母表达式的形式与梯度值的方均根(root mean squared,RMS)形式类似,因而我们使用相应的简写来替换:

  

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容