循环神经网络RNN的前向传播与反向传播

本文详细介绍了循环神经网络(RNN)的模型、前向传播过程和反向传播算法,包括激活函数、输出计算、梯度计算等,并探讨了RNN在处理长序列依赖时的缺点及LSTM的解决方案。
摘要由CSDN通过智能技术生成

1. RNN模型

在这里插入图片描述

2. RNN的前向传播

对于当前的索引号 t t t,隐藏状态 h t h^t ht x t x^t xt h t − 1 h^{t-1} ht1共同得到:
(1) h t = tanh ⁡ ( U x t + W h t − 1 + b ) h^t = \tanh(Ux^t+Wh^{t-1}+b) \tag{1} ht=tanh(Uxt+Wht1+b)(1)
其中选用了tanh作为激活函数, b b b是bias。

每次网络的输出值:
(2) o t = V h t + c o^t = Vh^t + c \tag{2} ot=Vht+c(2)

输出的预测值:
(3) a t = softmax ( o t ) = softmax ( V h t + c ) a^t = \text{softmax}(o^t) = \text{softmax}(Vh^t+c) \tag{3} at=softmax(ot)=softmax(Vht+c)(3)

使用交叉熵损失函数:
L t = − ∑ i = 1 N y i t log ⁡ a i t = − log ⁡ a k t L^t = -\sum_{i=1}^Ny_i^t\log a_i^t = -\log a_k^t Lt=i=1Nyitlogait=logakt
化简的结果是因为在所有的 N N N个分类中,只有 y k = 1 y_k=1 yk=1

3. RNN的反向传播

RNN的反向传播有时也叫做BPTT(back-propagation through time),所有的参数 U , W , V , b , c U, W, V, b, c U,W,V,b,c在网络的各个位置都是共享的。

成本函数:
L = ∑ t = 1 m L t L = \sum_{t=1}^mL^t L=t=1mLt
其中 m m m是训练集的数据量。

从《交叉熵的反向传播梯度推导(使用softmax激活函数)》一文得知,
∂ L t ∂ o t = a t − y t \frac{\partial L^t}{\partial o^t} = a^t - y^t otLt=at<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值