RNN(Recurrent Neural Networks)循环神经网络

循环神经网络(Recurrent Neural Network,简称RNN)是一种处理序列数据的神经网络结构,它具有记忆能力,能够捕捉序列中的时序信息。RNN在自然语言处理、时间序列预测等方面有着很多的应用。

一、RNN 的基本结构

RNN的包括输入层、隐藏层和输出层。其中,隐藏层的状态会随时间步更新,并作为下一时间步的输入之一。这种循环连接使得RNN具有记忆能力,能够捕捉序列中的长距离依赖关系。

1、单层网络结构

在进一步了解RNN之前,先给出最基本的单层网络结构,输入是x,经过变换为W x + b,激活函数为f,输出y可以表示为y=f(W x + b),是一个无隐藏的单层感知器。

2、加入隐藏层

在单层网络结构的基础上引入了隐藏层h ,h 可对序列数据提取特征,接着再转换为输出。

RNN中,每个步骤权值共享,使用的参数U,W,b​相同(所有隐藏层都同一个U,W,b进行更新),h2的计算方式和h1类似,其计算结果如下:

接下来,计算RNN的输出y1,使用Softmax激活函数:

使用和y1相同的参数V和c,得到y2,y3,y4,得到如下结构图:

如果上面的图不够明显,可以看看下面这张图,会更清晰一些:

二、RNN常见的问题及解决办法

1、梯度消失

梯度消失问题是指 RNN 中的梯度在向后传播时减小或消失的问题。这是由于反向传播过程中梯度的重复乘法,这可能导致梯度呈指数下降。所以在激活函数输出时,可以将sigmoid换成RELU等其他激活函数,使得输出不要太过小。当然也不能都是1,否则会引起梯度爆炸。

2、RNN和MLP有什么区别

(1)RNNs引入了定向循环,能够处理输入之间前后关联问题,使其能够记住一定序列范围内的信息。

(2)RNNs网络参数W,U,V是共享的,而MLP各层参数间没有直接联系。

3、其他有遇到的问题再补充。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值