葫芦书笔记----循环神经网络(RNN)
循环神经网络
循环神经网络(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)相关推荐
- 深度学习笔记——循环神经网络RNN/LSTM
原文来自知乎专栏NLP进阶之路,作者韦伟. 以下文章是摘录了原文部分内容的学习笔记,侵删. 循环神经网络(Rerrent Neural Network) RNN是神经网络的一种,RNN对具有序列特性的 ...
- 葫芦书笔记----CNN和RNN
卷积神经网络 卷积基本知识 卷积与全理解层的区别 速记:局部连接:权值共享:输入/输出数据结构化 详细:局部连接:卷积核尺寸远小于输入特征图的尺寸. 权值共享:卷积核的滑动窗机制,使得输出层上不同未知 ...
- NLP学习笔记-循环神经网络RNN、情感分类、LSTM(二)
循环神经网络和自然语言处理介绍 1. 文本的tokenization 1.1 概念和工具的介绍 tokenization就是通常所说的分词,分出的每一个词语我们把它称为token. 常见的分词工具很多 ...
- 花书+吴恩达深度学习(十五)序列模型之循环神经网络 RNN
目录 0. 前言 1. RNN 计算图 2. RNN 前向传播 3. RNN 反向传播 4. 导师驱动过程(teacher forcing) 5. 不同序列长度的 RNN 如果这篇文章对你有一点小小的 ...
- 【从线性回归到 卷积神经网络CNN 循环神经网络RNN Pytorch 学习笔记 目录整合 源码解读 B站刘二大人 绪论(0/10)】
深度学习 Pytorch 学习笔记 目录整合 数学推导与源码详解 B站刘二大人 目录传送门: 线性模型 Linear-Model 数学原理分析以及源码详解 深度学习 Pytorch笔记 B站刘二大人( ...
- 【NLP】毕设学习笔记(八)“前馈 + 反馈” = 循环神经网络RNN
前馈神经网络和循环神经网络分别适合处理什么样的任务? 如果分类任务仅仅是进行判断和识别,例如判断照片上的人的性别,识别图片上是否有小狗图案,那么对输入的数据仅仅需要做特征寻找的工作即可,找到满足该任务 ...
- CS224N笔记(四) Lecture 7:循环神经网络RNN的进阶——LSTM与GRU
本文将介绍两种比RNN更好地应对梯度消失问题的模型结构--LSTM和GRU,文章以CS224N的课件和材料为基础,重点分析他们的结构特点和梯度计算,在梯度消失的解决策略上进行了深入探究,并进一步分析它 ...
- 循环神经网络RNN、LSTM、GRU实现股票预测
Tensorflow--循环神经网络RNN 循环核 TensorFlow描述循环核 循环神经网络 TensorFlow描述循环神经网络 循环计算过程 输入一个字母,预测下一个字母 输入四个连续字母,预 ...
- 深度学习 -- TensorFlow(9)循环神经网络RNN
目录 一.循环神经网络RNN介绍 二.Elman network && Jordan network 三.RNN的多种架构 1.一对一 2.多对一 3.多对多 4. 一对多 5.Seq ...
最新文章
- Python在计算内存时值得注意的几个问题
- Li‘s 影像组学视频学习笔记(28)-ROI/病灶体积的计算、Li‘s have a solution and plan.
- java 去掉 时期中的图片,去除图片浅色背景(Java 实现)
- Centos 6 安装 配置 oracle11g R2
- renpy 如何执行2个action_如何解决工作中遇到问题丨2个思考方式、2个技巧和1个解决系统...
- 使用Spring进行不同开发所需要用到的包
- MySQL计划任务3(转)
- Linux系统文件编程(1)
- oracle plsql异常,【Oracle篇】异常处理和PLSQL
- 计算机试讲教案模板范文,试讲教案模板1.doc
- Linux下MongoDB安装和配置详解
- Command(命令)
- js高级学习笔记(b站尚硅谷)-15-闭包的剩余知识
- java .jpackage_jpackage安装Java原生本机应用的新工具
- ADI收发器新品-ADRV9002特性与对比(AD9361/71/ADRV9009)
- 拟合函数、曲线拟合有这个网站足够了
- 中国音频放大器市场现状研究分析与发展前景分析报告
- ftp工具绿色版,带你了解ftp工具绿色版是什么
- 计算机进行加法运算的原理,计算机系统原理(九) 二进制整数的加法运算和减法运算...
- fluent中网格检查
热门文章
- 利用Xposed框架修改微信运动计步
- 空中飞猴 题解 暴力
- 高德地图的画图表,加文字,画线,测距
- Python 内建函数 - complex([real[, imag]])
- zabbix_agentd_window端运行报错cannot connect to Service Manager: [0x00000005]
- Word从指定页开始插入页码
- CAN 错误帧和原理
- alios下载_AliOS Studio
- 育儿-《养育男孩》书中的精髓:父母如何理解男孩的每个成长阶段,更好地培养男孩?
- 写给女朋友的java_Java会说情话的女朋友