卷积神经网络基础:(8)递归神经网络RNN

news/2024/9/20 12:33:40

1、RNN网络由来

RNN:Recurrent Neural Network。递归神经网络只是在传统神经网络上进行一个改进而已。

正常流程是:输入---->隐层---->输出 (数据来了经过隐层最终得到输出就完事了)

当我们在使用递归神经网络的时候一些限制,现在我拿到一些数据它是有一些时间顺序相关,

比如说我现在有一些数据t_{1}时刻的一个特征,t_{2}时刻的一个特征......一直到t_{n}时刻的一个特征,相当于我自己加进来一个时间序列,当我这个网络在训练过程当中,他能考虑时间序列这个事情吗?不能,因为每一次他的输入,比如说第一次它的输入是t_{1},那他跟t_{2}就没关系了,我这个网络只把t_{1}输进去了,t_{2}他没有考虑,所以他认为t_{1}t_{2}是没有关系的,以及他们每两个互相之间都是没有任何关系的,因为此时我们会先进行洗牌再进行一个batch的选择,模型传递过程当中不会考虑之间他们的一个关系的,每一步操作都是独立来进行的,所以这里就会遇见一些小问题,有了一个时序数据,t_{1}时刻与 t_{2}......他们之间有一个时间相关性,那网络能不能学习到由于时间的一个相关性对结果产生一些影响,这个就是我们RNN网络在处理时间序列上的先天优势。

2、RNN网络的架构定义:

 首先看隐层:隐层上有一个特别之处,多了一个圈给他连回来了(解释:意思就是我们现在有一个数据,数据x_{1}经过隐层之后得到经过隐层之后当前的一个特征h1,比如说隐层会把当前数据转换成64个特征,64个特征再经过输出得到10个概率输出值,多出来的这个圈连回来就是他会把你隐层当前得到的64个特征拿回来,相当于一会我要再去利用一下中间这个特征h1,RNN网络的基本出发点:前一个时刻我训练出来的中间的这一个结果特征,也会对后一个时刻产生影响的,因为特征他无非就是数据的特征表达,数据之间在时序上呈现这样一个相关性,我在特征上也会呈现这样一个相关性的意思。) 

 所以说当我的数据点x_{2}来了之后,此时我的输入是两个箭头,也就是说我x_{2}在进行输入的同时,我x_{1}的中间特征结果也要进行一个输入,他俩是同时传入到隐层当中的,这个就是RNN当中他的一个小细节(他会把前一层得到的中间结果保存下来,参与下一层的一起运算)。x_{2}来了之后,他会把这一次的计算结果也带过来,因为x_{2}表示我第二次的中间特征h2。

x_{3}来了之后,此时就是x_{2}这个中间特征h2和x_{3}一起同时传入,此时h2这个中间特征不只是只包含t_{2}这个数据点的特征,他也会融合了一部分t_{1}这个点的特征,因为当你想得到h2的这个过程当中,你需要把之前的h1考虑进来,也就是说当我们使用RNN网络在进行建模的过程当中,我可以考虑时间序列的一个数据了,在这个时间序列当中,它是由一个前后关系的,在t_{1}t_{2}......他们之间最后是有一个关系的,如果说没有关系那还不如使用传统的神经网络呢?这个就是说RNN网络他是如何去解决不同的问题的。

PS:所以说CNN主要应用在计算机视觉(CV)当中;RNN主要应用到自然语言处理(NLP)当中;

 他会把之前看到的所有东西都记下来,这是RNN网络的特点。记的太多了,所以说需要让它忘记一些没必要的特征,就引出来了LSTM。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pgtn.cn/news/17770.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Matplotlib绘制象限图——支持中文、箭头、自定义轴线交点

Matplotlib绘制象限图——支持中文、箭头、自定义轴线交点 1. 效果图2. 原理2.1 绘制象限图步骤2.1 添加文字到图表3. 源码参考这篇博客将介绍如何使用matplotlib绘制象限图,写这篇博客源于博友的提问。 首先pyechart貌似不支持绘制象限图。pyecharts支持的象形柱图demo与想要…

Facebook 与 Google 正在主导在线身份验证市场

OpenID 公司 JanRain 的一项研究发现,用户在第三方网站进行身份验证时,最喜欢使用 Google 和 Facebook 的身份验证服务。Facebook 的验证服务 在媒体, 零售,技术等领域略微领先,而 JanRain 的17万份客户数据显示&#…

PyTorch框架:(1)基本处理操作

目录 1、PyTorch框架介绍 2、安装Pytorch 2.1、CPU版本的安装命令: 2.2、GPU版本的安装命令: 2.2.1、安装CUDA 3、基本使用方法 4、Pytorch中的自动求导机制 4.1、例子: ​ 4.2、做一个线性回归试试水 4.2.1、CPU训练版本 4.2.1、GPU…

使用KMeanCluster对多个区域进行聚类,并结合Matplotlib绘制中心点、最大最小距离点

使用KMeanCluster对多个区域进行聚类,并结合Matplotlib绘制中心点、最大最小距离点1. 效果图2. 源码2.1 原始数据——xq.txt2.2 源码参考这篇博客将演示如何使用KMeansCluster对多个区域进行聚类,并结合Matplotlib绘制中心点、最大最小区域的点。 写这篇…

PyTorch框架:(2)使用PyTorch框架构建神经网络模型---气温预测

目录 第一步:数据导入 第二步:将时间转换成标准格式(比如datatime格式) 第三步: 展示数据:(画了4个子图) 第四步:做独热编码 第五步:指定输入与输出 第六步:对数据做一…

使用Python,OpenCV进行Tesseract-OCR绑定及识别

使用Python,OpenCV进行Tesseract-OCR绑定及识别1. 效果图2. 安装TesseractPython“绑定”及识别3. 源码参考上一篇博客介绍了Windows上Tesseract-OCR的安装,并使用命令行参数进行了OCR数字和字母的识别。这一篇将介绍如何使用Python应用Tesseract-OCR绑定…

PyTorch框架:(3)使用PyTorch框架构构建神经网络分类任务

目录 0、背景 1、分类任务介绍: 2、网络架构 3、手写网络 3.1、读取数据集 3.2、查看数据集 3.3将x和y转换成tensor的格式 3.4、定义model 0、背景 其实分类和回归本质上没有太大区别,只是说最终得到的结果是不同的,以及使用的损失函数…

PyTorch框架:(4)如何去构建数据

接PyTorch框架:(3) 1、最基本的方法 (1)使用模块 模块1:TensorDataset、模块2:DataLoader 自己去构造数据集,然后一个batch一个batch的取数据,自己去写构造数据太麻烦…