分享

它的梯度去哪儿了?

 太极混元天尊 2018-05-07

题图:aaron-burden-160110-unsplash

斯坦福 NLP 第 9 课介绍了 RNN 语言模型的一个问题:梯度消失现象。那么什么是梯度消失? 为什么 RNN 会出现梯度消失呢? 梯度消失问题需要引起重视吗?下面依次回答这 3 个问题,希望能给读者带来一定启发。


首先介绍什么是梯度消失。下图是 RNN 模型的网络结构图,输入层是单词的词向量,隐含层中,节点间的权重都为 Wh ,且当前节点的输入We*Xi 加上前一个节点的输出 f(We*Xi-1 + Wh*hi-1) 作为下一个节点的输入。


设隐含层含有6000个神经元节点,神经元的个数与梯度的大小总和的关系如下图所示,从图中可以看出神经元的个数大约在0~400时,梯度大小的总和随着神经元个数增加而变大,但是随着个数继续增大,梯度总和的变化趋势变得平缓,最后几乎看不出变化,这种现象就是梯度消失

为什么会出现梯度消失呢?这要从 RNN 的梯度计算公式说起,应用链式法则,符号含义对应文章第一幅图,求和公式中带框的偏导是关键,

仍然是链式法则求:

连乘有什么问题呢?没错,在 RNN 这种网络结构下,连乘会变得很小或很大,也就是说,梯度会消失或暴增。


梯度可以更深刻的理解为过去对将来的影响。当上面公式的梯度变为 0 时,我们不能区分:是否时步k 和 时步 t 间的数据真的就是没有关系的;或者,当前的权重参数还是有误的。如果属于后者,训练因为提前终止,而注定导致模型的预测精度不好,因此,梯度消失应该引起足够重视。




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多