不懂CNN的建议先看一下CNN

前言

我们先看一下普通的神经网络,只要训练的数据和次数足够,这种网络是可以拟合任意函数的。

但是这种最基本的网络肯定是有很多不足的,上面那种网络只能单独的处理每一个输入进行预测,也就是所有输入之间是没有联系的。但如果我们要对时间序列这种类似的数据进行结果预测,也就是这种的前因和后果都是有联系的数据,传统神经网络就不行了,所以我们引进了RNN。

RNN循环神经网络

RNN要解决的问题就是怎样把前后关系联系在一起

从上图我们可以看出,基础的神经网络包含输入层、隐层、输出层,通过激活函数控制输出,层与层之间通过权值连接。激活函数是事先确定好的,那么神经网络模型通过训练“学“到的东西就蕴含在“权值“中。

基础的神经网络只在层与层之间建立了权连接,RNN最大的不同之处就是在层之间的神经元之间也建立的权连接

RNN的基本结构

先看一个简单的描述图

从下往上看,先是输入层输入X这个向量,经过U这个输入层到隐藏层的权重矩阵到达隐藏层S,然后经过V这个隐藏层到输出层的权重矩阵到达输出层O。这是基本的神经网络的处理模式。但这里还有一个W,W也是一个权重矩阵,他的作用就是把隐藏层上一次的权重值进行权重计算、更新,并作为下一次的输入权重的一部分。
我们把上面那个图展开就是这个图。

RNN的工作原理

这个可能更好看明了一点

我们可以把xt−1x_{t-1}xt−1​看作第一个输入的值,然后经过两个权重矩阵的迭代,输出为Ot−1O_{t-1}Ot−1​;当然xtx_txt​就是第二个输入值了,可以看到,他在进入权重矩阵V的时候,不只是进入的他本身的权重sts_tst​还有前面st−1s_{t-1}st−1​进过权重矩阵W更新后传过来的权重,两者的权重加起来之后才经过V更新然后输出的。后面过程都是这样类似的。


用公式表达为

可以根据上面的理解,来看下下面的图。

RNN 的应用场景

  • 机器翻译:输入为源语言中的一个序列数据(比如:英语),输出是目标语言序列数据(比如:汉语),比如谷歌翻译、有道翻译等。
  • 情感分类:输入为一段文本或者一段评论数据,输出相应的打分数据,来判别这段话的情感。
  • 文本摘要:输入为一段文本序列,输出是这段文本序列的摘要序列。
  • 图像描述:输入为一张图片,输出是对这张图片的描述信息。
  • 语音识别:输入为语音新号序列数据,输出为文本序列,比如 ASR 功能。
  • 阅读理解:输入为一段文章和问题,对其分别编码,在对其进行解码,输出得到问题的答案。

RNN的不足

前面我们说了,RNN可以通过前面的数据来预测后面的数据,这对时间序列或自然语言处理方面比较强势。
但是对较长的时间,或者较长的string,很多时候前面的数据对后面的数据影响就很小甚至没影响了,这是我们就要加强前面的数据的权值;或者数据不是很长,但是最开始的数据对很往后的数据基本没啥影响,但RNN记住了,并对后面的数据产生了影响,这时我们就要往往要增大近期数据的权值。
所以在这时RNN就体现出他的不足了,所以我们就要引入LSTM长短期记忆神经网络这个网络结构。

LSTM明天一定更新完。实战教程在后面肯定也会出的。
如果想对RNN进入更深的数学层次的理解,建议看一下这个博客。
https://zybuluo.com/hanbingtao/note/541458

小白学深度之RNN循环神经网络相关推荐

  1. 《14天动手学深度学习》——循环神经网络进阶

    GRU RNN存在的问题:梯度较容易出现衰减或爆炸(BPTT) ⻔控循环神经⽹络:捕捉时间序列中时间步距离较⼤的依赖关系 RNN: Ht=ϕ(XtWxh+Ht−1Whh+bh)Ht=ϕ(XtWxh+H ...

  2. 动手学深度学习-12 循环神经网络基础

    循环神经网络基础 循环神经网络 从零开始实现循环神经网络 我们先尝试从零开始实现一个基于字符级循环神经网络的语言模型,这里我们使用周杰伦的歌词作为语料,首先我们读入数据: import torch i ...

  3. 水很深的深度学习-Task05循环神经网络RNN

    循环神经网络 Recurrent Neural Network 参考资料: Unusual-Deep-Learning 零基础入门深度学习(5) - 循环神经网络 史上最小白之RNN详解_Tink19 ...

  4. 深度学习之循环神经网络(5)RNN情感分类问题实战

    深度学习之循环神经网络(5)RNN情感分类问题实战 1. 数据集 2. 网络模型 3. 训练与测试 完整代码 运行结果  现在利用基础的RNN网络来挑战情感分类问题.网络结构如下图所示,RNN网络共两 ...

  5. 深度学习之循环神经网络(4)RNN层使用方法

    深度学习之循环神经网络(4)RNN层使用方法 1. SimpleRNNCell 2. 多层SimpleRNNCell网络 3. SimpleRNN层  在介绍完循环神经网络的算法原理之后,我们来学习如 ...

  6. 【深度学习】循环神经网络(RNN)的tensorflow实现

    [深度学习]循环神经网络(RNN)的tensorflow实现 一.循环神经网络原理 1.1.RNN的网络结构 1.2.RNN的特点 1.3.RNN的训练 二.循环神经网络的tensorflow实现 参 ...

  7. 深度学习原理-----循环神经网络(RNN、LSTM)

    系列文章目录 深度学习原理-----线性回归+梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网 ...

  8. July深度学习之RNN循环神经网络

    RNN循环神经网络 一.简介 首先,为什么有BP神经网络和CNN,还要提出RNN? 因为传统的神经网络,包括CNN,它的输入和输出是互相独立的.但有些时候,后续的输出和前面的内容是相关的.比如,我是中 ...

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

    一 RNN概述 前面我们叙述了BP算法, CNN算法, 那么为什么还会有RNN呢?? 什么是RNN, 它到底有什么不同之处? RNN的主要应用领域有哪些呢?这些都是要讨论的问题. 1) BP算法,CN ...

最新文章

  1. Maya创建科幻3D动画循环场景视频教程
  2. 计算机一级必考知识点,计算机一级word操作知识点
  3. python3.7基础教程_python 3.7极速入门教程6文件处理
  4. mysql gt resource_讲解MySQL中lt;=gt;操作符的用法
  5. VTK:图片之ImageMathematics
  6. 回文字符串—回文子串—中心扩散法
  7. STP生成树协议与MSTP的基本原理与简单配置
  8. linux 显示器分辨率设置太小了,显示器不显示 如何在设置回来,当“显示设置”中的分辨率不可用时,如何使用xrandr设置自定义分辨率...
  9. html5输入框自动放大镜,JS 仿支付宝input输入显示数字放大镜
  10. Filecoin Gas基础费率涨至4.78 nanoFIL
  11. JavaScript继承理解:ES5继承方式+ES6Class继承对比
  12. azure java_使用 Java 的 Azure 存储示例 | Microsoft Docs
  13. HDU5713 K个联通块
  14. C. Inna and Dima
  15. c语言中srand的作用,C++随机数(rand和srand)函数用法详解
  16. 浅谈一个新人的大数据之路-HiveQLSpark-SQL中谓词下推
  17. Typora 如何依次打小黑点,空心圆,实心框后恢复空心圆、小黑点
  18. leetcode---栈
  19. mysql基于Java web的电动车销售平台毕业设计源码201524
  20. java long转日期,long转String

热门文章

  1. t分布表精确完整图_如何快速绘制临床论文基线特征表
  2. linux 正则查找email_Linux--正则表达式--详解
  3. java泛型dao,泛型DAO模式在JavaWeb开发中的应用_孟晨.pdf
  4. python qt信号在qml 的使用_QML使用Python的函数过程解析
  5. api pdo php,从PHP Mysql API转换为PDO时如何处理数据类型
  6. mysql 触发器 for each row 理解_MySQL触发器中的“ FOR EACH ROW”如何工作?
  7. Mysql 引擎 表还是库_mysql 库、表、引擎
  8. EFCore-一对一配置外键小记
  9. python模块import具体用法
  10. kali 无法使用ifconfig等常用命令