《深度学习》花书 - 第十章 序列建模:循环和递归网络

10 序列建模:循环和递归网络

卷积网络
专门用于处理网格化数据 X X X(如一个图像)的神经网络。
可以很容易地扩展到具有很大宽度和高度的图像,以及处理大小可变的图像。

循环神经网络( recurrent neural network)
是专门用于处理序列 x ( 1 ) , . . . , x ( τ ) x^{(1)},..., x^{(τ)} x(1),...,x(τ) 的神经网络。
可以扩展到更长的序列(比不基于序列的特化网络长得多),大多数也能处理可变长度的序列。

RNN的出现
从多层网络出发到循环网络,我们需要利用上世纪 80 年代机器学习和统计模型早期思想的优点:在模型的不同部分共享参数。 参数共享使得模型能够扩展到不同形式的样本(这里指不同长度的样本)并进行泛化。如果我们在每个时间点都有一个单独的参数,我们不但不能泛化到训练时没有见过序列长度,也不能在时间上共享不同序列长度和不同位置的统计强度。当信息的特定部分会在序列内多个位置出现时,这样的共享尤为重要。

例子
例如,考虑这两句话: “I went to Nepal in 2009’’ 和“In 2009, I went to Nepal.” 如果我们让一个机器学习模型读取这两个句子,并提取叙述者去Nepal的年份,无论 “2009 年’’ 是作为句子的第六个单词还是第二个单词出现,我们都希望模型能认出 “2009 年’’ 作为相关资料片段。

假设我们要训练一个处理固定长度句子的前馈网络。传统的全连接前馈网络会给每个输入特征分配一个单独的参数,所以需要分别学习句子每个位置的所有语言规则。相比之下, 循环神经网络在几个时间步内共享相同的权重,不需要分别学习句子每个位置的所有语言规则。

时延神经网络的“参数共享”
Related Work 时延神经网络的基础是在 1 维时间序列上使用卷积。卷积操作允许网络跨时间共享参数,但是浅层的。卷积的输出是一个序列,其中输出中的每一项是相邻几项输入的函数。 参数共享的概念体现在每个时间步中使用的相同卷积核。
循环神经网络的“参数共享”
循环神经网络以不同的方式共享参数。输出的每一项是前一项输出的函数。输出的每一项对先前的输出应用相同的更新规则而产生。这种循环方式导致参数通过很深的计算图共享。

为简单起见,我们说的 RNN 是指在序列上的操作,并且该序列在时刻 t t t(从1 到 τ τ τ)包含向量 x ( t ) x^{(t)} x(t)。时间索引不必是字面上现实世界中流逝的时间,有时它仅表示序列中的位置。 R N N RNN RNN 也可以应用于跨越两个维度的空间数据(如图像)。当应用于涉及时间的数据,并且将整个序列提供给网络之前就能观察到整个序列时,该网络可具有关于时间向后的连接。

10.1 展开计算图

计算图是形式化一组计算结构的方式。本节,我们对展开(unfolding)递归或循环计算得到的重复结构进行解释,这些重复结构通常对应于一个事件链。 展开(unfolding)这个计算图将导致深度网络结构中的参数共享。

动态系统

  • 例如,考虑动态系统的经典形式:
    s ( t ) = f ( s ( t − 1 ) ; θ ) \boldsymbol{s}^{(t)} =f(\boldsymbol{s}^{(t-1)};\boldsymbol{\theta}) s(t)=f(s(t1);θ)
    s s s 在时刻 t t t 的定义需要参考时刻 t − 1 t − 1 t1 时同样的定义,因此上式是循环的。

    假设时间步=3,展开得:
    s ( 3 ) = f ( s ( 2 ) ; θ ) = f ( f ( s ( 1 )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值