序列建模之循环和递归网络 - 渗漏单元和其他多时间尺度的策略篇

138 篇文章 1 订阅
98 篇文章 0 订阅

序言

在序列建模的广阔领域中,循环神经网络( RNN \text{RNN} RNN)及其变体如长短期记忆网络( LSTM \text{LSTM} LSTM)和门控循环单元( GRU \text{GRU} GRU)占据了核心地位。然而,这些网络在处理长期依赖问题时常常面临挑战,如梯度消失或爆炸。为了克服这些难题,研究者们提出了多种策略,其中渗漏单元( Leaky Units \text{Leaky Units} Leaky Units)和多时间尺度策略尤为引人注目。这些策略旨在通过调整网络结构或单元行为,使信息能够在不同时间尺度上有效传递,从而增强网络对长期依赖的捕捉能力。

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

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

时间维度的跳跃连接

  • 增加从遥远过去的变量到目前变量的直接连接是得到粗时间尺度的一种方法。使用这样跳跃连接的想法可以追溯到 Lin et al. (1996) \text{Lin et al. (1996)} Lin et al. (1996),紧接是向前馈网络引入延迟的想法 ( Lang and Hinton, 1988 \text{Lang and Hinton, 1988} Lang and Hinton, 1988)。在普通的循环网络中,循环从时刻 t t t 的单元连接到时刻 t + 1 t + 1 t+1 单元。构造较长的延迟循环网络是可能的 ( Bengio et al., 1991 \text{Bengio et al., 1991} Bengio et al., 1991)。
  • 正如我们在神经网络优化中的挑战篇 - 长期依赖中看到,梯度可能关于时间步数数消失或成倍爆炸。
    • ( Lin et al., 1996 \text{Lin et al., 1996} Lin et al., 1996) 引入了 d d d 延时的循环连接以减轻这个问题。
    • 现在导数指数减小的速度与 τ d \displaystyle\frac{\tau}{d} dτ相关而不是 τ \tau τ
    • 既然同时存在延迟和单步连接,梯度仍可能成 t t t 指数爆炸。
    • 这允许学习算法捕获更长的依赖性,但不是所有的长期依赖都能在这种方式下良好地表示。

渗漏单元和一系列不同时间尺度

  • 获得导数乘积接近 1 1 1 的另一方式是设置线性自连接单元,并且这些连接的权重接近 1 1 1
  • 我们对某些 v v v 值应用更新 μ ( t ) ← α μ ( t − 1 ) + ( 1 − α ) v ( t ) \mu^{(t)}\gets\alpha\mu^{(t-1)}+(1-\alpha)v^{(t)} μ(t)αμ(t1)+(1α)v(t) 累积一个滑动平均值 μ ( t ) \mu^{(t)} μ(t),其中 α \alpha α 是一个从 μ ( t − 1 ) \mu^{(t-1)} μ(t1) μ ( t ) \mu^{(t)} μ(t) 线性自连接的例子。
    • α \alpha α 接近 1 1 1 时,滑动平均值能记住过去很长一段时间的信息,
    • 而当 α \alpha α 接近 0 0 0,关于过去的信息被迅速丢弃。
    • 线性自连接的隐藏单元可以模拟滑动平均的行为。这种隐藏单元称为渗漏单元 ( leaky unit \text{leaky unit} leaky unit)。
  • d d d 时间步的跳跃连接可以确保单元总能被先前的 d d d 个时间步值影响。使用权重接近 1 1 1 的线性自连接是确保该单元可以访问过去值的不同方式。线性自连接通过调节实值 α \alpha α 更平滑灵活地调整这种效果,而不是调整整数值的跳跃长度。
  • 这个想法由 Mozer (1992) \text{Mozer (1992)} Mozer (1992) El Hihi and Bengio (1996) \text{El Hihi and Bengio (1996)} El Hihi and Bengio (1996) 提出。在回声状态网络中,渗漏单元也被发现很有用 ( Jaeger et al., 2007 \text{Jaeger et al., 2007} Jaeger et al., 2007)。
  • 我们可以通过两种基本策略设置渗漏单元使用的时间常数。
    • 一种策略是手工将其固定为常数,例如在初始化时从某些分布采样它们的值。
    • 另一种策略是使时间常数成为自由变量,并学习出来。在不同时间尺度使用这样的渗漏单元似乎能帮助学习长期依赖( Mozer, 1992; Pascanu et al., 2013a \text{Mozer, 1992; Pascanu et al., 2013a} Mozer, 1992; Pascanu et al., 2013a)。

删除连接

  • 处理长期依赖另一种方法是在多个时间尺度组织 RNN \text{RNN} RNN状态的想法 ( El Hihi and Bengio, 1996 \text{El Hihi and Bengio, 1996} El Hihi and Bengio, 1996),信息在较慢的时间尺度上更容易长距离流动。
  • 这个想法与之前讨论的时间维度上的跳跃连接不同,因为它涉及主动删除长度为一的连接并用更长的连接替换它们。
    • 以这种方式修改的单元被迫在长时间尺度上运作。
    • 而通过时间跳跃连接是添加边。
    • 收到这种新连接的单元,可以学习在长时间尺度上运作,但也可以选择专注于自己其他的短期连接。
  • 强制一组循环单元在不同时间尺度上运作有不同的方式。
    • 一种选择是使循环单元变成渗漏单元,但不同的单元组关联不同的固定时间尺度。这由 Mozer (1992) \text{Mozer (1992)} Mozer (1992)提出,并被成功应用于 Pascanu et al. (2013a) \text{Pascanu et al. (2013a)} Pascanu et al. (2013a)
    • 另一种选择是使显式且离散的更新发生在不同的时间,不同的单元组有不同的频率。这是 El Hihi and Bengio (1996) \text{El Hihi and Bengio (1996)} El Hihi and Bengio (1996) Koutnik et al. (2014) \text{Koutnik et al. (2014)} Koutnik et al. (2014) 的方法。它在一些基准数据集上表现不错。

总结

  • 渗漏单元作为一种重要的多时间尺度策略,通过引入线性自连接并允许权重接近 1 1 1,模拟了滑动平均行为,使得信息能够在较长时间内保持流动。
  • 此外,结合不同时间尺度的策略,如增加跳跃连接、使用不同时间常数的渗漏单元等,进一步增强了网络处理长期依赖的能力。这些策略不仅丰富了循环神经网络的工具箱,也为解决序列建模中的长期依赖问题提供了新的思路。
  • 在实际应用中,这些策略已被证明是有效的,特别是在自然语言处理、语音识别等领域取得了显著成果。
  • 未来,随着研究的深入,我们期待看到更多创新的多时间尺度策略涌现,进一步推动序列建模技术的发展。

往期重要内容回顾

深度模型中的优化 - 神经网络优化中的挑战篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绎岚科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值