zoukankan      html  css  js  c++  java
  • Stanford NLP 第五课: RNN Vanishing Gradient Problems Details

    Recurrent Neural Network, 适用于序列建模。举一个粒子:

    很容易就知道短线上应该填 John。 如何建立一个模型来让机器学习这件事情呢? 如果用全连接网络, 那么输入就是短线前面的所有单词(首先将每一个单词向量化, 然后将所有单词concatenate在一起,形成一个向量, 作为网络的输入。 这样做的问题是参数量过大。 如果用卷积网络来做, 将所有的词向量拼接成一个矩阵, 作为网络的输入,这样做效果也不错, 但是相比于RNN, CNN在发现序列之间的关系可能要难一点。 现在就来揭开RNN神秘的面纱。

     左边是RNN环图, 右边是RNN的展开图。RNN的计算公式如下:

    可以看到RNN是个串行的结构, t时刻的计算依赖于t-1时刻的计算。需要注意的是, 不同的时刻之间共享所有权值, 包括Wh, We, U, b1, b2. 你要问我为什么不同的时刻之间共享权值 ?

    理由一:如果不共享权值, RNN的参数量会很大。序列长度越长, 参数量越多。共享权值起到了正则化的作用。

    理由二:共享权值可以看成是一种先验知识。科学家认为, 在处理每一个时刻的输入时, 用相同的权值就可以了。

    理由三:共享权值使得RNN可以灵活的处理任意长度的输入序列。以不变应万变。

    RNN的损失函数:

    为什么RNN存在梯度消失的问题 ?首先来推导RNN的反向传播公式。

     

     

    没有看懂? 没关系, 多看几遍, 在纸上推导几遍就懂了, 这个地方不难, 只要具备大学本科线性代数知识即可。

    下面是一个简单一点的例子, 说明RNN的梯度问题。

    注意, 以上全是标量。因为RNN共享权值, 会出现w的高次幂。

    梯度消失会引起什么问题?

     

      如图中画出的带箭头的红线所示, x(4)与x(1)之间的依赖关系通过

     

    来调整。很明显, 间隔的比较远的时候, 他们之间的依赖关系就比较难以调整。

  • 相关阅读:
    November 13th 2016 Week 47th Sunday The 1st Day
    November 12th 2016 Week 46th Saturday
    November 11th 2016 Week 46th Friday
    November 10th 2016 Week 46th Thursday
    November 9th 2016 Week 46th Wednesday
    November 8th 2016 Week 46th Tuesday
    windows 7文件共享方法
    Win7无线网络共享设置方法
    常量指针和指针常量
    如何查找局域网的外网ip
  • 原文地址:https://www.cnblogs.com/yangkang77/p/9140728.html
Copyright © 2011-2022 走看看