花书读书笔记(九)-序列建模:循环和递归网络

全部笔记的汇总贴:《深度学习》花书-读书笔记汇总贴

《深度学习》PDF免费下载:《深度学习》

循环神经网络(recurrent neural network)或RNN是一类用于处理序列数据的神经网络。

一、展开计算图

展开过程引入的优点:

  • 无论序列的长度,学成的模型始终具有相同的输入大小,因为它指定的是从一种状态到另一种状态的转移,而不是在可变长度的历史状态上操作。
  • 我们可以在每个时间步使用相同参数的相同转移函数 f f f

循环图和展开图

循环图简洁;
展开图能够明确描述其中的计算流程,还通过显式的信息流动路径帮助说明信息在时间上向前(计算输出和损失)和向后(计算梯度)的思想。

二、循环神经网络

RNN中一些重要的设计模式:

  • 每个时间步都有输出,并且隐藏单元之间有循环连接的循环网络;
  • 每个时间步都产生一个输出,只有当前时刻的输出到下个时刻的隐藏单元之间有循环连接的循环网络;
  • 隐藏单元之间存在循环连接,但读取整个序列后产生单个输出的循环网络。

三、双向RNN

双向 RNN 结合时间上从序列起点开始移动的 RNN 和另一个时间上从序列末尾开始移动的 RNN。
在这里插入图片描述

四、基于编码-解码的序列到序列架构

  • 编码器(encoder)或读取器 (reader) 或输入 (input) RNN 处理输入序列。编码器输出上下文 C C C(通常是最终隐藏状态的简单函数)。
  • 解码器(decoder)或写入器(writer) 或输出 (output) RNN 则以固定长度的向量为条件产生输出序列 Y = ( y ( 1 ) , ⋯   , y ( n y ) ) Y = (y^{(1)},\cdots, y^{(n_y)}) Y=(y(1),,y(ny))

在这里插入图片描述

五、深度循环网络

大多数 RNN 中的计算可以分解成三块参数及其相关的变换:

  1. 从输入到隐藏状态;
  2. 从前一隐藏状态到下一隐藏状态;
  3. 从隐藏状态到输出。

六、递归神经网络

递归神经网络代表循环网络的另一个扩展,它被构造为深的树状结构而不是 RNN 的链状结构,因此是不同类型的计算图。

七、长期依赖的挑战

  • RNN 梯度消失
  • RNN 梯度爆炸

八、回声状态网络

如何设置输入和循环权重才能让一组丰富的历史可以在循环神经网络的状态中表示?储层计算研究给出的答案是将循环网络视为动态系统,并设定让动态系统接近稳定边缘的输入和循环权重。

九、渗漏单元和其他多时间尺度的策略

处理长期依赖的一种方法是设计工作在多个时间尺度的模型,使模型的某些部分在细粒度时间尺度上操作并能处理小细节,而其他部分在粗时间尺度上操作并能把遥远过去的信息更有效地传递过来。存在多种同时构建粗细时间尺度的策略。这些策略包括在时间轴增加跳跃连接,“渗漏单元’’ 使用不同时间常数整合信号,并去除一些用于建模细粒度时间尺度的连接。

十、长短期记忆和其他门控RNN

像渗漏单元一样,门控 RNN 想法也是基于生成通过时间的路径,其中导数既不消失也不发生爆炸。渗漏单元通过手动选择常量的连接权重或参数化的连接权重来达到这一目的。门控 RNN 将其推广为在每个时间步都可能改变的连接权重。

  • LSTM
  • GRU

十一、优化长期依赖

设计一个易于优化模型通常比设计出更加强大的优化算法更容易。

  • 截断梯度
  • 引导信息流的正则化

十二、外显记忆

智能需要知识并且可以通过学习获取知识,这已促使大型深度架构的发展。然而,知识是不同的并且种类繁多。神经网络擅长存储隐性知识,但是他们很难记住事实。被存储在神经网络参数中之前,随机梯度下降需要多次提供相同的输入,即使如此,该输入也不会被特别精确地存储。

记忆网络(memory network)包括一组可以通过寻址机制来访问的记忆单元。每个记忆单元可以被认为是 LSTM 和 GRU 中记忆单元的扩展。

循环神经网络提供了将深度学习扩展到序列数据的一种方法。

下一章传送门:花书读书笔记(十)-实践方法论

猜你喜欢

转载自blog.csdn.net/qq_41485273/article/details/113048922