CNN及DPCNN的学习
2018-10-27 本文已影响0人
zcyzcy
CNN(卷积神经网络) 基本模块##
- 卷积层
由一组科学系的滤波器(filter)或内核(kernels)组成,他们具有很小的感受视野。在前馈期间,每个滤波器对输入进行卷积,计算滤波器和输入之间的点积,并产生该滤波器的二维激活图。
卷积层示意图
相对于全连接的神经网络, 引入卷积层可以减少训练的参数数量。
1.1 例子
filter参数(识别曲线) 选取区域 曲线区域与过滤器点积 非曲线区域与过滤器点积
- ReLU层(修正线性单元)
每个卷积层之后,通常会立即应用一个非线性层(或者激活层)。目的是给刚经过卷积层中线性计算操作的系统引入非线性特征。常用的激活函数有:双曲正切和S型函数。但相对来说,ReLU层效果要更好一些。它能够帮助减轻梯度消失的问题,加快训练的速度。ReLU 层对输入内容的所有值都应用了函数 f(x) = max(0, x)
2.1 梯度消失的原因
z4 = σ(w4σ(w3σ(w2σ(w1x))))
∂z4/∂w1 = σ'(z4)w3σ'(z4)w3....
导数依赖于权重和激活函数的求导,如果σ'(zn)wn<1,随着神经网络层数增加,求导结果越来越小,使深层的网络对浅层的网络的影响变得越来越小。(梯度爆炸则是>1情况下)
-
池化层(Pooling Layer)
在几个 ReLU 层之后,程序员也许会选择用一个池化层(pooling layer)。它同时也被叫做下采样(downsampling)层。在这个类别中,也有几种可供选择的层,最受欢迎的就是最大池化( max-pooling)。它基本上采用了一个过滤器(通常是 2x2 的)和一个同样长度的步幅。然后把它应用到输入内容上,输出过滤器卷积计算的每个子区域中的最大数字。这到达了两个主要目的。第一个是权重参数的数目减少到了75%,因此降低了计算成本。第二是它可以控制过拟合(overfitting)
池化层 -
Dropout层
dropout是一种正则化的方法,用来解决CNN过拟合问题。设置概率,随机去除隐层的神经元个数。
DPCNN(Deep Pyramid Convolutional Neural Networks)
-
简介
DPCNN被发表在自然语言处理领域顶级会议ACL2017(原文)。这篇paper提出了一个低复杂度词级别的卷积神经网络架构。该网络可以用于文本分类,有效地表示文本中的长范围关联。 -
架构
DPCNN及其它网络结构图
- Text region embedding, 将常用的词嵌入模型推广到覆盖一词或多词的文本域嵌入。
- 紧接着是叠加的卷积块(由两个个卷积层和一个shortcut[残差网络]构成),与池化层交错,使用stride 2向下采样。
- 最后的池化层把每个文档的数据聚合为一个向量。以上所有的池化层都是用最大池化层。
- 文本区嵌入(Text region embedding)
v: size of vocabulary
考虑下面三种类型k-词区表示。
(1)序列输入,kv维串联,k个one-hot向量
(2)bow输入,一个v维的bow向量
(3)n-gram词袋输入。