听说你不会调参?TextCNN的优化经验Tricks汇总 (4)

参数调整:在实验四的基础上,在数据预处理的时候,随机去掉20%的A特征,相比baseline 提升0.28%, 并没有优于随机去掉10%,最终选择随机去掉10%A特征

实验六 随机去掉20% A 特征

 

修改内容

 

测试集acc

 

迭代步数

 

baseline diff

 

在数据增广的时候,设置概率值, 如果 随机数小于0.2就不输出A特征, 如果随机数高于该概率值就输出A 特征

 

85.42%

 

26w

 

+0.28%

 
优化实验七:随机去掉10%A特征,使用一致的特征抽取方式

参数调整:在实验四的基础上,我们分析了测试集合与训练集合特征抽取不一致的来源,统一来源,相比baseline 提升了0.64%

 

实验七 随机去掉10% A特征 使用一致的特征抽取方式

 

修改内容

 

测试集acc

 

迭代步数

 

baseline diff

 

在数据增广的时候,设置概率值, 如果 随机数小于0.1就不输出A特征, 如果随机数高于该概率值就输出A特征

 

85.78%

 

26w

 

+0.64%

 

 

优化实验八:随机去掉10% A 特征,使用一致的特征抽取方式,引入B特征

参数调整:在实验七的基础上,我们进一步分析出B特征对badcase 有很好的区分度,将B特征引入训练,相比baseline 提升了1.14%

 

实验八 随机去掉10% A 特征 使用一致的特征抽取方式,引入B特征

 

修改内容

 

测试集acc

 

迭代步数

 

baseline diff

 

在数据增广的时候,设置概率值, 如果随机数小于0.1就不输出A特征, 如果随机数高于该概率值就输出A特征,训练与测试集合使用一致的特征抽取方式,额外引入B特征

 

86.28%

 

26w

 

+1.14%

 

 

 

 总结

   这篇文章主要总结了文本分类算法TextCNN调优的方法,先给大家分享了下一般基本做调优我们会采取什么方法——找到badcase,分析共性问题。

分析共性问题后,可以从模型和特征两个方面去优化。在这里我们以文本分类为例,针对具体出现的badcase,我们总结了四个原因:

抽取方式差异

过于依赖某个特征

泛化能力差

缺乏先验知识

    这些问题可能不仅仅在文本分类这个领域中出现,在其他的应用场景中也可能会出现。那么,具体如何优化呢,我们做了八个实验来解决问题:其中实验五,实验八是从数据层面来优化模型,其余的都是从模型方面来优化

实验一:我们通过修改embedding_dim长度希望了解不同的向量维度对最后的实验结果的影响,发现embedding_dim 降低到64会对最后结果有比较明显的影响,下次要实验一下embedding dim 到512 会不会对实验结果有提升

实验二:在全连接层增加dropout 层,keep_rate = 0.7,随机丢掉30%,来降低最后结果与A特征相关性

实验三:在全连接层增加dropout 层,keep_rate = 0.5,随机丢掉50%,来降低最后结果与A特征相关性

实验四:只在数据预处理的时候,随机去掉10%的A特征,相比baseline 提升0.29%

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzwyj.html