Multiplicative Integration RNN-NIPS16 (1)

2016 年 12 月 10 日 KingsGarden Mr. King

On Multiplicative Integration with Recurrent Neural Networks

Authors: Y. Wu, S.Zhang, Y. Zhang, Y. Bengio and R. Salakhutdinov


前言 趁着远在西班牙的余温,在ICML的阅读周期内插入这篇被推荐阅读的文章,之所以想谈谈这篇文章的原因有31)文章的思路简洁明了,具有比较强的启发性;2)文章工作的完成度并不高,可以估计还会有后续工作进行探讨;3)这是一篇反常规的NIPS论文。接下来,带着这三个我的个人观点来看看这篇文章到底说了什么。


1 主要贡献和动机



文章的主要贡献可以用一句话概括:RNN中的加性结构改为乘性结构。在加性结构中,RNN激活函数的形式为:,其中x为输入,z为上一状态的输出(LSTMz为上一状态的隐层输出和记忆单元输出的联合;GRUz为上一状态隐层输出),WU表示对应的参数矩阵。修改后的乘性结构(MI-RNNMultiplicativeIntegration RNN)中,MI-RNN激活函数形式为:,其中⊙是矩阵的Hadamard积。

改为乘积形式的主要好处是什么?在加性结构中,WxUz相互独立,这会使得优化过程可能被其中的某一项(数值较大的)所主导。而在乘性模型中,WxUz能够起到相互调节(rescale)的作用。尤其是在进行梯度优化时,在适当的条件下乘性模型还可以起到避免梯度消失或者爆炸的作用。另外,泛化的乘性模型可以看做是早原加性模型中引入二阶项的形式,在不增加参数的情况下提高了模型的复杂程度。


2 乘性结构的泛化及其梯度



将乘性结构进行泛化,其形式为:

 

这个形式可以看作是更为一般化的展开(当α=1时)。当取α=0时,这种一般化的乘性结构即为原RNN的加性模型形式。

考虑乘性模型的隐层输出,根据链式法则求偏导得:

其中。对比加性模型的隐层输出,其偏导

其中。可以发现,在乘性模型隐层偏导形式中增加了diag(Wxk)项(泛化的乘性结构中该项为diag(αWxk+β1)),可以用来调制梯度,类似于RNN中门的作用,将输入直接作用于隐层的更新。


3 实验



作者用了大量篇幅的实验工作来验证MI-RNN的性能。我节选一些重要的实验结果加以说明:

a   梯度性质

作者选用tanh作为隐层的激活函数,在Penn-Treebank数据集上进行验证,并将收敛后各隐层的激活函数的数值分布展示于图 1中。可以看到在实际运行中,乘性模型相比加性模型更不容易使激活函数达到饱和状态(tanh=±1)。当激活函数达到饱和状态时,梯度值趋近于0),模型停止更新。

1a)加性结构RNN隐层输出的值分布;(b)乘性结构RNN隐层输出的值分布


b   参数W的初始化范围

加性模型的另一个问题是当WxkUhk-1的数值大小不均衡时,容易导致优化会向数值较大的方向偏移。这个问题当输入xkone hot表达时有更大几率发生,此时Wxk会明显小于Uhk-1,从而导致输入项很难起到作用。针对这一问题作者在实验部分,固定了参数矩阵U的初始化范围为[-0.02,0.02],调整参数矩阵W(输入相关)的初始化范围[-rw, rw]rw的数值从集合{0.02,0.1,0.3,0.6}中挑选,从表1可以看到相对于RNN,MI-RNN的性能受W初始化范围的影响很小。

1 参数W的初始化范围对模型perplexity结果的影响

rw=

  1. 0.02

  1. 0.1

  1. 0.3

  1. 0.6

Std

RNN

  1. 1.69

  1. 1.65

  1. 1.57

  1. 1.54

  1. 0.06

MI-RNN

  1. 1.39

  1. 1.40

  1. 1.40

  1. 1.41

  1. 0.08


c   收敛速度及效果

在收敛速度上,作者比较了vanilla-RNN常规的RNN),MI-RNN-simpleMI-RNN-general(泛化的乘性模型)三者在训练过程中在validation set上的表现情况。从图 2可以看到,MI-RNN-general的收敛速度最快,并且MI-RNN-simpleMI-RNN-general的收敛速度明显优于vanilla-RNN。从所选用Penn-Treebanktext8以及HutterWikipedia的数据集上的表现结果来看,MI-RNN也有较为明显的提升。

2模型的收敛速度比较


d 其他应用

在其他的应用领域,文中选用了语音识别,短语的表达学习以及语义理解三个应用场景。在这三个应用场景中,作者说明了MI-RNN同样适用于模型融合,结合其他RNN结构(例如,Skip-Thought model),甚至可以结合目前已有的RNN训练方法(例如,Reccurent Batch-Normalization),并且能够得到效果的提升。




总结 文章的最后引述了Hidden Markov Model的例子用来认识乘性模型。令Uij=Pr[ht+1=i | ht=j], Wij=Pr[xt=i | ht=j], xtone hot向量,ht=Pr[ht],则Wxt=Pr[xt | ht=j], Uht=Pr[x1, …, xt, ht+1]。因此ht+1=Wxt+1Uht= Pr[xt | ht=j] Pr[x1, …, xt, ht+1]=Pr[x1, …, xt+1, ht+1]。当激活函数为Φ为线性时,MI-RNN可以被视为HMM在非线性情况下的扩展。另外,泛化的乘性模型可以看做是增加了二阶特征组合的加性模型的扩展。因此可以预见乘性模型对于加性模型的效果提升。

可以看到整篇文章在模型和理论部分论述的篇幅非常简单,取而代之的是大量篇幅的实验描述,这就是我所说的反NIPS论文常规现象之一。文章最大的疑问之处在于个人觉得乘性模型在理论上存在一定的适用范围,不恰当的参数初始化可能会使得乘性模型对比加性模型更不稳定,关于这一点很有可能会在不久的将来得到解答。




登录查看更多
0

相关内容

RNN:循环神经网络,是深度学习的一种模型。
【ICML2020-华为港科大】RNN和LSTM有长期记忆吗?
专知会员服务
74+阅读 · 2020年6月25日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
神经网络的拓扑结构,TOPOLOGY OF DEEP NEURAL NETWORKS
专知会员服务
31+阅读 · 2020年4月15日
注意力机制介绍,Attention Mechanism
专知会员服务
168+阅读 · 2019年10月13日
撩一发深度文本分类之RNN via Attention
AINLP
7+阅读 · 2019年1月27日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
递归神经网络
Datartisan数据工匠
4+阅读 · 2018年8月2日
论文共读 | Attention is All You Need
黑龙江大学自然语言处理实验室
14+阅读 · 2017年9月7日
【深度学习基础】4. Recurrent Neural Networks
微信AI
16+阅读 · 2017年7月19日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
RNN | RNN实践指南(3)
KingsGarden
7+阅读 · 2017年6月5日
RNN | RNN实践指南(2)
KingsGarden
19+阅读 · 2017年5月4日
RNN | RNN实践指南(1)
KingsGarden
21+阅读 · 2017年4月4日
Area Attention
Arxiv
5+阅读 · 2019年5月23日
Arxiv
6+阅读 · 2019年3月19日
Arxiv
6+阅读 · 2018年5月22日
VIP会员
相关资讯
撩一发深度文本分类之RNN via Attention
AINLP
7+阅读 · 2019年1月27日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
递归神经网络
Datartisan数据工匠
4+阅读 · 2018年8月2日
论文共读 | Attention is All You Need
黑龙江大学自然语言处理实验室
14+阅读 · 2017年9月7日
【深度学习基础】4. Recurrent Neural Networks
微信AI
16+阅读 · 2017年7月19日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
RNN | RNN实践指南(3)
KingsGarden
7+阅读 · 2017年6月5日
RNN | RNN实践指南(2)
KingsGarden
19+阅读 · 2017年5月4日
RNN | RNN实践指南(1)
KingsGarden
21+阅读 · 2017年4月4日
Top
微信扫码咨询专知VIP会员