卷积神经网络(三)

甚深卷积神经网络

 

1985年,Rumelhart和Hinton等人提出了后向传播(Back Propagation,BP)算法 [1] (也有说1986年的,指的是他们另一篇paper:Learning representations byback-propagating errors),使得神经网络的训练变得简单可行,这篇文章在GoogleScholar上的引用次数达到了19000多次。几年后,LeCun利用BP算法来训练多层神经网络用于识别手写邮政编码 [2] ,这个工作就是CNN的开山之作。1998年的LeNet5[4] 标注着CNN的真正面世,但是这个模型在后来的一段时间并未能火起来,主要原因是费机器(当时苦逼的没有GPU啊),而且其他的算法(SVM,老实说是你干的吧?)也能达到类似的效果甚至超过。LeNet主要是用于识别10个手写数字的,当然,只要稍加改造也能用在ImageNet数据集上,但效果较差。

时间终于到了2012年,Hinton的学生Alex Krizhevsky在寝室用GPU死磕了一个Deep Learning模型,一举摘下了视觉领域竞赛ILSVRC 2012的桂冠,在百万量级的ImageNet数据集合上,效果大幅度超过传统的方法,从传统的70%多提升到80%多。这个DeepLearning模型就是后来大名鼎鼎的AlexNet模型。从此,Deep Learning一发不可收拾,ILSVRC每年都不断被Deep Learning刷榜,如图1所示,随着模型变得越来越深,Top-5的错误率也越来越低,目前降到了3.5%附近,而在同样的ImageNet数据集合上,人眼的辨识错误率大概在5.1%,也就是目前的Deep Learning模型的识别能力已经超过了人眼。PPT中展示卷积神经网络发展过程中的各种模型,这些模型也是Deep Learning视觉发展的里程碑式代表。

 

一.ResNet(Residual Network)

 

在图像识别领域中,经常通过增加神经网络的深度来提高准确率,然而当更深的网络能够开始融合时,暴露出了降级问题:随着网络深度的增加,精准度开始饱和,然后迅速下降。

因此,微软提出了一个新的卷积神经网络模型——残差网络(ResNet),它的核心是shortcut connection(快捷连接)。训练多层感知器早期的实践是从网络的输入到输出添加一个线性层。一些中间层直接连接到辅助分类器,来解决梯度的爆发与消失问题。快捷连接是那些跳过中的一层或更多层。在我们的情景中,快捷连接简单的执行身份映射,并将它们的输出添加到叠加层的输出。身份快捷连接添加既不产生额外的参数,也会增加不计算的复杂度。PPT中详细的介绍了残差网络的单元残差块,并将它与传统的卷积神经网络进行了对比。

 

二.VDCNN在文本分类中的应用

 

本文设计了一个新的架构­­——VDCNN,他也是从字符级出发,使用小的卷积和池化操作。这是有史以来第一次在文本分类中使用如此多层卷积层的卷积神经网络,之前用到的都是六层的,而这次史无前例的用到了29层。

在以前的实验中,虽然深度神经网络在文本分类上也取得了不错的效果,但是和它在计算机视觉以及语音识别等领域的成就比起来它还是不够理想。人们以前没试过更深层次的神经网络在文本分类上的应用,并且人们觉得层次很多以后作用就不大了。但是现在计算机视觉领域却趋向于使用更深层次的卷积神经网络,在2012年Krizhevsky等人就实现了19层个卷积层,而到了2016年已经达到了152层。显然对于更深层次的卷积神经网络对于文本分类没多大用这一论点还有待商榷,因此作者为了反驳这一说法证明更深层次的卷积神经网络可以提高对文本分类的性能,使用了29个卷积层的实验。

 

VDCNN架构

首先通过查找表的方法生成一个2维的张量(f0,s),其中f0是“RGB”维度的输入文本,s时嵌入的字符数,它是固定值1024

两条规则:

(i)对于相同的输出特征映射大小,图层有相同数量的滤波器;

(ii)如果特征映射的大小被减半,过滤器的数量增加一倍,以保持每层的时间复杂度。

网络包含了三个池化操作,分别对应128,256,512这么三个卷积核。卷积块的输出是512*sd,其中sd=s/2p,p是池化的数量,在这里等于3。

在以前的用卷积神经网络进行自然语言处理时,最多都是用的6层卷积神经网络,而且卷积核的尺寸是不同的,而在这个实验中用了很多层卷积,而卷积核的尺寸都是大小为3*3的。

k-max pooling

这里的池化操作使用的k-max pooling,一般的最大池化层是在提取的特征中只取最大的值作为保留值,其他值全部抛弃。CNN中采用Max Pooling操作有几个好处:首先,这个操作可以保证特征的位置与旋转不变性,因为不论这个强特征在哪个位置出现,都会不考虑其出现位置而能把它提出来。对于图像处理来说这种位置与旋转不变性是很好的特性,但是对于NLP来说,这个特性其实并不一定是好事,因为在很多NLP的应用场合,特征的出现位置信息是很重要的,比如主语出现位置一般在句子头,宾语一般出现在句子尾等等,而有些强特征又会多次出现这些位置,这些信息其实有时候对于分类任务来说还是很重要的,但是Max Pooling 基本把这些信息抛掉了。其次,位置信息在这一步完全丢失。

而K-MaxPooling的意思是:原先的Max Pooling Over Time从Convolution层一系列特征值中只取最强的那个值,那么我们思路可以扩展一下,K-Max Pooling可以取所有特征值中得分在Top –K的值,并保留这些特征值原始的先后顺序(图3是2-max Pooling的示意图),就是说通过多保留一些特征信息供后续阶段使用。很明显,K-Max Pooling可以表达同一类特征出现多次的情形,即可以表达某类特征的强度;另外,因为这些Top K特征值的相对顺序得以保留,所以应该说其保留了部分位置信息。

 

所以到最后因为一共得到了512个特征映射,所以就会将512*k个数据转换成一个向量,并作为后面全连接层的输入。

 

卷积块

在实验中全连接层没有使用dropout层,而是在每个卷积层后面加了一个temporal

batch normalization,简称BN算法。

随机梯度下架现在是训练深度网络的主流方法。尽管随机梯度下降法对于训练深度网络简单高效,但是它有个毛病,就是需要我们人为的去选择参数,比如学习率、参数初始化、权重衰减系数、Drop out比例等。这些参数的选择对训练结果至关重要,以至于我们很多时间都浪费在这些的调参上。BN算法(Batch Normalization)其强大之处如下:

(1)  你可以选择比较大的初始学习率,让你的训练速度飙涨。

(2) 你再也不用去理会过拟合中drop out、L2正则项参数的选择问题,采用BN算法后,你可以移除这两项了参数,或者可以选择更小的L2正则约束参数了,因为BN具有提高网络泛化能力的特性;

(3) 再也不需要使用使用局部响应归一化层了,因为BN本身就是一个归一化网络层;

(4) 可以把训练数据彻底打乱。

总而言之,BN就像激活函数层、卷积层、全连接层、池化层一样,BN(Batch Normalization)也属于网络的一层,在网络的每一层输入的时候,插入了一个预处理层,也就是先做一个归一化处理,然后再进入网络的下一层。

在这片文章中,作者探索了四个深度的网络:9,17,29,49,就像图一和图二所示,每两个池化层之间有两个卷积块,而每个卷积块中又有连个卷积层,所以可以通过添加或去除卷积块来增加和减少卷积的层数。

用标准的卷积神经网络,当层数上升到一定程度时,效果的增长将不明显,甚至当层数过高时会导致准确率下降。这是因为,深度越深,模型就越难以优化。对于深度很深的卷积神经网络,它反向传播的梯度会消失,为了解决这个问题,引入了卷积块之间的快捷连接,它可以使梯度在网络中更容易流动。

为了评估快捷连接的效果,paper中设计了49层的神经网络,虽然这种快捷连接改善VDCNN的效果,但是他还是没有达到它应该有的效果,但是这已经是对VDCNN在NLP中的里程碑了。

 

对于VDCNN的模型在PPT中做了详细的展示,并列出了几种深层次卷积神经网络的实验数据。

 

参考文献:

[1] Kaiming He, Xiangyu Zhang,Shaoqing Ren, and Jian Sun. 2016a. Deep residual learning for image recognition.In Proceedings of the IEEE Conference on Computer Vision and PatternRecognition, pages770–778, Las Vegas, Nevada, USA.

[2] Kaiming He, Xiangyu Zhang,Shaoqing Ren, and Jian Sun. 2016b. Identity mappings in deep residual networks.In European Conference on Computer Vision, pages 630–645, Amsterdam,Netherlands.Springer.

[3] Alexis Conneau, HolgerSchwenk, Loïc Barrault, Yann Lecun.  VeryDeep Convolutional Networks for Text Classification.Jan 27, 2017.


编者:HYB

你可能感兴趣的:(卷积神经网络)