[NLP学习笔记-Task7] CNN + Text-CNN

卷积神经网络(Convolutional Neural Network,CNN)

CNN相比于全连接前馈神经网络的优势
  • 参数更少:如果输入图像大小为100 × 100 × 3(即图像高度为100,宽度为100,3个颜色通道:RGB)。在全连接前馈网络中,第一个隐藏层的每个神经元到输入层都有100 × 100 × 3 = 30, 000个相互独立的连接,每个连接都对应一个权重参数。随着隐藏层神经元数量的增多,参数的规模也会急剧增加。这会导致整个神经网络的训练效率会非常低,也很容易出现过拟合。
  • 局部不变性特征:自然图像中的物体都具有局部不变性特征,比如在尺度缩放、平移、旋转等操作不影响其语义信息。而全连接前馈网络很难提取这些局部不变特征,一般需要进行数据增强来提高性能
感受野机制

卷积神经网络是受生物学上感受野的机制而提出。感受野(Receptive Field)主要是指听觉、视觉等神经系统中一些神经元的特性,即神经元只接受其所支配的刺激区域内的信号。在视觉神经系统中,视觉皮层中的神经细胞的输出依赖于视网膜上的光感受器。视网膜上的光感受器受刺激兴奋时,将神经冲动信号传到视觉皮层,但不是所有视觉皮层中的神经元都会接受这些信号。一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元。

卷积

在这里插入图片描述
一维卷积示意图如下,其中滤波器为:[1, 0, -1]
在这里插入图片描述
在这里插入图片描述

卷积种类

假设卷积层的输入神经元个数为n,卷积大小为m,步长(stride)为s,输入神经元两端各填补p个零(zero padding),那么该卷积层的神经元数量为(n − m + 2p)/s + 1。

  • 窄卷积(Narrow Convolution):步长s = 1,两端不补零p = 0,卷积后输出长度为n − m + 1。
  • 宽卷积(Wide Convolution):步长s = 1,两端补零p = m− 1,卷积后输出长度n + m − 1。
  • 等宽卷积(Equal-Width Convolution):步长s = 1,两端补零p = (m−1)/2,卷积后输出长度n。
卷积层

卷积层的作用是提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器,并减少参数数量,卷积层有两大特性:

  • 局部连接:在卷积层(假设是第 l l l 层)中的每一个神经元都只和下一层(第 l − 1 l-1 l1 层)中某个局部窗口内的神经元相连,构成一个局部连接网络。如图5.5b所示,卷积层和下一层之间的连接数大大减少,有原来的 n l ∗ n l − 1 n^l * n^{l−1} nlnl1个连接变为 n l ∗ m n^l * m nlm个连接,m为滤波器大小
  • 权重共享:作为参数的滤波器 w ( l ) w^{(l)} w(l) 对于第 l l l 层的所有的神经元都是相同的。下图中,所有的同颜色连接上的权重是相同的
    在这里插入图片描述
    由于局部连接和权重共享,卷积层的参数只有一个m维的权重 w ( l ) w^{(l)} w(l) 和1维的偏置 b ( l ) b^{(l)} b(l),共 m + 1 个参数。参数个数和神经元的数量无关。此外,第 l l l 层的神经元个数不是任意选择的,而是满足 n ( l ) = n ( l − 1 ) − m + 1 n^{(l)} = n^{(l−1)}− m + 1 n(l)=n(l1)m+1

卷积层为一维情况
在这里插入图片描述
卷积层为多维情况

卷积网络主要应用在图像处理上,而图像为两维结构,因此为了更充分地利用图像的局部信息,通常将神经元组织为三维结构的神经层,其大小为高度M×宽度N×深度D,有D个M × N 大小的特征映射构成

特征映射(Feature Map)为一幅图像(或其它特征映射)在经过卷积提取到的特征,每个特征映射可以作为一类抽取的图像特征。为了提高卷积网络的表示能力,可以在每一层使用多个不同的特征映射,以更好地表示图像的特征

卷积层具体结构:
在这里插入图片描述
在这里插入图片描述
卷积例子:其中输入层填充了一层0,卷积核的深度为2,每一层卷积核分别与输入做点积再相加,最后加上偏置项
在这里插入图片描述

汇聚层(池化层)

汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer),其作用是进行特征选择,降低特征数量,并从而减少参数数量

卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少。如果后面接一个分类器,分类器的输入维数依然很高,很容易出现过拟合。为了解决这个问题,可以在卷积层之后加上一个汇聚层,从而降低特征维数,避免过拟合。

常用两种池化操作:

  • 最大池化
  • 平均池化
    在这里插入图片描述
    在这里插入图片描述
典型的CNN结构

一个典型的卷积网络是由卷积层、汇聚层、全连接层交叉堆叠而成。目前常用的卷积网络结构图5.9所示。一个卷积块为连续M 个卷积层和b个汇聚层(M通常设置为2 ∼ 5,b为0或1)。一个卷积网络中可以堆叠N 个连续的卷积块,然后在接着K 个全连接层(N 的取值区间比较大,比如1 ∼ 100或者更大;K一般为0 ∼ 2)。
在这里插入图片描述
目前,整个网络结构趋向于使用更小的卷积核(比如1 × 1和3 × 3)以及更深的结构(比如层数大于50)。此外,由于卷积的操作性越来越灵活(比如不同的步长),汇聚层的作用变得也越来越小,因此目前比较流行的卷积网络中,汇聚层的比例也逐渐降低,趋向于全卷积网络。

Text-CNN

原始论文:Convolutional Neural Networks for Sentence Classification
在这里插入图片描述
Text-CNN特点:

  • 滤波器/卷积核向下移动
  • 卷积核的宽度是与词向量的维度一致,而原始CNN的卷积核宽度和高度一般相同
  • 池化层为1维的最大池化

Text-CNN的通俗理解以及 Keras 实现请看这篇大神的文章:TextCNN文本分类(keras实现)

Text-CNN的tensorflow实现

参考资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值