Very Deep Convolutional Networks for Text Classification之每日一篇

源码:https://github.com/lethienhoa/Very-Deep-Convolutional-Networks-for-Natural-Language-Processing

一:介绍

这篇文章是2017.1月发表,在这篇文章出现之前,卷积神经网络进行文本分类都是用的很浅层的CNN,基本

是一个词嵌入层、一个卷积一个池化然后两个全连接层,文章利用了29个卷积层,提升文本分类的准去率。

这篇文章是首创式的用将深度较深的CNN应用在NLP中。

二:VDCNN结构

Very Deep Convolutional Networks for Text Classification之每日一篇_第1张图片

模型介绍:

此模型由8个卷积层block,3个最大池化层,一个k-max pooling 和3个全连接层组成。

卷积层的通道数分别为64,64,128,128,256,256,512,512。

前3个池化层的步长设置为2,最后一个k-max pooling的k设置为8;

lookup table用于生成输入句子矩阵。1*s,可以看成输入是1通道,经过lookup table之后

变为16通道,由一维变为16维。

由于网络结构较深,作者的模型是结合了vgg和resnet,为了优化内存的占用,VDCNN网络结构设置有两条规则:

1:如果卷积之后输出的向量不变,则卷积核数目和特征图像的大小保持不变。

2:如果输出向量减半,则卷积核数目和特征图像的大小增加一倍。

如果输出向量减半而特征图像大小保持不变,则违背了缓慢变小的原则,势必导致卷积过程中损失大量卷积信息,所以要满足上面1,2两条原则。

卷积核大小全部选用conv3,学习的vgg模型,既可以减少参数的数量又可以增加非线性变化。

Very Deep Convolutional Networks for Text Classification之每日一篇_第2张图片

Fig.2是一个conv block的结构图,他有两个卷积层和连个BN及relu组成,本文利用BN代替了dropout,



你可能感兴趣的:(NLP)