目录

  • 1 RNN基础
    • 1.1 what RNN?
    • 1.2 why RNN?
    • 1.3 how RNN?
      • 1.3.1 隐含到隐含
      • 1.3.2 输出到隐含
      • 1.3.3 标签到隐含(导师驱动)
  • 1.4 RNN的问题
  • 2 Bi-RNN
  • 3 gated RNN
    • 3.1 LSTM
    • 3.2 窥孔LSTM
    • 3.3 耦合LSTM
    • 3.4 GRU
  • 4 目前存在的问题
  • 参考

1 RNN基础

1.1 what RNN?

用于处理序列数据(可变长)的NN

1.2 why RNN?

在模型不同部分,共享参数
在几个时间步内,不需要分别学习权重
也能能泛化到不同长度的样本

为什么每个时间步用相同参数?
(1)减少参数数量
(2)实现可变长度
如果每步一个权重,不同长度的输入,权重的个数不一样,无法实现。
(3)泛化到新序列
如果每步一个权重,不能泛化到训练时没有见过的序列长度。

1.3 how RNN?

1.3.1 隐含到隐含


横向:时间轴
纵向:深度方向

1.3.2 输出到隐含

1.3.3 标签到隐含(导师驱动)

1.4 RNN的问题

(1)灾难性遗忘
记忆的时间长度有限

(2)梯度消失/爆炸
Jacobian矩阵
最大特征值<1:梯度呈指数级减小
最大特征值>1:梯度呈指数级增大

2 Bi-RNN

3 gated RNN

门控RNN

缓解RNN的两个问题,实现:
(1)长期记忆
(2)减缓梯度消失/爆炸

3.1 LSTM

3个门——遗忘门,输入门,输出门:

候选单元:

单元状态:长时记忆

隐藏状态:短时记忆

LSTM为什么用sigmoid和tanh两种激活?
这两类函数都是饱和的
sigmoid输出在0~1,可以实现门的开关
tanh输出在-1~1,数据中心化,且0附近的梯度比sigmoid大,收敛快

在LSTM中用tanh的直觉

LSTM为什么比RNN好?
LSTM有进有出,当前cell的信息c_tilda是通过inputgate控制后叠加的,而RNN是叠乘
因此,LSTM可以防止梯度消失和爆炸

在LSTM中加dropout:

3.2 窥孔LSTM

窥孔peehole:每个门接收单元状态的输入

3.3 耦合LSTM

耦合couple遗忘门、输入门

3.4 GRU

GRU和LSTM的区别?
(1)LSTM3个门,GRU两个门,LSTM有输出门,GRU没有
(2)所以,LSTM会把h包装一下传给下个单元,GRU直接将h传给下个单元

4 目前存在的问题

  1. 顺序计算抑制了并行化
  2. 没有对长期和短期依赖关系进行明确建模
  3. 位置之间的“距离”是线性的

参考

花书deep learning

https://ask.csdn.net/questions/699420

https://www.jianshu.com/p/9dc9f41f0b29

https://blog.csdn.net/u012223913/article/details/77724621

学习分享:RNN(持续更新)相关推荐

  1. 5G通信技术书籍分享(持续更新)

    5G通信技术书籍分享(持续更新) 1 5G-NR-in-Bullets 1st Edition 本书全面描述了 3GPP 规定的 5G 无线接入网.该内容面向任何希望学习基础知识或加深理解的人.内容以 ...

  2. 地信遥感专业(本科、研究生小白适用)的网站资源分享(持续更新)

    地信遥感专业(本科.研究生小白适用)的网站资源分享(持续更新) 本文章主要根据自己的学习,科研经历所写,只是冰山一角,希望对你有所帮助. 目录 微信公众号(知名院校或相关单位创建) 学术期刊 软件下载 ...

  3. NetworkX学习笔记【持续更新】

    NetworkX学习笔记[持续更新] 写在前面的话 学习资料 关于安装 写在前面的话 networkx是一个python包,用于创建.操作和研究复杂网络的结构.动态和功能.我最初是想找一找SDN路由算 ...

  4. CUDA学习笔记(持续更新——蜗速)

    CUDA学习笔记(持续更新--蜗速) 1.CUDA 程序实现流程如下 2.内存管理 3.核函数 4.全局数据访问唯一索引 5.设备管理 附录代码 1.CUDA 程序实现流程如下 将数据从CPU内存拷贝 ...

  5. Go语言开发学习笔记(持续更新中)

    Go语言开发学习笔记(持续更新中) 仅供自我学习 更好的文档请选择下方 https://studygolang.com/pkgdoc https://www.topgoer.com/go%E5%9F% ...

  6. 微服务基础知识点学习笔记(持续更新)

    微服务基础知识点学习笔记(持续更新) Conrtoller层 整体包括:HTTP协议,JavaWeb三大组件(filter.servlet.listener).SpringMVC(SpringMVC的 ...

  7. 在线影视网站分享(持续更新)

    在线影视网站分享(持续更新) 简影影视网 https://tv.syrme.top/ 奈斯TV https://www.naisitv.com/ 555电影网 https://www.555dy.co ...

  8. Android 学习记录(持续更新)

    Android 学习记录(持续更新) 1.AndroidManifest.xml 详解: http://www.jb51.net/article/73731.htm (AndroidManifest. ...

  9. NumPy个人学习笔记【持续更新】

    NumPy个人学习笔记[持续更新] 来源:快速入门教程 - NumPy中文文档 目录 基础知识 数组的创建 打印数组 基本操作 通用函数 索引.切片和迭代 形状操作 更改数组的形状 将不同数组堆叠在一 ...

  10. DDD学习资料(持续更新)

    文章目录 DDD学习资料(持续更新) DDD图书 DDD概念 DDD代码示例 架构 Bounded Context 工具 Event Storming Event Storming图例 Event S ...

最新文章

  1. dropout层_DNN,CNN和RNN的12种主要dropout方法的数学和视觉解释
  2. python开发学习笔记之六(面向对象)
  3. ftp+linux+使用webdav,群晖-win/mac/nfs ftp tftp webdav文件服务的概念及设置
  4. C#LeetCode刷题之#599-两个列表的最小索引总和​​​​​​​​​​​​​​(Minimum Index Sum of Two Lists)
  5. openpyxl 列 插入_python3对excel读写openpyxl
  6. 高性能HTTP加速器Varnish(安装配置篇)
  7. java 给数组添加删除数_Java实现数组的添加、删除、查找(基础型)
  8. [MySQL Bug]DDL操作导致备库复制中断
  9. NLP学习—7.CNN与TextCNN
  10. JDBC:深入理解PreparedStatement和Statement
  11. 51单片机C语言程序100例
  12. R语言实现随机分组(按照学号或者是姓名随机分组)
  13. Wireshark、Sniffer 两款网络分析工具的比较
  14. 利用JavaScript在canvas中画一棵树
  15. 一包辣条如何逆袭,从屌丝品牌成为有逼格的产品?
  16. STM32 之 HAL库
  17. 用平面图片制作3D模型【3DsMax】
  18. 景深--摄影基础理论(1)
  19. 崇阳职校计算机基础知识试题及答案,崇阳职校2014年春期末考试.doc
  20. 蓝桥杯练习系统-入门训练java版

热门文章

  1. 23种设计模式彩图-设计模式之禅
  2. “杜拉拉升职记”电影看后感
  3. 大多数人不知道淘宝天猫有内部优惠卷,能省钱的公众号,购物省钱妙招
  4. 模式识别与机器学习(作业5)基于PCA–LDA的人脸识别
  5. Omar Loves Candies
  6. 在线引入 iconfont 特殊图标字体
  7. Java爬虫之利用Jsoup+HttpClient爬取类叔叔不约匿名聊天网站的图片,未果——后爬取某网站美女图片案例
  8. 多块英伟达K80显卡linux安装,ubuntu14.04下NVIDIA Tesla K80 、GTX1080顯卡驅動以及Tensorflow、Python的安裝教程...
  9. python数据类型的转化和获取
  10. 【渝粤教育】电大中专Windows操作系统 (2)作业 题库