手把手教你训练 RNN | Part II

2018 年 7 月 3 日 数盟

RNN 的反向传播是为了计算出关于损失函数的梯度值

读者可以在这里看到本文的 Part I(http://dataunion.org/33284.html)。

单个 RNN 单元的反向传播

RNN 中反向传播的目的是计算出最终的损失值 L 分别对权值矩阵(W_xh,W_ah,W_ao)和偏置向量(b_h,b_o)的偏导数值。

推导出所需的导数值非常简单,我们只需要利用链式法则就能计算出它们。

第一步:为了计算代价,需要先定义损失函数。一般根据具体手中的任务来选择该损失函数。在这个例子里,对于多分类输出问题,我们采用交叉熵损失函数 L⟨t⟩,其具体计算过程如下:

第二步:接下来我们开始往后计算损失函数 L⟨t⟩ 对预测输出值的激活值 ŷ⟨t⟩ 的偏导数值。因为在前向传播过程中 softmax 函数以多分类的输出值作为输入,因此下面的偏导数值

的计算分为两种情况:分类 i 时和分类 k 时:

第三步:接着利用分类 i 时和分类 k 时的偏导数值

,可以计算出损失函数 L⟨t⟩ 对预测输出值 o⟨t⟩ 的偏导数值:

第四步:利用偏导数值

及链式法则,计算出损失函数 L⟨t⟩ 对输出过程中的偏置向量 b_o 的偏导数值:

第五步:利用偏导数值

及链式法则,计算出损失函数 L⟨t⟩ 对隐层至输出层中的权值矩阵 W_ao 的偏导数值:

第六步: 利用偏导数值

及链式法则,计算出损失函数 L⟨t⟩ 对隐状态的激活值 a⟨t⟩ 的偏导数值:

第七步: 利用偏导数值

及链式法则,计算出损失函数 L⟨t⟩ 对隐状态 h⟨t⟩ 的偏导数值:

第八步: 利用偏导数值

及链式法则,计算出损失函数 L⟨t⟩ 对隐状态的偏置向量 b_h 的偏导数值:

第九步:利用偏导数值

及链式法则,计算出损失函数 L⟨t⟩ 对输入层至隐层中的偏置矩阵 W_xh 的偏导数值:

第十步:利用偏导数值

及链式法则,计算出损失函数 L⟨t⟩ 对输入层至隐层中的偏置矩阵 W_ah 的偏导数值:

随时间反向传播(BPTT)

就像前文中提到的前向传播过程一样,将循环网络展开,BPTT 将沿此一直运行着上述步骤。

主要的区别在于我们必须将每个时间步 t 的偏导数值

累加起来,从而更新权值和偏置,这是因为这些参数在前向传播的过程中是被各个时间步所共享的。

总结

在本文的第一部分和第二部分中,我们了解了循环神经网络训练过程中所涉及到的前向传播和反向传播。接下来,我们将着眼于 RNN 中所存在的梯度消失问题,并讨论 LSTM 和 GRU 网络的进展。

博客原址:https://medium.com/learn-love-ai/step-by-step-walkthrough-of-rnn-training-part-ii-7141084d274b

识别下图二维码,加“数盟社区”为好友,回复暗号“入群”,加入数盟社区交流群,群内持续有干货分享~~

本周干货内容:新一代人工智能「产业推动的核心理论」

媒体合作请联系:

邮箱:xiangxiaoqing@stormorai.com





登录查看更多
0

相关内容

最新《自动微分手册》77页pdf
专知会员服务
102+阅读 · 2020年6月6日
【UCLA】基于深度神经网络的工业大模型预测控制,36页ppt
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
173+阅读 · 2020年5月6日
【经典书】机器学习高斯过程,266页pdf
专知会员服务
198+阅读 · 2020年5月2日
专知会员服务
45+阅读 · 2020年3月6日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
78+阅读 · 2020年2月3日
面试题:Word2Vec中为什么使用负采样?
七月在线实验室
46+阅读 · 2019年5月16日
三次简化一张图:一招理解LSTM/GRU门控机制
机器之心
15+阅读 · 2018年12月18日
误差反向传播——RNN
统计学习与视觉计算组
18+阅读 · 2018年9月6日
基础 | GRU神经网络
黑龙江大学自然语言处理实验室
27+阅读 · 2018年3月5日
循环神经网络的介绍、代码及实现
AI研习社
3+阅读 · 2017年11月21日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
想让机器人替你聊天?1小时手把手训练一个克隆版的你
RNN | RNN实践指南(1)
KingsGarden
21+阅读 · 2017年4月4日
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Single-frame Regularization for Temporally Stable CNNs
The Matrix Calculus You Need For Deep Learning
Arxiv
12+阅读 · 2018年7月2日
Arxiv
29+阅读 · 2018年4月6日
Arxiv
6+阅读 · 2018年1月29日
Arxiv
4+阅读 · 2017年7月25日
Arxiv
3+阅读 · 2017年7月6日
VIP会员
相关VIP内容
最新《自动微分手册》77页pdf
专知会员服务
102+阅读 · 2020年6月6日
【UCLA】基于深度神经网络的工业大模型预测控制,36页ppt
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
173+阅读 · 2020年5月6日
【经典书】机器学习高斯过程,266页pdf
专知会员服务
198+阅读 · 2020年5月2日
专知会员服务
45+阅读 · 2020年3月6日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
78+阅读 · 2020年2月3日
相关资讯
面试题:Word2Vec中为什么使用负采样?
七月在线实验室
46+阅读 · 2019年5月16日
三次简化一张图:一招理解LSTM/GRU门控机制
机器之心
15+阅读 · 2018年12月18日
误差反向传播——RNN
统计学习与视觉计算组
18+阅读 · 2018年9月6日
基础 | GRU神经网络
黑龙江大学自然语言处理实验室
27+阅读 · 2018年3月5日
循环神经网络的介绍、代码及实现
AI研习社
3+阅读 · 2017年11月21日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
想让机器人替你聊天?1小时手把手训练一个克隆版的你
RNN | RNN实践指南(1)
KingsGarden
21+阅读 · 2017年4月4日
相关论文
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Single-frame Regularization for Temporally Stable CNNs
The Matrix Calculus You Need For Deep Learning
Arxiv
12+阅读 · 2018年7月2日
Arxiv
29+阅读 · 2018年4月6日
Arxiv
6+阅读 · 2018年1月29日
Arxiv
4+阅读 · 2017年7月25日
Arxiv
3+阅读 · 2017年7月6日
Top
微信扫码咨询专知VIP会员