递归神经网络RNN
注:RNN和BP神经网络类似,都是误差反向传播算法,区别是RNN有反馈回路,而BP没有,下图中表示3次迭代过程中(t-1,t,t+1),RNN的工作情况,即每次迭代时,都会将上一次的输出结果传递到下一次的每个神经元上;
注:RNN的一些缺陷,如上图中的例子2,需要填充的信息只跟第一句有关,但...表示的地方会有多个语句,第一句的信息在往下传时,重要性会逐渐减小,到了决策层时,可能就消失了,从而导致得到了一个错误的结果;假设用y=x这种梯度等于1的激活函数的话,可以将第一句的信息完整的传到决策层,但这样的话,又会导致其它的无关信息也一并完整的传到了决策层,从而导致到决策层的信息过多,影响决策的正确率;
解决RNN上面的那些缺陷的一个方法是选择性记忆,即将重要信息完整的传递下去,而不重要的信息则随着信息的传递而逐步衰减,即下面要介始的长知时记忆网络LSTM;
长短时记忆网络
公式解释:
通用说明:j表示第j个块,上图中的结构表示一个块,LSTM中,用块替换神经网络中的神经元,t表示时间节点,u表示构成的成分,输入门和输出门的构成成分u比较复杂,可以是上一个时间节点传过来的数据,可以是记忆细胞反馈过来的数据,可以是自身反馈过来的数据,可以是输入门过来的数据,可以是块的输入(上图结构中最左边的输入)传过来的数据,可以是块的输出(上图结构中最右边的输出)传过来的数据等;
1)公式1表示输出门的数据为权值乘以上一个时间节点上,块的整体输出(结构最右边的输出),并求和;
2)同理,公式2表示输入门的数据为权值乘以上一个时间节点上,块的整体输出并求和;
3)公式3表示输入门和输出门和块的交点(,
),即上图结构中的黑色实心圆点等于输入门和输出门的数据,经过一个激活函数f
后的值;
4)公式4表示块的整体输出(结构中最右边的输出),等于输出门的输出门乘以
h函数之前的数据经过h函数后的值;
5)公式5表示记忆细胞在时间节点t=0时,值为0,在t>0时,等于上一个时间节点时,记忆细胞的值加上,本次时间节点下,输入门的输出
乘以,(块的输入(结构中最左边的输入)结果经过激活函数
后的值),而得到的值;
备注:输入门和输出门的结果等0时,就可以阻止信息的传递,等于1时,可以让信息完整的传递到下一个节点,等于(0,1)时,则可以让信息部分传递下去;
注:LSTM网络中,输入层和输出层还是普通的神经元,但隐藏层的神经元全都替换成了上上图的细胞块;
注:改进后的LSTM网络构中,大体上和之前的版本是差不多的,主要是多了一个忘记门;
注:表示输入门,
表示忘记门,
表示输出门,它们的输入信号是一样的(上一个时间节点的输出和本时间节点的训练数据),但权值和偏置值不一样;
表示输入节点经过激函数后数据,即上图中输入上面的黑点之前的数据,
表示乘法;