李宏毅 RNN 视频课程学习
-
图里面,每个相同的权重使用同样的颜色表示。
-
两种不同的RNN网络模型
-
RNN 网络模型可以同时训练一个正向的和一个逆向的网络模型,这样在产生一个output的时候,
-
一个LSTM的CELL有4个输入信号:input vector, 输入门 输出门,遗忘门的门控信号。
-
c是之前的memory cell 里面存放的历史记忆(从上一个cell传递过来的隐藏状态吧),根据当前时刻的输入信号,以及当前时刻的三个门控信号,得到的下一个时刻的隐藏状态c’以及当前时刻的输出a为以下图中的表达式,其中, f为激活函数,一般选用sigmoid激活函数,因为这个函数的输出在0-1之间,刚好可以根据值的大小,按照比例调节门控信号,控制通过门控的信号。
6. 手动计算LSTM 数据流图的例子,最上面的蓝色的一行代表的是memory。
7. 实际的运算过程,上面 6 里面的三种情况,在下图中,根据每个边上的权重不同,刚好可以实现上述的功能,使用的激活函数为sigmoid。
下图中的计算结果需要假设 h 和 g 的值均是线性的,并且假设初始存在memory里面的值为 0 。
门控信号的值为1的时候代表门被打开,信号可以通过,为0的时候代表门关闭,信号无法通过。
8. 下面两幅图对比全连接神经网络与LSTM 神经网络的区别,在LSTM模型中,输入 x1, x2 组合起来,根据权重进行加权后,分别用作输入信号,输入门门控信号,输出门门控信号,遗忘门门控信号。
由此可以发现,在神经元数量一样的情况下,LSTM 模型的数据量是全连接神经网络模型的数据量的4倍
通过对比可以发现,LSTM 相比全连接神经网络,是将原来的一个神经元替换为一个LSTM 神经元。
9. 讲到这里的话,还没有体现循环网络的循环的特性以及记忆的功能,下面的这两个图里面讲述了循环的所在,其中的 zf,zi,z,zo依次是遗忘门的门控信号的权重矩阵,输入门门控信号的权重矩阵,输入信号的权重矩阵(线性层之类的),输出门的门控信号的权重矩阵。
- 通常用作下一个时刻点的输入信号不只是下一个时刻的输入,还有上一个时刻的memory(隐藏层)以及输出层
- 此外,通常LSTM 不只只有一层的,可能有好多层
-
GRU 相比LSTM 少了一个门,参数量少了 1/3,但是性能接近,而且不容易过拟合。
-
完成前向传播以后,需要进行反向传播,来更新网络的权重参数以达到降低loss的目的。
-
在RNN的训练过程中,使用relu作为激活函数,通常效果会比 sigmoid激活函数的效果要差一些。
-
RNN的根本问题在于,同样的一组参数,随着时间的传递,会被反复用到,LSTM可以改善梯度消失的状况,但是不能很好的改善梯度爆炸。对于RNN网络,在每一个时刻点,memory里面的数据都会被完全覆盖掉,但是在LSTM里面,是将上一个时刻的memory里面的值乘以一个值 再和当前时刻的输入加起来 放到cell里面去,所以LSTM的memory和input是相加的。
-
在RNN的训练过程中,可以将学习率设置的尽量小一点。
-
在训练的过程中,最好给遗忘门设置一个比较大的bias,以保证遗忘门大部分时间都是开启的,防止太多的数据被遗忘掉。
-
对比深度学习算法与经典机器学习算法,两者的特点如下图,这两种方法可以组合起来使用,分别发挥两种模型的优势。
- 输入的特征先通过 RNN 网络模型,RNN 网络模型的输出再作为 HMM,CRF,Sturctured Perceptron/SVM的input。
用RNN,LSTM 的input来定义 HMM,CRF,Sturctured Perceptron/SVM 等算法的evaluate function。
模型混合使用的方式。