本文主要是介绍【阅读笔记】TextCNN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Kim Y . Convolutional Neural Networks for Sentence Classification[J]. Eprint Arxiv, 2014.
本文介绍了一种使用 pre-trained word vectors 作为 CNN 输入的 sentence-level 分类器。模型结构比较简单,但也有不少巧思。
TextCNN 的网络结构如下图所示,将句子中词向量拼起来,padding 成固定长度,作为CNN的输入,后面接若干个不同尺寸的卷集核,最大池化后接一个全连网络,全连网络上加入 dropout 机制和 l2 正则化来作为 regularization。
作者还尝试了 multichannel 的结构,也就是说把输入的词向量变为两个通道,一个通道不进行训练,一通道随着训练参数会发生改变,下图表示在不同情况下的准确率
CNN-rand 表示词向量部分为随机生成的,在训练过程中会发生改变
CNN-static 表示词向量是 word2vec,在训练过程中不发生改变
CNN-non-static 表示词向量是 word2vec,在训练过程中会 fine-tuned
CNN-multichannel:两个通道,一个进行训练,一个不进行训练
如果对 词向量 进行 fine-tune,词向量的空间意义也会好一些,反义词的距离变大了
读后感:本文的多尺度的卷集核和 Inception 有几分神似,而且都是 2014 年的文章。Inception 多尺度的卷集核的灵感来源在于哺乳动物神经元的多尺度滤波,TextCNN 多尺度的卷集核的灵感来源我估计是 nlp 中常见 n-gram 特征。理论上一个大尺度的卷集合可以表示小尺度的(一部分等于0的情况下),但是搞成多尺度的减少参数防止过拟合,加快收敛速度,还是很巧妙的。
这篇关于【阅读笔记】TextCNN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!