主要是处理序列数据时用到的方法。
其对应的模型为:
其对应的函数方法为:
其运算过程,主要是上一个节点的运算结果与本节点的输入值加权求和,经过一个**函数,形成输出值。
RNN在使用过程中会形成相应的变种:
第一种:双向RNN,即RNN在运算的过程中会记录网络的返回值。
每个节点在计算最终输出结果时有四部分组成:
Ø 正向上一个节点的计算结果、正向本节点的输入值;
Ø 反向上一个节点的计算结果、反向本节点的输入值;
第二种:LSTM长短期记忆网络:
长短时记忆网络的思路比较简单。原始RNN的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。那么,假如我们再增加一个状态,即c,让它来保存长期的状态。
新加的状态C称为单元状态,是用来记忆长期的计算结果的。
LSTM的关键,就是怎样控制长期状态C。在这里,LSTM的思路是使用三个控制开关。
第一个开关:负责控制继续保存长期状态C;
第二个开关:负责控制把即时状态输入到长期状态C;
第三个开关:负责控制是否把长期状态c作为当前的LSTM的输出。
三个开关的作用如下图所示:
具体的前向计算步骤为:
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:机器学习(十九)——循环神经网络(RNN) - Python技术站