RNN的作用
更好的处理序列信息,模型具有记忆功能
RNN结构图
各种参数的意义
X是某个时刻的输入值对应的向量(多个时刻的X组成一个序列,如:我是学生就是一个序列,t1时刻的x为我对应的n维向量);S是隐藏层的值,m维的向量;O是输出层的值,t维向量。
U,V是参数矩阵,维度由、
、
决定,
、
、
的维度则是人工设置的(
维度等于词向量的维度;
是隐藏层的维度,即神经元的个数;
是输出层的维度)。
W是隐藏层的权重矩阵。t-1 时刻隐藏层的值,作为 t 时刻隐藏层的权重。
因此,对于RNN来说,输入序列与输出序列的个数是相同的。另外,同一个隐藏层的W,V,U参数矩阵在训练过程中是共享的,同时也是不断变化的。
前向传播
(式1)
(式2)
f 为激活函数,RNN中通常使用tanh作为隐藏层的激活函数。 g为输出层的激活函数,输出层是一个全连接层。
假设是一个m维(mx1)向量,
是一个n维的列向量,则U是(nxm)的矩阵,W是(nxn)的矩阵;W,U,V的个数等于RNN隐藏层的层数。
记忆能力
前向传播的式2根据式1展开(为了便于观察,展开的过程忽略了偏置):
(式3)
可以看出,RNN的输出值,受前面历次输入 的影响,故而,RNN具有记忆能力。
记忆能力的重要性
- 对于文本、语音、视频等序列数据,前后相关,需要具备记忆能力的模型来建模
- 比如当我们在理解一句话的意思的时候,孤立的理解词的意思是不够的。同理,在处理视频时,也不能只分析孤立的一帧,而是分析这些贞连起来的整个序列。
RNN的问题
RNN中存在梯度爆炸和梯度消失的问题。通过前向传播分析其产生的原因:
未完待续...