RNN及LSTM介绍说明文档.docxVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RNN 循环神经网络(Recurrent Neural Networks,RNNs)已经在众多 \t "/heyongluoyao8/article/details/_blank" \o "自然语言理解和处理知识库" 自然语言处理(Natural Language Processing, NLP)中取得了巨大成功以及广泛应用,RNNs主要用来处理序列数据。 RNNs包含输入单元(Input units),输入集标记为; 输出单元(Output units)的输出集则被标记为; 隐藏单元(Hidden units),将其输出集标记为。 在图中:有一条单向流动的信息流是从输入单元到达隐藏单元的,与此同时另一条单向流动的信息流从隐藏单元到达输出单元。在某些情况下,RNNs会打破后者的限制,引导信息从输出单元返回隐藏单元,这些被称为“Back Projections”,并且隐藏层的输入还包括上一隐藏层的状态,即隐藏层内的节点可以自连也可以互连。? 上图将循环神经网络进行展开成一个全神经网络。例如,对一个包含5个单词的语句,那么展开的网络便是一个五层的神经网络,每一层代表一个单词。对于该网络的计算过程如下: 表示第t,t=1,2,3...步(step)的输入。比如为第二个词的one-hot向量(根据上图,为第一个词);? 为隐藏层的第t步的状态,它是网络的记忆单元。?根据当前输入层的输出与上一步隐藏层的状态进行计算。,其中f一般是非线性的激活函数,如 \t "/heyongluoyao8/article/details/_blank" tanh或 \t "/heyongluoyao8/article/details/_blank" ReLU,在计算时,即第一个单词的隐藏层状态,需要用到,但是其并不存在,在实现中一般置为0向量; 是第t步的输出,如下个单词的向量表示, 需要注意的是: 你可以认为隐藏层状态是网络的记忆单元。?包含了前面所有步的隐藏层状态。而输出层的输出只与当前步的有关,在实践中,为了降低网络的复杂度,往往只包含前面若干步而不是所有步的隐藏层状态; 在RNNs中,每输入一步,每一层各自都共享参数U、V、W。其反应了RNNs中的每一步都在做相同的事,只是输入不同,因此大大地降低了网络中需要学习的参数。 上图中每一步都会有输出,但不是必须的。比如我们需要预测一条语句所表达的情绪,我们仅仅需要关心最后一个单词输入后的输出,而不需要知道每个单词输入后的输出,同理每步都需要输入也不是必须的。RNNs的关键之处在于隐藏层,隐藏层能够捕捉序列的信息。 这个网络在t时刻接收到输入之后,隐藏层的值是,输出值是。关键一点是,的值不仅仅取决于,还取决于。我们可以用下面的公式来表示循环神经网络的计算方法: (式1) (1) (式2) (2) 式1是输出层的计算公式,输出层是一个全连接层,也就是它的每个节点都和隐藏层的每个节点相连。V是输出层的权重矩阵,g是激活函数。式2是隐藏层的计算公式,它是循环层。U是输入x的权重矩阵,W是上一次的值作为这一次的输入的权重矩阵,f是激活函数。 从上面的公式我们可以看出,循环层和全连接层的区别就是循环层多了一个权重矩阵 W。 如果反复把式2带入到式1,我们将得到: (3) (4) (5) (6) (7) 从上面可以看出,循环神经网络的输出值,是受前面历次输入值影响的,这就是为什么循环神经网络可以往前看任意多个输入值的原因。 训练算法 如果将RNNs进行网络展开,那么参数W、U、V是共享的,并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。比如,在t=4时,我们还需要向后传递三步,后面的三步都需要加上各种的梯度。该学习算法称为Backpropagation Through Time (BPTT)。BPTT算法是针对循环层的训练算法,它的基本原理和BP算法是一样的,也包含同样的三个步骤: 前向计算每个神经元的输出值; 反向计算每个神经元的误差项值,它是误差函数E对神经元j的加权输入的偏导数; 计算每个权重的梯度。 最后再用随机梯度下降算法更新权重。 需要意识到的是,在vanilla RNNs训练中, \t "/heyongluoyao8/article/details/_blank" BPTT无法解决长时依赖问题(即当前的输出与前面很长的一段序列有关,一般超过十步就

文档评论(0)

book_zhj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档