一、循环神经网络
RNN是专门用来处理序列数据的神经网络。
1)导师驱动过程和输出循环网络
2)计算循环神经网络的梯度
二、双向RNN
双向RNN结合时间从序列起点开始移动的RNN和另一个时间从序列末尾开始移动的RNN。
三、基于编码-解码的序列到序列架构
用于映射可变长度的序列到另一可变长度序列。
编码器encoder/读取器reader/输入input RNN处理序列
编码器输出上下文C(通常是最终隐藏状态的简单函数)
解码器decoder/写入器writer/输出 RNN则以固定长度的向量为条件产生输出序列。
这里并不要求编码器和解码器的隐藏层具有相同的大小。
但是这种不足就是编码器RNN输出的上下文C的维度太小而难以适当的概括一个长序列。
之后的学者有引入一个注意力机制(attention mechanism)
四、深度循环网络
有学者证明引入深度是有用的。
五、递归神经网络
是循环网络的另外一个扩展,它被构造为深的树状结构而不是RNN链状结构,因此是不同类型的计算图。
递归神经网络的明显优势:对于具有相同长度τ的序列,深度(通过非线性操作的组合数量来衡量)可以急剧地从τ减小为O(logτ),这可能有助于解决长期依赖。
递归网络想法的变种存在很多。
六、长期依赖的挑战
学习循环网络长期依赖的数学挑战在该书第八章提到过。
根本问题是:经过许多阶段的传播后的梯度倾向于消失(大部分情况)或爆炸(很少,但对优化过程影响很大)。
即使我们假设循环网络是参数稳定的(可存储记忆,且梯度不爆炸),但长期依赖的困难来自比短期相关作用指数小的权重。
循环网络涉及相同函数的多次组合,每个时间步一次。这些组合可以导致极端非线性行为。
七、回声状态网络
研究者提出避免这种困难的方法是设定循环隐藏单元,使其能很好地捕捉过去输入历史,并且只学习输出权重。
回声状态网络(ESN),以及流体状态机(LSM)。
八、渗透单元和其他多时间尺度的策略。
九、长短期记忆和其他门控RNN
该书发表的时候,实际应用中最有效的序列模型称为门控RNN(gated RNN),包括基于长短期记忆(long short-term memory)LSTM和基于门控循环单元(gated recurrent unit)GRU。
(1)LSTM
引入自循环的巧妙构思,以产生梯度长时间持续流动的路径是初始长短期记忆模型的核心贡献。
其中一个关键扩展是使自循环的权重视上下文而定,而不是固定的。
门控自循环的权重,累积的时间尺度也可以因输入序列而改变。
(2)其他门控RNN
十、优化长期依赖
(1)截断梯度
(2)引导信息流的正则化