RNN:循环神经网络。RNN输入为两个向量xt与st-1,分别代表输入向量与之前输入序列所储存的knowlegde。简单而言,RNN适合处理序列问题(当前输入数据与之前输入数据有关),如上下文、文本处理、时序问题,具体如文本翻译、时序建模等等。RNN由于梯度乘性问题,对于过长的序列,前面的序列对后面的序列影响基本为0,由此引入了LSTM。
有关循环神经网络——RNN、Seq2Seq、LSTM简单概括式的理解与总结

双向RNN:解决传统RNN的 信息只能由过去知识来获得。很多时候我们的模型要求当前输出并不只被过去的信息所干涉,可能也会被未来一段时间的信息所干涉,由此引入双向RNN。

Seq2Seq:序列到序列,又叫 编码-解码。传统RNN输入输出是等长序列,而序列到序列可以输出为不等长序列。编码器RNN的最后一个输出状态hnx通常被作为解码器RNN的输入向量,记为C。该架构不足在于,编码器RNN输出的上下文向量C通常由于维度太小,难以概括一个长序列,这也是传统RNN的不足之处引起的,太前面的知识由于梯度消失对C影响太小。解决方式为:让C成为一个变长的序列;引入Attention机制,将C与输出序列的元素相关联。典型应用如:机器翻译。

Attention机制:对神经网络中一些重点结构加以关注,例如学习一个权重分布,该权重可以对网络节点加权地赋予不同的重要程度。Attention机制并不是一个架构或模型,更类似以一种思想。

递归神经网络:RNN的一种扩展。潜在用途:学习推论。

循环网络涉及的相同函数的多次组合,每个时间步一次。这些组合会引起长期依赖带来的挑战——梯度消失/爆炸。
当前最有效的序列模型为门控RNN,包括LSTM和GRU的网络。LTSM引入注意力在于:引入一个可以学习的权重,对当前、以前的状态进行一个遗忘/记忆的处理。
有关循环神经网络——RNN、Seq2Seq、LSTM简单概括式的理解与总结

如图:
第一个门控——遗忘门:Zf,由之前的ht-1和当前输入xt的运算,来决定对上一个传递的状态ct-1的遗忘,即对之前传递过来的信息选择性遗忘。
第二个门控——选择记忆阶段(外部输入门):由ht-1和xt计算,运算方式(参数矩阵)不一样。是对当前信息处理后,对信息选择性记忆。
将上两步结果相加,得到了传递的下一个状态ct。
第三个门控:将会决定对当前状态信息,哪些以及怎么样进行输出,得到结果yt。以及传递下去的下一个参数ht。(这里的图和深度学习书不太一样,这里更直观,主要不同是关于ht的传递方式,并无太大影响。)
综上,LSTM在每个时间步所输入的参数为ht-1,ct-1,xt,前两个由之前序列传递而来。
为什么LSTM能解决长期依赖?主要是ct这个表示状态的参数,每个时间步进行的运算有:1、遗忘,对之前状态选择遗忘;2、选择记忆:对当前状态选择记忆。这能保证ct能够记忆下来很久之前的知识。而ht-1这个参数(作用如RNN),代表的是逐渐传递下来的序列信息,是用来结合xt与ct-1,来得到输出yt的。