A Sensitivity Analysis of Convolutional Neural Networks for Sentence Classification之每日一篇


论文Convolutional neural networks for sentence classification,这篇文章已经介绍过了,它介绍了如何使用CNN做句子分类(文本分类);而本文主要介绍了用CNN做句子分类的时的一些经验,如何调节超参。

超参数包括:词向量,Region size大小,feature map的数量,**函,pooling,正则化的影响。

模型图:

A Sensitivity Analysis of Convolutional Neural Networks for Sentence Classification之每日一篇

词向量

词向量的表示形式主要有两种。1:one-hot表示;2:Distribution Representation。

one-hot不多说了,得到的是稀疏高维的向量。

Distribution Representation有两种训练方法:一种是word2vec,另一种是Glove。有实验表明这两种效果差不多,但是

个人感觉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 pooling方法效果比较好,作者推荐这种方法。

Regularization

dropout在0-0.5时的效果比较好。

l2 norm 对性能没有帮助,但是比较耗时,所以不建议使用。