ImageNet Classification with Deep Convolutional Neural Networks笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jinlong_Xu/article/details/52036957

前言


这是meeting report,关于AlexNet的一篇周报。第一次写博客,写的不是很好,望大家谅解。


PS: 争取每周都写一个周报,想在博客里留下一些自己的笔记。很久之前就有这样的想法,今天终于完成了,希望            自己能坚持下来。come on!


Abstract

用Deep convolutional neural networks对ImageNet中1.2 miiiion张图片。测试结果表明,TOP-1和TOP-5的错误率只有37.5%和17.0%。AlexNet包含60 million 个参数,650000个神经元,包含了五层卷积层,每一层后面都跟有max-pooling layers 和 3 个全连接层,其中每个全连接层都有1000路 softmax函数。

为加快训练速度,使用了非结构化的神经元和一个GPU来加速卷积操作。为减少过拟合,使用了“退出”的方法。

 

1 Introduction

为了提高我们的性能,我们搜集了更大的数据集,学习了更强大的模型,使用了更好的技术来防止过拟合。

为了从几十万张图片中学习几千个对象,我们需要更大学习能力的模型。

当前的数据集例如ImageNet,有足够多的标签例子去训练,而不会有严重的过度拟合。

最终,我们的网络包含 5 层卷积层和 3 层全连接层,而且对于这个网络,深度似乎很重要:如果移除任何一层卷积层,就会导致性能的下降。

最后,想说的是,这个网络尺寸的限制主要是:GPUs所能提供的内存,训练时间过长。我们用两个 GTX 580 3GB GPUs训练了5、6天才训练好这个网络。

所以如果有更快的 GPUs 和更大的数据集,那么就能提高性能。


2 The Dataset

ImageNet 是拥有超过15 million 个标签的高清图片,其中拥有近 22000 个种类。总之,我们用 1.2 million 张图片来训练,50000 张图片来验证,150000 张图片来测试。

TOP-5 错误率是在不超过 5 个标签的情况下,模型对测试图片的得分。

3 The Architecture

AlexNet包含8层想学习层——5层卷积层,3层全连接层。


3.1 ReLU Nonlinearity

非线性函数f(x) = max(0,x)收敛速度比f(x) = tanh(x)快。

为了防止过拟合,我们使用了收敛速度快的f(x) = max(0,x)。

快速的学习对大型的模型训练有一个很重要的影响。

上图中,实线为f(x) = max(0,x),虚线为f(x) = tanh(x)


3.2 Training on Multiple GPUs

单个的GTX 580 GPU只有3GB的内存,这限制了训练网络的大小。对于一个GPU来说,1.2milliontraining examples的训练网络太大因而性能不能满足。

所以我们采用了两块GPU构成,在每一层卷积层,一个GPU对一半的参数进行训练,然后一起送入下一层。两个GPU构成的网络会比一个GPU训练的时间要短。


3.3 Local Response Normalization局部响应标准化

本质上,这个层是为了防止激活函数的饱和的。

原理是通过正则化让激活函数获得更大的导数值。

实验结果来看,LRN操作可以提高网络的泛化能力,将错误率降低大约一个百分点。

Respectively: a four-layer CNNachieved a 13% test error rate without normalization and 11% with normalization


3.4 Overlapping Pooling

作者认为Overlapping 后,能够减少网络的过拟合。

同时将s = 2, z = 3的实验结果和 s = 2, z = 2对比,这个方案分别降低了TOP-1和TOP-5的错误率0.4%和0.3%


3.5 Overall Architectur

网络包含有权值的8层:最开始的5层是卷积层,剩下的3层是全连接层。最后一层全连接层的输出是1000路softmax,能产生超过1000种分类。一般在预测结果中选择概率最大的类。


NOTE:

1、第2,4,5卷积层只和前一层在同一个GPU上的Kernel Map(特征图)连接。

2、第3卷积层是和前一层的所有KernelMap(特征图)相连。

3、在全连接层上的神经元是和前一层所有神经元相连的。

4、响应标准化层跟在第1、2卷积层后面

5、最大池化层跟在响应标准化层后面,也是在第5卷积层。

6、The ReLU非线性函数是运用于每一个卷积层和全连接层的输出

第1卷积层用96个大小为11 x 11 x 3的卷积核对224 x224 x 3的输入图像进行滤波。

第2卷积层的输入时第1卷积层的响应标准化和池化后的输出,用256个大小为5 x 5 x48的卷积核来滤波。

第3,4,5卷积层和其他层相连的时候,,不需要任何预先的池化和标准化层

第3卷积层有384个大小为3 x 3 x 256的卷积核连接着第2卷积层的标准化、池化层的输出

第4卷积层有384个大小为3 x 3 x 192的卷积核

第5卷积层有256个大小为3 x 3 x 192的卷积核

全连接层有4096个神经元      

ReLU非线性公式在每个卷积层和全连接层都有应用

4Reducing Overfitting

我们的神经网络体系结构有60million个参数,事实证明,如果不考虑过拟合,,ILSVRC不足以去学习那么多的参数。


4.1 Data Augmentation

对训练数据进行左右对称以及平移变换,将训练数据增加为原来的2048倍;

对像素进行PCA变换构造新样本(这一机制使得TOP-5错误率降低1%)

 

4.2 Dropout

Dropout是将每一个隐含层中的神经元以0.5的概率输出设定为0. 这些“dropped out”的神经元不仅不会对theforward pass其作用,也不会参与到backpropagation。

每次有输入时,网络都会采样一个随机结构,迫使神经元与其他神经元共同学习更多更有用的特征。

测试中,我们将dropout运用在第1,2全连接层,,利用他们所有的神经元,但是其输出都乘以了0.5。如果没有dropout,我们的网络将会产生严重的过拟合。但是Dropout 让达到收敛的迭代次数加倍。


5 Details of learning

训练我们的模型用的是随机梯度下降,动量是0.9,权重衰减值是0.0005。

很小的权重衰减值对模型的学习很重要。权重衰减值降低了模型的训练错误。

Theupdate rule for weight w was:

其中 i 是迭代指数,v 是动量变量,

权值的初始化:权值满足均值为0,标准差为0.01的高斯分布,即Gaussian(0,0.01)。

神经元偏置的初始化:在第2,4,5卷积层和全连接层都设置为1,为了加快ReLU的学习速度。其他层的神经元偏置设置为0。

同时每一层的学习率都是相同的。

6Results

最后在ILSVRC-2010的测试结果如表1,最终Top-1和Top-5的错误率分别为37.5%和17.0%。而当时比赛最好成绩为47.1%和28.2%,而之后文章得到的最好结果45.7%和25.7%。


6.1 Qualitative Evaluations性能评估

GPU1上的卷积核大部分对颜色不敏感,而GPU2对颜色非常敏感,这样的特性不会随着运行次数和权值初始化的随机而变化。

在最后一个pooling层中,如果两个图像的特征激活向量越接近(欧式距离),则该网络认为他们越像。

向量的实值是没有用的,有用的是它们之间的欧式距离。


7 Discussion

需要注意的是,倘若移走一层卷积层,整个网络的性能就会降低。

例如:移除任一中间层,在TOP-1上的性能就会下降2%。

因此深度对于实现完美的目标,很重要。


为了简化我们的实验,我们没有采用无监督预先学习。如果有足够的计算能力,就可以增大网络的尺寸,却不增加标签数据,可能会提高最后的正确率。

最终,我们可能用更大的更深的卷积网络来处理视频序列,以得到静态图片可能忽视的信息。



展开阅读全文

没有更多推荐了,返回首页