RNN:什么时候应用BPTT和/或更新权重?


15

我正在尝试通过Graves于2005年发表的有关音素分类的论文来理解RNN在序列标记上的高级应用

总结问题:我们有一个庞大的训练集,包括(输入)单个句子的音频文件和(输出)专家标记的各个音素的开始时间,停止时间和标签(包括一些“特殊”音素,例如静默,以便每个音频文件中的每个样本都标有一些音素符号。)

本文的重点是在隐藏层中应用带有LSTM存储单元的RNN。(他使用了几种变体和几种其他技术作为比较。为了使事情简单,我目前仅对单向LSTM感兴趣。)

我相信我了解网络的体系结构:对应于10毫秒音频文件窗口的输入层,以音频工作的标准方式进行了预处理;LSTM单元的隐藏层,以及对所有可能的61个电话符号进行一键编码的输出层。

我相信我了解通过LSTM单元的向前通过和向后通过的(复杂但直接)的方程式。它们只是微积分和链式规则。

在几次阅读本文和几篇类似文章之后,我不明白的是何时确切地应用反向传播算法,何时确切地更新神经元中的各种权重。

存在两种可能的方法:

1)逐帧反向传播和更新

Load a sentence.  
Divide into frames/timesteps.  
For each frame:
- Apply forward step
- Determine error function
- Apply backpropagation to this frame's error
- Update weights accordingly
At end of sentence, reset memory
load another sentence and continue.

要么,

2)逐句反向传播和更新:

Load a sentence.  
Divide into frames/timesteps.  
For each frame:
- Apply forward step
- Determine error function
At end of sentence:
- Apply backprop to average of sentence error function
- Update weights accordingly
- Reset memory
Load another sentence and continue.

请注意,这是一个有关使用Graves论文(与个人相关)的RNN训练的一般问题:在序列上训练RNN时,是否在每个时间步都应用了反向传播?每个时间步均调整重量吗?或者,类似于严格前馈体系结构上的批量训练,是否在应用反向传播和权重更新之前在特定序列上累积并平均了误差?

还是我比我想象的还要困惑?

Answers:


25

我假设我们正在谈论的是递归神经网络(RNN),它在每个时间步都会产生输出(如果输出仅在序列的末尾可用,则仅在末尾运行反向传播才有意义)。在这种情况下,经常使用时间的截短反向传播(BPTT)对RNN进行训练,并按序列的“块”顺序进行操作。该过程如下所示:

  1. 直传:通过下一步骤的时间步长,计算输入,隐藏,和输出状态。k1
  2. 计算损失,以先前的时间步长求和(见下文)。
  3. 向后通:计算损失WRT所有参数,累积比上的梯度个时间步(这需要具有存储这些时间步所有的激活)。裁剪渐变以避免爆炸的渐变问题(很少发生)。k2
  4. 更新参数(每个块一次,而不是每个时间步长递增一次)。
  5. 如果处理较长序列的多个块,请在最后一个时间步存储隐藏状态(将用于初始化下一个块开始的隐藏状态)。如果我们已到达序列的末尾,请重置内存/隐藏状态,然后移至下一个序列的开始(如果只有一个,则移至同一序列的开始)。
  6. 从步骤1开始重复。

k1k2k1=k2k1=k2k2>k1

k1k1

k2k2k2时间步长是因为隐藏的单位可以在此期间之外存储信息(例如,请参见Mikolov 2012和此帖子)。

k1k2

k11k2k1k2k1k2有可能 我将在下面列出一些示例。

描述截断的BPTT的参考资料(过程,动机,实际问题):

  • Sutskever(2013)。训练递归神经网络。
  • 米科洛夫(2012)。基于神经网络的统计语言模型。
    • k1k2
    • k1
    • 每个块执行一次更新要好于增量执行(这可能很不稳定)
  • 威廉姆斯和彭(1990)。一种有效的基于梯度的递归网络轨迹在线训练算法。
    • 算法的原始(?)建议
    • k1k2hhk2k1
    • k1=1

使用截断的BPTT的其他示例:


这是一个很好的答案,我希望我能在这个论坛上有一个突出的赏识。特别有用的是关于k1 vs k2的具体讨论,以将我的两种情况与更一般的用法相对应,以及相同的数字示例。
Novak
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.