RNN

架构图

话不多说,直接上网络架构

PS:你如果斜着看就和你通常看到的RNN网络架构是一样的了,不过这不影响什么。

剖析

要点如下:

  • 输入:依次输入(x1,x2,…xt)
  • 参数:U,V,W,h0。
  • 输出:依次输出(o1,o2,…ot)

问题:

  1. 能不能同时输入而不是依次输入(x1,x2,…xt)?可以,但是没有必要,因为根据架构图RNN会先处理x1,得到h1,有了h1才能处理x2。
  2. 能不能同时输出而不是依次输出(o1,o2,…ot)?可以,若现在处于训练阶段则此方式可以认为是一个批量更新参数U,V,W,但是这种方式你需要保存(h1,h2,…ht),然后激活后乘以V得到(o1,o2,…ot),同时输出。若现在处于测试阶段,则只需要依次保存h1,h2,…ht,然后乘以V即可。
  3. 架构图中所有的U,V,W是一样的吗?是的,权值共享。
  4. h0如何设置?随机初始化即可,同样是参数,要进行训练。

数据流

三步要牢记。

h1=Ux1+Wh0h_1=Ux_1+Wh_0h1​=Ux1​+Wh0​
h1′=f(h1)h_1^{'}=f(h_1)h1′​=f(h1​),其中fff是激活函数
o1=Vh1′o_1=Vh_1^{'}o1​=Vh1′​

上面只列举了前3步计算,然后h1h_1h1​作为“历史信息”继续传递下去和W相乘,可以看网络架构图。

实际应用

背景:基于RNN的语言模型,我们希望这个网络做到:

输入x1=bush的时候,o1输出held。即这个网络可以根据以前的历史信息,猜测下一个词我想要输入的是什么,这不就是你手机的输入法吗?同理,输入x4=talk,希望输出o4=with。

已知:图中输入的那些向量,比如向量(0.2,0.2)代表Bush。
初始化:
U,V,W。


PS:这里的V有个小技巧,可以用输入的那6个向量来构成,那么也是2*6的矩阵。不过我这里随机的。

h0

正向传播

然后套公式( 此处省略)。
h1′=f(h1)h_1^{'}=f(h_1)h1′​=f(h1​)
o1=Vh1′o_1=Vh_1^{'}o1​=Vh1′​

可以得到(6,1)的向量o1,假设结果是下面这样(我懒得算)

这不正好对应着我们的6个词吗?
发现第二个维度(对应held)是所有6个数里面最大的,那么说明RNN成功预测了held。
但是如果不是最大的,假设是这样

那么RNN认为Bush后面应该接Bush,预测错误,那么应该使用惩罚函数梯度回传,调整参数U,V,W,h0。因为预测错误,罪魁祸首就是U,V,W,h0。

读完了x1,接着使用x2和h1进入下一轮训练。

优点

RNN的优秀思想是:

  1. 可以使得网络的输入神经元可以无限多,试想FNN前馈神经网络就不行,因为输入层的神经元个数是固定的。
  2. 后面的输出需要依赖ht−1h_{t-1}ht−1​,这个ht−1h_{t-1}ht−1​包含了历史信息,因为得到ht−1h_{t-1}ht−1​需要h0,h1,....h_0,h_1,....h0​,h1​,....。而历史信息在很多问题中是非常重要的。

RNN或基于RNN的网络是处理含时间序列和有上下文问题的小能手。

循环神经网络(recurrent neural network)(RNN)相关推荐

  1. 什么是RNN?一文看懂强大的循环神经网络(Recurrent Neural Network, RNN)

    循环神经网络(Recurrent Neural Network,RNN)是一类用于处理序列数据的神经网络.所谓序列数据,即前面的输入和后面的输入是有关系的,如一个句子,或者视频帧.就像卷积网络是专门用 ...

  2. 循环神经网络(Recurrent Neural Network, RNN)和递归神经网络(Recursive Neural Network, RNN),你搞清楚了吗?

    一,循环神经网络: 原文:https://zybuluo.com/hanbingtao/note/541458 语言模型 RNN是在自然语言处理领域中最先被用起来的,比如,RNN可以为语言模型来建模. ...

  3. 循环神经网络(Recurrent Neural Network)详解

    循环神经网络(RNNs)是神经网络中一个大家族,它们主要用于文本.信号等序列相关的数据.常见的循环神经网络有长短期记忆网络(LSTM).门控循环单元网络(GRU)等,而这些循环神经网络都是在最早的一种 ...

  4. 循环神经网络(Recurrent Neural Network, RNN)

    基本概念 一般的神经网络(BP以及CNN)只对预先确定的大小起作用:它们接受固定大小的输入并产生固定大小的输出.它们的输出都是只考虑前一个输入的影响而不考虑其它时刻输入的影响, 比如简单的猫,狗,手写 ...

  5. 深度学习笔记(四)——循环神经网络(Recurrent Neural Network, RNN)

    目录 一.RNN简介 (一).简介 (二).RNN处理任务示例--以NER为例 二.模型提出 (一).基本RNN结构 (二).RNN展开结构 三.RNN的结构变化 (一).N to N结构RNN模型 ...

  6. 深度学习之递归神经网络(Recurrent Neural Network,RNN)

    为什么有bp神经网络.CNN.还需要RNN? BP神经网络和CNN的输入输出都是互相独立的:但是实际应用中有些场景输出内容和之前的内 容是有关联的. RNN引入"记忆"的概念:递归 ...

  7. 递归神经网络(Recursive Neural Network, RNN)

    信息往往还存在着诸如树结构.图结构等更复杂的结构.这就需要用到递归神经网络 (Recursive Neural Network, RNN),巧合的是递归神经网络的缩写和循环神经网络一样,也是RNN,递 ...

  8. 2021李宏毅机器学习课程笔记——Recurrent Neural Network

    注:这个是笔者用于期末复习的一个简单笔记,因此难以做到全面详细,有疑问欢迎大家在评论区讨论 I. Basic Idea 首先引入一个例子,槽填充(Slot Filling)问题: Input: I w ...

  9. 【李宏毅机器学习笔记】 23、循环神经网络(Recurrent Neural Network,RNN)

    [李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...

最新文章

  1. OWA登录页面显示为英文而不是中文
  2. 简简单单实践ERD Commander2005破解Windows密码
  3. vc中出现stack overflow错误(VS设置默认栈大小)
  4. ASP.NET真假分页—真分页
  5. 【转】带你玩转Visual Studio——04.带你高效开发
  6. [建议]添加模板功能
  7. 机器学习—数据清洗总结
  8. ML/DL-复习笔记【一】- 数学基础(线性代数、概率论、数值分析)
  9. 拓端tecdat|在PYTHON中进行主题模型LDA分析
  10. ElasticJob
  11. 【016】随缘画-根据输入文字随机生成艺术画(带算法)
  12. 《数据密集型应用系统设计》笔记-8-流处理
  13. 征集华人操作系统项目列表
  14. xilinx FPGA IOB约束使用以及注意事项
  15. 118.网络安全渗透测试—[权限提升篇16]—[Windows MSF提权模块提权审计工具]
  16. CUDA安装和检测【全】(nvcc命令找不到的解决办法)
  17. windows程序设计相关思想
  18. Django+Vue开发生鲜电商平台之1.项目介绍
  19. LPL2020夏季常规赛7月22日RW vs ES,WE vs BLG前瞻预测
  20. 关于数字档案馆建设实践与思考

热门文章

  1. 读完这本书,我做了一个APP
  2. 基于jquery,bootstrap数据验证插件bootstrapValidator 教程
  3. 手把手教你用Python玩转时序数据,从采样、预测到聚类
  4. 机器能否拥有像人类一样的意识?Science长文综述解读
  5. 常见医疗扫描图像处理步骤
  6. 又有3位顶级数学家加盟华为,都是菲尔兹奖得主
  7. 油管博主路透 3080Ti 参数、黄教主烤箱中拿出 DGX A100 预热发布会
  8. 人均6.5万!鹅厂又双叒叕给员工发股票了
  9. 追求知识而非光环——图灵奖得主的反内卷人生
  10. 「AI大牛」陶大程出任京东探索研究院院长!曾连续6年入选全球高被引科学家...