怎样评价IndRNN模型( 四 )



个人心得论文里将层内神经元独立开来的想法虽然看似简单,但要想出来还真的不容易。本文为理解 RNN 提供了一个新的角度,也让 RNN 单个神经元行为的解释变得可行。此外,Relu 函数的使用也使得 RNN 堆叠结构成为可能。
从实验结果来看,IndRNN 带来的效果提升都比较显著。但有一点是,Relu 函数可能会输出 0,在序列数据里意味着之前的历史信息全部丢弃。是否换成 Leaky Relu 会更好一点?
查看完整论文解读:
新型RNN:将层内神经元相互独立以提高长程记忆 | CVPR 2018论文解读

■网友
有IndRNN就一定会有KernelRNN:每个神经元只和前一个时间步的k个神经元相连,也就是类似Conv1D的连接方式;还可以有ResRNN:每个神经元和前一个时间步的同一神经元通过f(x)+x的方式相连接;还可以有DenseRNN、DualRNN、PoolingRNN……总之所有可以用在CNN上的技术都可以elementwise的(之前是layerwise或者stepwise)用在RNN上了
■网友
先简单码一点占个空。
IndRNN相对传统的RNN和LSTM,其主要优势在于:
1,可以有效地使用relu等激活函数。
2,有效地解决了梯度衰减和梯度爆炸问题,所以可以训练很长的序列。
3,可以叠加很多层,训练很深的网络。
论文里给了4个实验,其中前3个是验证性实验,分别证明可以处理长序列和可以有效训练深层网络。第4个实验是基于骨骼的动作识别,是比较大型的实用任务。使用的数据库是NTU RGB+D的数据库,是目前为止最大的基于骨骼的动作识别数据库。有56880个序列,分散在60个动作类别里面。结果表示IndRNN的performance远超过现有的RNN和LSTM。
网上代码已经有很多。可以参考:
Sunnydreamrain/IndRNN_Theano_Lasagnebatzner/indrnn使用过程中有一些注意事项,已经列在上面第一个参考代码里面。主要包括初始化和限制recurrent weight,以及BN的应用。

■网友
我用tensorflow平台在NTU 大数据库上验证了IndRNN模型的可用性,能够达到作者差不多的准确率,如果效果不好,一定要看作者的文章和Github,调节初始参数和一些细节,很重要!我是在tensorlayer里面写的 如果需要,可以联系我。

■网友
在小型的数据集上面有用,在大型的数据集上面收敛比较快,效果比较差

■网友
batchnormalization把要变成零的梯度又给拉回来了,因为sigmoid(或者其它激活函数)的导数乘太多次以后(很多timestep后)会逼近0,作者把cnn里常用的normalize方法拿来,想法很赞!
■网友
正在和sru做细致对比ing,思路有点相近
■网友

怎样评价IndRNN模型


怎样评价IndRNN模型


怎样评价IndRNN模型

【怎样评价IndRNN模型】 看这结果论述 和表格论述,像谁? TCN。。(某种卷积网络,跟indrnn一样,也是过来踩LSTM的,其实看结果我觉得一般。。。)


推荐阅读