文章目录
Week 13: 深度学习补遗:RNN的训练
摘要
本周主要跟随李宏毅老师的课程进度,继续学习了RNN的原理部分内容,对数学本质与底层逻辑方面知识继续进行深挖,对BPTT算法和梯度消失问题的解决方法进行了学习。
Abstract
This week, we mainly followed the course progress of Professor Hung-yi Lee and continued to study the principles of RNN. We continued to delve deeper into the mathematical essence and underlying logic, and learned about the BPTT algorithm and solutions to the gradient vanishing problem.
1. RNN的训练
以Slot Filling为例,对于当前的词汇 x i x^i xi,RNN输出向量 y i ^ \hat{y^i} yi^,代表其属于某个Slot的可能性,即求 y i y^i yi与 y i ^ \hat{y^i} yi^的交叉熵损失函数。将多个词汇的损失求和即为网络的损失函数,需要注意的是,不可以打乱词汇的语序,因为RNN的前后文之间会相互影响,也就意味着 x i + 1 x^{i+1} xi+1需要紧跟着 x i x^i xi输入。
RNN同样采用梯度下降法进行训练,但由于RNN工作在时间序列上,为了训练更加有效,采用了BPTT算法,考虑了时间维度的信息,在时间序列上更加有效。
2. Backpropagation Through Time BPTT算法
BPTT是反向传播算法为了在RNN上使用而改进的版本。

对于任意一个 t t t时刻,有输出 O t = g ( V ⋅ s t + b 2 ) O_t=g(V\cdot s_t+b_2) Ot=g(V⋅st+b2),而隐藏层 s t = f ( U ⋅ x t + W ⋅ s t − 1 + b 1 ) s_t=f(U\cdot x_t+W\cdot s_{t-1}+b_1) st=f

最低0.47元/天 解锁文章
879

被折叠的 条评论
为什么被折叠?



