A Sensitivity Analysis of (aConvolutional Neural Networks for Sentence C

最近读了论文“A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification”
里面介绍的是用CNN做句子分类的时候的一些经验。这里就简洁地总结一下这篇论文的主要内容。
在CNN模型中,超参数主要有词向量,Region Size的大小,Feature Map的数量,激活函数的选择,Pooling的方法,正则化的影响

词向量

词向量有两种表达,一种事one-hot表示,但是这种方式忽略了词语词之间的关联性,在句子分类的时候效果也往往不好。另一种就是Distribution Representation ,关于Distribution Representation可以用两种训练方法,一种,一种事word2vector,另一种是Glove。这两种都是比较好的方法, 而且效果上都差不多。

Region Size

对不同的数据,都有不同的最优Region Size,我们往往会组合不同size的Region来进行融合,而且经验表明,组合的size跟最优size的越接近,最终的效果往往会更好。而且并不是说,一定要所有的size都是要最优size。
所以刚开始,我们可以只用一个filter,调节Region Size来比对各自的效果,来看看那种size有最好的表现,然后在这个范围在调节不同Region的匹配。

Feature Map的数量

在论文中作者提到Feature Map的数量一旦超过600,效果就会变得不好。作者的建议是Feature Map的数量控制在100-600

激活函数

作者比对了多种不同的激活函数,最终的结论是Relu函数,tanh函数,以及不加任何激活函数的表达都是不错的。

Pooling方法

推荐1-max 方法

Regularization

drop-out 设置在 0.0-0,5
l2 norm constrain对性能几乎没有帮助,所以这里建议设置一个比较大的l2 norm constrain
以上就是大概的对各种参数调节的一些经验方法。

你可能感兴趣的:(深度学习)