当先锋百科网

首页 1 2 3 4 5 6 7

循环神经网络(recurrent neural network,RNN)是一类用于处理序列数据的神经网络。

RNN和CNN对比:

CNN: 借助卷积核(kernel)提取特征后,送入后续网络(如全连接网络 Dense)
进行分类、目标检测等操作。CNN 借助卷积核从空间维度提取信息,卷积核参数空间共享。
RNN: 借助循环核(cell)提取特征后,送入后续网络(如全连接网络 Dense)
进行预测等操作。RNN 借助循环核从时间维度提取信息,循环核参数时间共享。

为什么需要RNN:

传统的神经网络都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。
但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。

RNN的结构

RNN主要又输入层、隐藏层、输出层组层,隐藏层里有若干个循环核。

循环核

循环核是RNN中隐藏层最基本的构成。
其中包含了多干个时间状态节点,每个状态节点都有一个状态信息h_t
在这里插入图片描述
X为输入向量,它包含了不同时间的数据序列,X=[x1,x2,x3,…,xt]
Wxh为输入数据x的权重,Whh为前一时刻状态信息h_t-1在输入到下一时刻状态时的权重、bh为输入其偏置
tanh为激活函数
在这里插入图片描述
每一个状态在对应时刻节点的输出为yt
其由该状态信息ht和对应输出权重Why及偏置项by组成,经过softmax函数得到输出值yt
在这里插入图片描述
循环核展开之后,就类似于这样:
总的来说就是,对于输入数据X,循环核内的不同结点会处理与其对应时刻的数据
在这里插入图片描述
拥有不同循环核的RNN
在这里插入图片描述

不同类型的RNN

一对一、一对多、多对一、多对多(输入X的序列数和输出序列数可能相等或不相等)
在这里插入图片描述