TextCNN(个人笔记)

1.TextCNN结构图

2.优化参数

TextCNN模型中,超参数主要有词向量,Region Size的大小,Feature Map的数量,激活函数的选择,Pooling的方法,正则化的影响。《A Sensitivity Analysis...》论文前面几章对实验内容和结果进行了详细介绍,在9个数据集上基于Kim Y的模型做了大量的调参实验,得出AUC进行比较,根据的实验对比:

1)初始化词向量:一般不直接使用One-hot。除了随机初始化Embedding layer的外,使用预训练的word2vec、 GloVe初始化的效果都更加好(具体哪个更好依赖于任务本身)。非静态的比静态的效果好一些。

2)卷积核的尺寸filter_sizes:影响较大,通常过滤器的大小范围在1-10之间,一般取为3-5,对于句子较长的文本(100+),则应选择大一些。为了找到最优的过滤器大小(Filter Region Size),可以使用线性搜索的方法。对不同尺寸ws的窗口进行结合会对结果产生影响。当把与最优ws相近的ws结合时会提升效果,但是如果将距离最优ws较远的ws相结合时会损害分类性能。刚开始,我们可以只用一个filter,调节Region Size来比对各自的效果,来看看那种size有最好的表现,然后在这个范围在调节不同Region的匹配。

3)卷积核的数量num_filters(对每个巻积核尺寸来说):有较大的影响,一般取100~600(需要兼顾模型的训练效率) ,同时一般使用Dropout(0~0.5)。最好不要超过600,超过600可能会导致过拟合。可设为100-200。

4)激活函数:可以尽量多尝试激活函数,实验发现ReLU和tanh两种激活函数表现较佳。

5)池化选择:1-max pooling(1-max pooling的方式已经足够好了,相比于其他的pooling方式而言)。

6)Dropout和正则化:Dropout rate / dropout_keep_prob:dropout一般设为0.5。随着feature map数量增加,性能减少时,可以考虑增大正则化的力度,如尝试大于0.5的Dropout。

   正则化的作用微乎其微,正则项对最终模型性能的影响很小。l2正则化效益很小,所以这里建议设置一个比较大的L2 norm constrain,相比而言,dropout在神经网络中有着广泛的使用和很好的效果。

7)为了检验模型的性能水平,多次反复的交叉验证是必要的,这可以确保模型的高性能并不是偶然。

8) 随机性影响:由于模型训练过程中的随机性因素,如随机初始化的权重参数,mini-batch,随机梯度下降优化算法等,造成模型在数据集上的结果有一定的浮动,如准确率(accuracy)能达到1.5%的浮动,而AUC则有3.4%的浮动。

其它的训练参数:batch_size:64;num_epochs:10;每checkpoint_every:100轮便保存模型;仅保存最近num_checkpoints:5次模型
 

参考博客:https://blog.csdn.net/pipisorry/article/details/85076712

你可能感兴趣的:(大数据,机器学习,NLP)