作者:Junyoung Chung, Sungjin Ahn & Yoshua Bengio
论文获取:https://arxiv.org/abs/1609.01704
这篇提出的分层多尺度递归神经网络(HM-RNN),主要是从具有时间信息的原始数据中学习到层次结构而不用人为设置显式边界信息,也就是说提出的这个模型可以自适应时间尺度。
摘要:在本文中,我们提出了一种新的多尺度方法,称为分层多尺度递归神经网络,它可以通过编码时间依赖关系,来捕捉序列中潜在的层次结构。这种时间依赖关系使用一种新的更新机制使其具有不同时间尺度。我们证明了所提出的模型可以在没有使用显式边界信息发现序列底层的层次结构。
接触递归神经网络以来,也看了很多这方面的论文,在做预测方面的时候,时间信息很重要,貌似现在有关研究多尺度递归神经网络的很多,但是,有关这个“多尺度”,甚至“多时间尺度(multiple-timescale)”概念好模糊~~
后期明白了,再回来填坑。。。
多尺度递归神经网络的优点
- 通过较少更新高级层获得的计算效率;
- 缓解梯度消失问题;
- 灵活的资源分配(例如,更多的隐藏单元到更高的层,重点是建模长期依赖关系,而较少的隐藏单元到低层负责学习短期依赖)。
HM-RNN
相比于CW-RNN,HM-RNN不需要设置固定更新频率而是根据不同层级自适应决定更新时间,低层学习精细时间尺度,高层学习粗略时间尺度。
为达到以上目的并且考虑计算效率,HM-RNN在每一层引进二进制边界探测器,只有在完全处理相应抽象级别(比如字符级别、单词级别或者短语级别)的段的时间步骤时才打开边界检测器。 否则,即在内部段处理期间,它呈现关闭状态。分层边界状态与三个操作,UPDATE、COPY和FLUSH有关,在每个时间步骤中选择其中一个操作。
UPDATE:与LSTM的更新操作相似。但是UPDATE操作是根据边界状态稀疏执行的。
COPY:操作简单复制前一个时间步的cell和隐藏状态。(类似于Zoneout,以后补^^)
FLUSH:当检测到边界时执行FLUSH操作,其中它首先将当前段的汇总表示注入上层,然后重新初始化状态以启动处理下一个片段。
UPDATE,COPY或FLUSH的选择由(1) z t l − 1 z^{l-1}_t ztl−1以下的层中当前时间步的边界状态和(2)同一层 z t − 1 l z^l_{t-1} zt−1l中上一个时间步的边界状态确定。
基于LSTM更新规则的分层多尺度LSTM,共有L层( l = 1 , . . . , L l=1,...,L l=1,...,L),在每一层 l l l每一步更新有:
h t l , c t l , z t l = f H M − L S T M l ( c t − 1 l , h t − 1 l , h t l − 1 , h t − 1 l + 1 , z t − 1 l , z t l − 1 ) ( 1 ) h^l_t,c^l_t,z^l_t=f^l_{HM-LSTM}(c^l_{t-1},h^l_{t-1},h^{l-1}_t,h^{l+1}_{t-1},z^l_{t-1},z^{l-1}_t)(1) htl,ctl,ztl=fHM−LSTM