传统的神经网络模型,隐藏层的节点之间是无连接的,如下图所示。

而循环神经网络隐藏层的节点之间有连接,主要用于对序列数据进行分类、预测等处理。有连接意味着需要接受信息,这种网络通常用来对序列数据进行处理。

隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出,即网络会对之前时刻的信息进行记忆,并应用于当前的输出计算中。RNN可以处理的序列结构有以下几种:

第一个多对多,例如词性标注,输入为一句话,输出为各个词对应的词性。

第二个为多对一,例如一段话的情感标注。

第三个多对多,为非同步的序列输入和输出,例如在机器翻译中一种语言翻译为另外一种语言进行输出。

第四个为一对多,例如输入为一张图片,生成并输出一段文字,这段文字用来描述图片的内容。

最基本的RNN结构如下图:

从左往右看隐藏层是三层,可以折叠表示,带圆的箭头表示隐藏层的自连接。

基本RNN的计算过程:

RNN的参数共享

在传统的神经网络中,每一层的参数是不共享的。而在RNN中,每一步都共享参数U,V,W,即在计算输出Ot+1时也会用到参数U,V,W,且这些参数的值和计算输出Ot时是相同的,即图中的三个U,三个V,三个W的值都是相同的。共享参数说明RNN每一步都在做相同的事,只不过是输入不同而已。因此大大降低了网络中需要学习的参数,从而提高效率。

最新文章

  1. 分享10条PHP性能优化的小技巧,帮助你更好的用PHP开发:
  2. Flume(1)使用入门
  3. Spring AOP 四大通知
  4. s:iterator间接实现跳出循环
  5. SQL基础篇---函数及其函数配套使用的关键字
  6. java中关于json传图片的方法
  7. Git客户单for Windows
  8. 《C和指针》章节后编程练习解答参考——6.3
  9. hihocoder 1077线段树
  10. python locals()和globals()
  11. C++模板杂谈
  12. MySQL 分区建索引
  13. Centos 7防火墙firewalld开放端口
  14. C# 文件拖放到此程序的操作
  15. awk词频统计功能
  16. .mht文件转换为html
  17. Tesseract-OCR 3.05 多过语言文字识别(运行程序+中英日韩语言包)
  18. 在pycharm中运行nose测试框架
  19. Activiti进阶(二)——部署流程资源的三种方式
  20. 中断线程详解(Interrupt)

热门文章

  1. 2019牛客暑期多校训练营(第九场)A.The power of Fibonacci
  2. SSD算法的实现
  3. 小程序内嵌H5页面判断微信及小程序环境
  4. Docker部署Flask应用
  5. 【JavaWeb项目】一个众筹网站的开发(三)第一个网页
  6. spring无法接收上传文件
  7. Halo(五)
  8. 每天一个Linux命令:rmdir(6)
  9. CDN技术之-介绍
  10. form表单submit事件