一、双向循环神经网络BRNN

采用BRNN原因:

双向RNN,即可以从过去的时间点获取记忆,又可以从未来的时间点获取信息。为什么要获取未来的信息呢?

判断下面句子中Teddy是否是人名,如果只从前面两个词是无法得知Teddy是否是人名,如果能有后面的信息就很好判断了,这就需要用的双向循环神经网络。

至于网络单元到底是标准的RNN还是GRU或者是LSTM是没有关系的,都可以使用。

(2)双向循环神经网络(BRNN)的基本思想是提出每一个训练序列向前和向后分别是两个循环神经网络(RNN),而且这两个都连接着一个输出层。这个结构提供给输出层输入序列中每一个点的完整的过去和未来的上下文信息。下图展示的是一个沿着时间展开的双向循环神经网络。六个独特的权值在每一个时步被重复的利用,六个权值分别对应:输入到向前和向后隐含层(w1, w3),隐含层到隐含层自己(w2, w5),向前和向后隐含层到输出层(w4, w6)。值得注意的是:向前和向后隐含层之间没有信息流,这保证了展开图是非循环的。每一个输出都是综合考虑两个方向获得的结果再输出

(4)对于整个双向循环神经网络(BRNN)的计算过程如下:

向前推算(Forward pass):

对于双向循环神经网络(BRNN)的隐含层,向前推算跟单向的循环神经网络(RNN)一样,除了输入序列对于两个隐含层是相反方向的,输出层直到两个隐含层处理完所有的全部输入序列才更新:

向后推算(Backward pass):

双向循环神经网络(BRNN)的向后推算与标准的循环神经网络(RNN)通过时间反向传播相似,除了所有的输出层δ项首先被计算,然后返回给两个不同方向的隐含层:

摘自https://blog.csdn.net/jojozhangju/article/details/51982254

二、深度循环神经网络

(1)前面提到的其是都只有RNN的一单元或者说RNN单元只有一层隐藏层,可以想象将多个RNN单元堆叠在一起,那就形成了深度循环神经网络(deep RNN)。深层循环神经网络如下图所示:

LSTM有一个缺点就是在使用时需要完整的数据序列,你才能预测任意位置。比如用来构建语音识别系统,需要人把话说完,才能进行处理。

最新文章

  1. 史上最全的maven的pom.xml文件详解
  2. HTML5 学习笔记(二)——HTML5新增属性与表单元素
  3. bzoj 2563: 阿狸和桃子的游戏
  4. java 静态方法和实例方法的区别(转)
  5. poj3692 最大点权独立集/最大独立集
  6. WebRTC的学习(二)
  7. 获取select当前选择的值和文本
  8. eclipse svn插件安装
  9. wapPush
  10. 关于css3中before与after用单冒号还是双冒号的疑虑
  11. Xamarin.Android AlertDialog中的EditText打上去字为什么不显示?也没有光标闪烁
  12. 本篇将记录python开发过程中常见问题
  13. AI阅粒app
  14. servlet 会话技术
  15. please select android sdk
  16. Android Exception Type "share_dialog_title" is not translated in en, zh-rTW strings
  17. Zookeeper笔记之quota
  18. vqmod for opencart插件制作进阶与技巧
  19. HDU1072 Nightmare(BFS) 2016-07-24 14:02 40人阅读 评论(0) 收藏
  20. Java Swing实战(二)下拉菜单组件JComboBox及其事件监听

热门文章

  1. [bzoj2588][Spoj10628]Count on a tree_主席树
  2. [bzoj2600][Ioi2011]ricehub_二分
  3. 洛谷 P3004 [USACO10DEC]宝箱Treasure Chest
  4. 洛谷 P2979 [USACO10JAN]奶酪塔Cheese Towers
  5. 洛谷 P2896 [USACO08FEB]一起吃饭Eating Together
  6. Mysql查询缓存研究
  7. Android学习心得(13) --- Android代码混淆(1)
  8. [React] Update State Based on Props using the Lifecycle Hook getDerivedStateFromProps in React16.3
  9. ftk学习记(label篇)
  10. python中获取当前路径【os模块】