我是靠谱客的博主 细心鞋子,这篇文章主要介绍详解RNN的数据流程图以及梯度消失和爆炸的原因,现在分享给大家,希望可以做个参考。

做个整理和记录
注:不管是LSTM还是RNN,其内部都是通过矩阵运算来实现的 里面都是运算

数据流程图来源知乎

结合一个操作实例说明。如果我有一条长文本,我给句子事先分割好句子,并且进行tokenize, dictionarize,接着再由look up table 查找到embedding,将token由embedding表示,再对应到上图的输入。流程如下
step1, raw text:
接触LSTM模型不久,简单看了一些相关的论文,还没有动手实现过。然而至今仍然想不通LSTM神经网络究竟是怎么工作的。……
step2, tokenize (中文得分词):
sentence1: 接触 LSTM 模型 不久 ,简单 看了 一些 相关的 论文 , 还 没有 动手 实现过 。 sentence2: 然而 至今 仍然 想不通 LSTM 神经网络 究竟是 怎么 工作的。 ……
step3, 做映射:
sentence1: 1 34 21 98 10 23 9 23
sentence2: 17 12 21 12 8 10 13 79 31 44 9 23 ……
step4, padding到相同长度:
sentence1: 1 34 21 98 10 23 9 23 0 0 0 0 0
sentence2: 17 12 21 12 8 10 13 79 31 44 9 23 0 ……
step5, embedding: 每一列代表一个词向量,词向量维度自行确定;矩阵列数固定为time_step length。
sentence1:
在这里插入图片描述

sentence2: ……
step6, 喂进RNN:
假设 一个RNN的time_step 确定为 L ,则padded sentence length(step5中矩阵列数)固定为L 。一次RNNs的run只处理一条sentence。每个sentence的每个token的embedding对应了每个时序 的输入 。一次RNNs的run,连续地将整个sentence处理完。
step7, 获取结果:
看图,每个time_step都是可以输出当前时序 的隐状态 ;但整体RNN的输出 是在最后一个time_step 时获取,才是完整的最终结果。
step8, 利用output:我们可以将output根据分类任务或回归拟合任务的不同,分别进一步处理。比如,传给cross_entropy&softmax进行分类……或者获取每个time_step对应的隐状态 ,做seq2seq 网络……或者搞创新……

梯度消失爆炸

将上图进行简化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

最后

以上就是细心鞋子最近收集整理的关于详解RNN的数据流程图以及梯度消失和爆炸的原因的全部内容,更多相关详解RNN内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部