论文解读:文本分类神经网络超参数调参

针对文本分类问题,作者在这篇论文里,详细讲解了如何对神经网络进行调参。论文主要内容如下。

1.论文背景

CNN已经广泛应用于文本分类任务中,但是训练模型需要精通模型结构,以及如何进行调参,包括filer的大小,正则化参数等等。而且模型的性能对参数非常敏感。这篇论文主要研究的是,单层神经网络调参。因为对于很多问题,单层CNN已经足够应对。作者最后给出了关于调参的实际建议。

2. Baseline模型

2.1 非NN模型:

首先比较了常用的非NN模型,包括线性kernel SVM模型,使用uni和bi-gram特征。然后比较了word2Vec和GloVe词向量,以及将二者组合,和RBF-kernel 的SVM模型。不同的模型比较结构如下图所示。
在这里插入图片描述

2.1 NN模型:

作者首先给出了一个NN baseline模型,在此的基础上进行调参。
在这里插入图片描述

3. 调参

3.1 词向量的影响:

比较了两种常用的词向量:word2vec和GloVe。词向量可以训练为动态(Non-static),否则为静态(static)。Non-static 均超过staic模型,所以在此只比较non-static模型。比较结果如下所示。
在这里插入图片描述

结论:Non-static word2vec-CNN表现最好.

3.2 filter大小的影响:

filter的大小起到非常大的作用,这是以前所没想到的。
在这里插入图片描述
从实验结果看出,filer size=7的时候表现最好,同时作者建议,对于更长的文本,可以尝试更大的filter。
多个filter相组合可以得到比单层CNN更好的结果。
在这里插入图片描述

结论:首先找到单层最佳的filter大小,建议范围1-10。最佳大小附近的几个数值相互组合能提高性能。

3.3 feature map数量的影响:

对于不同的数据集,feature map的最优数量差别很大,此处仅给出作者的实验结果,具体还有根据实际调参。作者实验的范围:10, 50, 100, 200, 400, 600, 1000,2000。

结论:根据实验结果而定,建议范围100-600。

3.4 激活函数的影响:

可供选择的激活函数有,ReLU,tanh,Sigmoid,SoftPlus。平常只用ReLU,可以尝试tanh。
在这里插入图片描述
结论:大部分情况下tanh,ReLU表现最好。

3.5 池化(pooling)的影响:

作者尝试了多种方法,包括:k-max(选取最大的k个值),平均池化等等。

结论:1-max pooling表现最好

3.6 正则化(regularization)的影响:

首先比较了Dropout的影响,实验范围: 0.0-0.9。实验发现Dropout带来的效果很小,和常见的结论所违背,有可能是因为只有一层神经网络。深层网络可能会带来明显的影响。
在这里插入图片描述
然后比较了L2范数的影响。此处严重超出认知,L2竟然可以设置这么大。
在这里插入图片描述
结论:Dropout和L2能带来巨大的影响。Dropout建议范围:0-0.5。可尝试较大的L2标准化。

4. 结论

4.2 结论汇总:

  • 输入词向量的选择具有明显的影响,word2vec或者Glove均比单纯的onehot要好;
  • filter的大小影响巨大,应该调参;
  • feature maps的数量同样有小的影响;
  • 1-max pooling要比其他池化策略都好;
  • 归一化的影响很小。

4.1 调参步骤:

  1. 从baseline出发,使用non-static或者GloVe;
  2. 对filter size进行线性搜索直到找到最好的单个region size,过长文本可以尝试比较大的filter。一旦确定filter size,尝试多个filter并联;
  3. 从100到600调整feature maps的数量,使用比较小的Dropout rate(0.0–0.5),以及较大的L2 标准化;
  4. 考虑使用不同的激活函数,大部分情况下ReLU和tanh效果最好,可以尝试无激活函数;
  5. 使用1-max pooling;
  6. 当增加feature maps数量的时候,尝试增加归一化系数;

欢迎大家关注我们的公众号,或者加入我们社区。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/linxid/article/details/82903146
今日推荐