循环神经网络

循环神经网络(RNN)是用来建模序列化数据的一种主流深度学习模型。

##循环神经网络和卷积神经网络

速记:循环圣经网络可以很好地处理文本数据变长并且有序的输入序列

详细:RNN可以将前面阅读到的有用信息编码到状态变量中去,从而拥有了一定的记忆能力,可以更好地理解之后的文本。

RNN的前向传播公式
n e t t = U x t + W h t − 1 net_t=Ux_t+Wh_{t-1} nett​=Uxt​+Wht−1​

h t = f ( n e t t ) h_t=f(net_t) ht​=f(nett​)

y = g ( V h T ) y=g(Vh_T) y=g(VhT​)

其中,f和g为激活函数,U为输入层到隐藏层的权重矩阵,W为隐含层从上一时刻到下一时刻状态转移的权重矩阵。

循环神经网络的梯度消失问题

循环神经网络为什么会出现梯度消失或梯度爆炸?有哪些改进方案?

速记:使用BPTT(基于时间的反向传播)来求解时,纯铜的循环神经网络梯度可以表示成连城的形式,原因和普通神经网络相似。改进方法为LSTM,GRU等变种模型。

在循环神经网络中能否使用ReLU作为激活函数?

速记:可以,但是需要对矩阵的初值做一定限制,否则容易引发数值问题。

详细:为解释这个问题,先给出RNN的前向传播公式
n e t t = U x t + W h t − 1 net_t=Ux_t+Wh_{t-1} nett​=Uxt​+Wht−1​

h t = f ( n e t t ) h_t=f(net_t) ht​=f(nett​)

根据前向传播公式向前传递一层,可以得到
n e t t = U x t + W h t − 1 = U x t + W f ( U x t − 1 + W h t − 2 ) net_t=Ux_t+Wh_{t-1}=Ux_t+Wf(Ux_{t-1}+Wh_{t-2}) nett​=Uxt​+Wht−1​=Uxt​+Wf(Uxt−1​+Wht−2​)
如果采用ReLU替代公式中的激活函数 f f f,并且假设ReLU函数一直处于激活区域(即输入大于0),则有 f ( x ) = x , n e t t = U x t + W ( U x t − 1 + W h t − 2 ) f(x)=x,net_t=Ux_t+W(Ux_{t-1}+Wh_{t-2}) f(x)=x,nett​=Uxt​+W(Uxt−1​+Wht−2​),继续将其展开, n e t t net_t nett​的表达式中最终会包含t个W连乘。如果W不是单位矩阵,最终结果将会居于0或者无穷,依法严重的数值问题。即使采用了ReLU激活函数,只要W不是单位矩阵梯度还是会消失或者爆炸。

综上所述,当采用ReLU作为循环神经网络中隐含层的激活函数时,只有当W 的取值在单位矩阵附近时才能取得比较好的效果,因此需要将W初始化为单位矩 阵。实验证明,初始化W为单位矩阵并使用ReLU激活函数在一些应用中取得了与 长短期记忆模型相似的结果,并且学习速度比长短期记忆模型更快,是一个值得 尝试的小技巧。

##长短时记忆网络(LSTM)

LSTM是如何实现长短期记忆功能的?

速记:加入一个遗忘门和输入门以及输出门。输入门控制当前计算的新状态以多大程度更新到记忆单元中;以往门控制前一步记忆单元的信息有多大程度被遗忘掉;输出门控制当前的输出有多大程度上取决于当前的记忆单元。

LSTM里各模块分别使用什么激活函数,可以使用别的激活函数吗?

速记:在LSTM中,遗忘门、输入门和输出门都是用Sigmoid函数作为激活函数;在生成候选记忆时,使用双曲正切函数Tanh作为激活函数. 可以使用别的激活函数,最开始的时候用的就是sigmoid的变种。

##Seq2Seq 模型

在后面的文章里再具体写下去。

葫芦书笔记----循环神经网络(RNN)相关推荐

  1. 深度学习笔记——循环神经网络RNN/LSTM

    原文来自知乎专栏NLP进阶之路,作者韦伟. 以下文章是摘录了原文部分内容的学习笔记,侵删. 循环神经网络(Rerrent Neural Network) RNN是神经网络的一种,RNN对具有序列特性的 ...

  2. 葫芦书笔记----CNN和RNN

    卷积神经网络 卷积基本知识 卷积与全理解层的区别 速记:局部连接:权值共享:输入/输出数据结构化 详细:局部连接:卷积核尺寸远小于输入特征图的尺寸. 权值共享:卷积核的滑动窗机制,使得输出层上不同未知 ...

  3. NLP学习笔记-循环神经网络RNN、情感分类、LSTM(二)

    循环神经网络和自然语言处理介绍 1. 文本的tokenization 1.1 概念和工具的介绍 tokenization就是通常所说的分词,分出的每一个词语我们把它称为token. 常见的分词工具很多 ...

  4. 花书+吴恩达深度学习(十五)序列模型之循环神经网络 RNN

    目录 0. 前言 1. RNN 计算图 2. RNN 前向传播 3. RNN 反向传播 4. 导师驱动过程(teacher forcing) 5. 不同序列长度的 RNN 如果这篇文章对你有一点小小的 ...

  5. 【从线性回归到 卷积神经网络CNN 循环神经网络RNN Pytorch 学习笔记 目录整合 源码解读 B站刘二大人 绪论(0/10)】

    深度学习 Pytorch 学习笔记 目录整合 数学推导与源码详解 B站刘二大人 目录传送门: 线性模型 Linear-Model 数学原理分析以及源码详解 深度学习 Pytorch笔记 B站刘二大人( ...

  6. 【NLP】毕设学习笔记(八)“前馈 + 反馈” = 循环神经网络RNN

    前馈神经网络和循环神经网络分别适合处理什么样的任务? 如果分类任务仅仅是进行判断和识别,例如判断照片上的人的性别,识别图片上是否有小狗图案,那么对输入的数据仅仅需要做特征寻找的工作即可,找到满足该任务 ...

  7. CS224N笔记(四) Lecture 7:循环神经网络RNN的进阶——LSTM与GRU

    本文将介绍两种比RNN更好地应对梯度消失问题的模型结构--LSTM和GRU,文章以CS224N的课件和材料为基础,重点分析他们的结构特点和梯度计算,在梯度消失的解决策略上进行了深入探究,并进一步分析它 ...

  8. 循环神经网络RNN、LSTM、GRU实现股票预测

    Tensorflow--循环神经网络RNN 循环核 TensorFlow描述循环核 循环神经网络 TensorFlow描述循环神经网络 循环计算过程 输入一个字母,预测下一个字母 输入四个连续字母,预 ...

  9. 深度学习 -- TensorFlow(9)循环神经网络RNN

    目录 一.循环神经网络RNN介绍 二.Elman network && Jordan network 三.RNN的多种架构 1.一对一 2.多对一 3.多对多 4. 一对多 5.Seq ...

最新文章

  1. Python在计算内存时值得注意的几个问题
  2. Li‘s 影像组学视频学习笔记(28)-ROI/病灶体积的计算、Li‘s have a solution and plan.
  3. java 去掉 时期中的图片,去除图片浅色背景(Java 实现)
  4. Centos 6 安装 配置 oracle11g R2
  5. renpy 如何执行2个action_如何解决工作中遇到问题丨2个思考方式、2个技巧和1个解决系统...
  6. 使用Spring进行不同开发所需要用到的包
  7. MySQL计划任务3(转)
  8. Linux系统文件编程(1)
  9. oracle plsql异常,【Oracle篇】异常处理和PLSQL
  10. 计算机试讲教案模板范文,试讲教案模板1.doc
  11. Linux下MongoDB安装和配置详解
  12. Command(命令)
  13. js高级学习笔记(b站尚硅谷)-15-闭包的剩余知识
  14. java .jpackage_jpackage安装Java原生本机应用的新工具
  15. ADI收发器新品-ADRV9002特性与对比(AD9361/71/ADRV9009)
  16. 拟合函数、曲线拟合有这个网站足够了
  17. 中国音频放大器市场现状研究分析与发展前景分析报告
  18. ftp工具绿色版,带你了解ftp工具绿色版是什么
  19. 计算机进行加法运算的原理,计算机系统原理(九) 二进制整数的加法运算和减法运算...
  20. fluent中网格检查

热门文章

  1. 利用Xposed框架修改微信运动计步
  2. 空中飞猴 题解 暴力
  3. 高德地图的画图表,加文字,画线,测距
  4. Python 内建函数 - complex([real[, imag]])
  5. zabbix_agentd_window端运行报错cannot connect to Service Manager: [0x00000005]
  6. Word从指定页开始插入页码
  7. CAN 错误帧和原理
  8. alios下载_AliOS Studio
  9. 育儿-《养育男孩》书中的精髓:父母如何理解男孩的每个成长阶段,更好地培养男孩?
  10. 写给女朋友的java_Java会说情话的女朋友