通俗理解RNN

循环神经网络(RNN)是一种擅长处理序列数据的神经网络,其结构包含反馈回路,使得信息能在时间轴上传递。通过输入、隐藏层和输出层的交互,RNN将输入转换为输出。在训练过程中,利用反向传播计算权重的梯度,如Wxh、Whh和Who。在序列的最后一个时刻,没有来自下一时刻的梯度贡献。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.RNN叫循环神经网络,是一种特殊的神经网络,它擅长处理有先后之分的序列数据。以下是它最经典的结构:

Xt是t时刻的输入值,A为主体结构,ht是t时刻的输出值,这个结构与一般的神经网络结构的区别就在于有一条从A出发回到A的线,这条线与时间有关。

把它展开后如下:

这里只画了三个时刻,实际上可以有很多个,每个时刻都有相应的输入,但不是每个时刻都有输出

 

2.接下来,我们详细讲述RNN是怎么将输入转换成输出。具体如下图,我们只考虑三层:

图中圆圈代表神经元;

Xt,ht-1分别为输入层的t时刻输入和上一时刻的状态,ht-1是隐藏层上一时刻的输出;

Wxh,Whh分别是输入神经元到隐藏层神经元的权重,上一个时刻状态神经元到当前时刻隐藏层神经元的权重 ;

Who为隐藏层到输出层的权重;

at为输入层的线性输出值;

Zt为输出层的输入值;

ht为隐藏层的输出值;

y’t为输出值;

tanh,softmax为激活函数,将值非线性化;

 

3.求解Wxh,Whh,Who的梯度 :

首先用Et表示真实值yt和预测值y‘t的损失函数,Et=E(yt,y't)。损失函数不仅依赖当前时刻的输出层,也依赖与下一时刻。

Et对Who的梯度:

Wxh和Whh在计算更新梯度时都需要考虑当前时刻的梯度和下一时刻的梯度。在求Et对Wxh,Whh的梯度前,我们先求at的梯度:

在这里我们令

需要注意的是,在序列的最后时刻t时刻,这里说的是最后的时刻,它之后就没有从下一时刻传来的梯度(梯度其实就是偏导),所以

因此Wxh和Whh的梯度为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值