一、循环神经网络
参考博客:零基础入门深度学习(5) - 循环神经网络
1.循环神经网络最大的用处就是处理序列的信息,即前面和后面的输入是有关系的,比如理解一句话的意思,以及处理视频
2.语言模型:给定一句话前面的成分,预测接下来最有可能的一个词是什么
3.下面是一个简单的RNN模型示意图,它由输入层、隐藏层和输出层组成
4.全连接层:该层的每个节点都和隐藏层的每个节点相连
5.循环神经网络展开后如下:
其中U,V,W都是权重矩阵,st是第t层隐藏层的值
我们来分析一下,第t层隐藏层的值st和输出ot:
ot=g(Vst)
st=f(Uxt+Wst-1)
6.双向循环神经网络:
在这张图中,y是输出,A是正向隐藏层的值,A‘是反向隐藏层的值,同样,我们来分析一下第t层隐藏层的值st和输出ot:
ot=g(Vst+V’s’t)
st=f(Uxt+Wst-1)
st=f(U’xt+W’st-1)
7.深度循环神经网络:
其中,设每一层隐藏层的隐藏单元个数为h,xt
∈
\in
∈ Rn×d,n个样本,d个输入单元,
记Wxh(i)为横向传播的权重参数,即从H(i-1)到H(i)的传播权重;
记Whh(i)为纵向传播的权重参数,即从Ht-1到Ht的传播权重;
所以有:
Ht(l)=
Φ
\Phi
Φ(H(l-1)tWxh(l)+Ht-1(l)Whh(l))
横向就是隐藏层数(上标l)增加,纵向就是时间点(下标t)增加
二、GRU(gated recurrent unit)
1.参考资料:动手学深度学习
2.重置门可用于丢弃与预测无关的历史信息
3.更新门能帮助模型决定要将多少过去的信息保存到当前时间步中
4.GRU的具体机制如下:
三、LSTM(长短期记忆)
1.LSTM的组成:输入门,遗忘门,输出门,与隐藏状态相同的记忆细胞(一些文献会把记忆细胞当成一种特殊的隐藏状态)
2.输入门,遗忘门,输出门这3个元素的输出均由激活函数为sigmoid函数的全连接层计算得到,因此,这3个门的值域为[0,1]
3.候选记忆细胞与另外3个门元素不同,它的激活函数为tanh,因此值域为[-1,1]
4.我们通过遗忘门和输入门来控制当前时间步输入信息以及上一时间步的记忆细胞的信息流入当前时间步记忆细胞的程度:
这个设计可以应对循环神经网络中梯度衰减的问题,并更好地捕捉时间序列中时间步距离较大的依赖关系
5.隐藏状态:
需要注意的是,输出门近似为1时,记忆细胞的信息会输出到隐藏状态中供输出层使用;近似为0时,记忆细胞的信息只会自己保留起来,不会输出。