本节将介绍循环神经⽹络。它并⾮刚性地记忆所有固定⻓度的序列,而是通过隐藏状态来储存之前时间步的信息。⾸先我们回忆⼀下前⾯介绍过的多层感知机,然后描述如何添加隐藏状态来将它变成循环神经⽹络。

一、不含隐藏状态的神经网络

先考虑一个单层的多层感知机:

复习一遍隐藏层的输出、输出层的输出。
隐藏层的输出:
H=ϕ(XWxh+bh)H=\phi (XW_{xh}+b_h)H=ϕ(XWxh​+bh​)

其中,WxhW_{xh}Wxh​表示输入层xxx和隐藏层hhh之间的权重参数,bhb_hbh​为隐藏层h的偏差参数。
输出层的输出:
O=HWhq+bqO=HW_{hq} + b_qO=HWhq​+bq​

其中qqq表示输出个数(例如分类问题的类别数)

可以看到,隐藏层HHH的输出只由输入xxx得到。

二、含隐藏状态的循环神经网络

首先说明:隐藏状态是一个变量——隐藏变量的别称。

前面章节说到,语言模型的一段文本,可以看做一段时间序列。这段文本中的每个词为wtw_twt​,其中ttt称为时间步。(相当于在原有的最基本的神经网络基础上增加了一个维度——时间维度)。下面我们就考虑这种数据存在时间相关性的情况。

假设Xt∈Rn×dX_t \in R^{n × d}Xt​∈Rn×d是序列中时间步ttt的小批量输入,Ht∈Rn×hH_t \in R^{n × h}Ht​∈Rn×h是该时间步的隐藏层变量(ttt表示时间步。nnn表示小批量样本数。ddd表示输入个数,及特征个数)。由于加入了时间的维度,所以每个时间步都会有一个HHH:H1,H2,H3,...,Ht−1,Ht,Ht+1...,HTH_1,H_2,H_3,...,H_{t-1},H_t,H_{t+1}...,H_TH1​,H2​,H3​,...,Ht−1​,Ht​,Ht+1​...,HT​。

循环神经网络的做法与多层感知机的不同之处在于:隐藏层HtH_tHt​的输出由当前时间步的输入XtX_tXt​和上一时间步的隐藏层变量Ht−1H_{t-1}Ht−1​得到。具体公式如下:
Ht=ϕ(XtWxh+Ht−1Whh+bh)H_t=\phi (X_tW_{xh} + H_{t-1}W_{hh}+b_h)Ht​=ϕ(Xt​Wxh​+Ht−1​Whh​+bh​)

与多层感知机的不同,除了输入输出增加了代表当前时间步的下标ttt之外,还增加了一项Ht−1WhhH_{t-1}W_{hh}Ht−1​Whh​。(通俗地理解,就是:文本可以看成我们平时说的话。而我们平时说话都是有逻辑的,每个字前前后后都是相关联的,反映到这个公式上,就是隐藏变量在不同时间步上的相关性。)

该公式的图示如下:

三、其他说明

  1. 上述隐藏变量的计算公式表明:当前的隐藏变量捕捉了截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样
  2. 所有的时间步都使用相同的模型参数
  3. XtWxh+Ht−1WhhX_tW_{xh} + H_{t-1}W_{hh}Xt​Wxh​+Ht−1​Whh​等价于XtX_tXt​与Ht−tH_{t-t}Ht−t​连接后(concat)的矩阵乘以WxhW_{xh}Wxh​与WhhW_{hh}Whh​连接后的矩阵

循环神经网络:循环神经网络相关推荐

  1. 循环神经网络 递归神经网络_如何用递归神经网络预测空气污染

    循环神经网络 递归神经网络 After the citizen science project of Curieuze Neuzen, I wanted to learn more about air ...

  2. 循环神经网络 递归神经网络_了解递归神经网络中的注意力

    循环神经网络 递归神经网络 I recently started a new newsletter focus on AI education. TheSequence is a no-BS( mea ...

  3. Tensorflow神经网络框架 小例子 三层神经网络 卷积神经网络 循环神经网络 神经网络可视化

    Tensorflow神经网络框架 以前我们讲了神经网络基础,但是如果从头开始实现,那将是一个庞大且费时的工作,所以我们选择一条捷径---神经网络框架.我理解的神经网络框架就相当于一个工具包.就比如我们 ...

  4. 图深度学习——卷积神经网络循环神经网络自编码器

    卷积神经网络 常用做图像分类任务.举例:识别图中的兔子 前馈神经网络做兔子图像识别 图像可以通过矩阵表示,然后将矩阵转换成向量,就可以作为前馈神经网络的输入,但是 1.参数量就非常大,需要大量数据进行 ...

  5. 循环神经网络 - 卷积神经网络

    循环神经网络 - 卷积神经网络 传统的机器学习算法非常依赖于人工提取的特征,使得基于传统机器学习的图像识别.语音识别以及自然语言处理等问题存在特征提取的瓶颈. 基于全连接神经网络的方法存在参数太多.无 ...

  6. 循环神经网络 递归神经网络_CNTK-递归神经网络

    循环神经网络 递归神经网络 CNTK-递归神经网络 (CNTK - Recurrent Neural Network) Now, let us understand how to construct ...

  7. Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性...

    全文链接:http://tecdat.cn/?p=26562 该项目包括: 自 2000 年 1 月以来的股票价格数据.我们使用的是 Microsoft 股票. 将时间序列数据转换为分类问题. 使用 ...

  8. 深度学习入门(五十六)循环神经网络——循环神经网络RNN

    深度学习入门(五十六)循环神经网络--循环神经网络RNN 前言 循环神经网络--循环神经网络RNN 课件 潜变量自回归模型 循环神经网络 使用循环神经网络的语言模型 困惑度(perplexity) 梯 ...

  9. 神经网络 深度神经网络,深度神经网络训练

    有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN) .递归神经网络(RNN).深信度网络(DBN) .深度自动编码器(AutoEncoder) 和生成对抗网络(GAN ...

  10. bp神经网络和神经网络,bp神经网络是什么网络

    神经网络BP模型 一.BP模型概述误差逆传播(Error Back-Propagation)神经网络模型简称为BP(Back-Propagation)网络模型. Pall Werbas博士于1974年 ...

最新文章

  1. php 读取php.ini,php7 读取php.ini[4]
  2. 奇妙的二叉树:Huffman的贡献
  3. CSS 文字处理总结
  4. Ext.DomHelper类的使用示例(内容操作)
  5. JavaScript栈的实现
  6. 集合、深浅拷贝、文件操作(读、写、追加)函数初识(参数)
  7. 【Excel】统计不重复数据的个数,设置单元格不允许出现重复数据
  8. svn从本地更新了资源库的资源后删除了某个文件夹无法恢复(已解决)
  9. for /r命令实现全盘搜索指定文件
  10. 用python写名字
  11. 闲聊libhybris
  12. 针式PKM与众不同的地方
  13. keil5怎么添加stc芯片库
  14. 百度网盘永久分享链接-注册电气工程师(注电)历年考试真题PDF, Word版资料(含答案), 相关视频资料
  15. 3行代码,Python实现excel转换成任意格式的word文档
  16. 取消u盘写保护 u盘量产教程(无数尝试后的终极解决办法)
  17. ubuntu中文论坛
  18. vs下qt混合编译错误:MOC问题
  19. WPS表格恢复到指定日期版本(图片详解)
  20. QML ComboBox 图片加文字

热门文章

  1. 架构君公众号推荐 第一期
  2. 有人脑的计算机文章翻译,2016专四作文范文:机器翻译与人脑翻译
  3. linux 添加隐藏用户登录,科学网—CentOS 7 在登录界面用户列表中隐藏指定账号 - 乔磊的博文...
  4. Min-max theorem
  5. layui表格显示后台的多表的级联查询(多对多,多对一)带mybatis级联查询源码,已解决
  6. 【B站忠厚老实的老王】【学习记录】【基础】自动驾驶控制算法第四讲 坐标变换与横向误差微分方程
  7. lg分屏软件支持linux吗,LG显示器分屏软件-OnScreen Control(快速分屏)下载v2.95-领航下载站...
  8. OJB中的多表查询和更新
  9. 七大感触——You Only Live Once
  10. Reflector破译