《ImageNet Classification with Deep Convolutional Neural Networks》 剖析

CNN 领域的经典之作, 作者训练了一个面向数量为 1.2 百万的高分辨率的图像数据集ImageNet, 图像的种类为1000 种的深度卷积神经网络。并在图像识别的benchmark数据集上取得了卓越的成绩。

该神经网络有6千万个参数,650,000个神经元。包含了五个卷积层(卷积操作层和下采样层统称之为卷积层), 和三个全连接层。 为了使得训练更快,让网络实现在GPU上进行卷积操作运算,为了减小overfitting, 全连接层引入一个最近兴起的方法:dropout。下面是整个网络的大致介绍:

如图,其中第一层为输入层,就是一张224X224X3的image, 首先进行的是卷积层,kernel 是11X11X3的, 那么每11X11的图像大小范围被卷积操作成为一个新的像素点的一个信道。卷积的步长为4, 说明224 X 224 被卷积成为是 55X55 的大小, 因为卷积核有96个,上下平分(因为被分到不同的GPU进行运算),所以第二层是 55X55X48 的新的层。

(1), Relu非线性操作:

我们知道在浅层神经网络中, 引入非线性操作(也叫激活函数 active function),可以增强神经网络的泛化能力,使得神经网络更加robusting。但是在深层网络中,使用tanh函数,作为激活函数,增加了大量的计算,使得训练更加慢了,引入Hinton的Rectified Linear units (Relu) 来作为激活函数,

Relu(x) = max(0, x)

(2), 在多GPU上进行运算

因为整个神经网络的训练是卷积之间的操作基本是独立的,所以可以采用独立的两个GPU进行运算,增快训练的速度。

(3), Normalization

为了不让某一些kernel的weight变得很大,要对不同的kernel进行Normalization。

(为什么weight不能很大,如果某一个kernel 的weight变得很大的话,它的权值稍微变化则会引起很大的影响,那会重点改变它的weight而忽视其他太小weight的kernel)

其中, k, n, alpha, beta 这些常量都是“可调参数”, 由最好的validation set决定(难怪被人说成是调参党)

(4), 对下采样层进行Overlapping Pooling

传统的下采样是不重叠的,但是为了精确性,使得识别度更高,对Pooling层进行Overlapping Pooling。

这么庞大的神经网络,这么多参数,很容易陷入overfitting的,减少overfitting的方式有两种Data Augmentation 和 Dropout

(5),  Data Augmentation

最常用的方法是:增大数据集的量,Label-preserving transformation. 本文中使用了两种Data Augmentation的方法,第一个是产生图片transformation和水平转换。因为有些图像进行水平转换是一致的,还有的操作是缩放操作(SIFT中算法的思想),旋转操作(可以增强物体识别的robustness)等。

第二种是改变训练图片的RGB的强度。 对图片中每一个RGB像素点进行一种变换,通过类似PCA的方法,求出特征向量和特征值,来提取主元

其中三个Alpha值对应image的三个channel,一张图片的每个像素都使用这个特定的随机值进行提取主元。

按照论文所说的,这种方法获取了image的天然特性,该特征对光照强度和光照颜色保持鲁棒性。

(6), Dropout

在全连接层,对有些隐层的神经元的输出置为0,对每个神经元输出置为0的概率是0.5,Dropout的神经元不会对前向传播操作造成影响,也退出了反向传导权值修正。这样即可以提高训练效率,也防止了overfitting。

本文的神经网络在前面的两个全连接层进行Dropout,有效防止了overfitting。

(7), 训练的过程

每个batch使用128个样本进行训练,设置好动量参数,权值decay, 学习率, 等参数。

对于全连接层:

类似浅层神经网络的训练,反向传播,权值修正。BP算法对每一个weight进行反向修正,根据误差函数对权值的偏导,进行负梯度下降的训练。

对于卷积层:

矩阵权值修正, 这里涉及到BP算法的二维应用。 卷积层首先在训练之前是随机化处理(随机化应该也是有技巧的随机化)。

评论:

CNN真的是一个充满前景的深度网络, 从不同的角度和不同的方式去提取特征,尽可能地去提取图片中的信息,同时,还需要很多的训练技巧,防止overfitting。最近的参与到openface的训练,体会到了这两个至关重要的point。

时间: 2024-11-03 22:42:52

《ImageNet Classification with Deep Convolutional Neural Networks》 剖析的相关文章

ImageNet?Classification?with?Deep?Convolutional?Neural?Networks?阅读笔记 转载

ImageNet Classification with Deep Convolutional Neural Networks 阅读笔记 (2013-07-06 22:16:36) 转载▼ 标签: deep_learning imagenet hinton 分类: 机器学习 (决定以后每读一篇论文,都将笔记记录于博客上.) 这篇发表于NIPS2012的文章,是Hinton与其学生为了回应别人对于deep learning的质疑而将deep learning用于ImageNet(图像识别目前最大的

【Papers】《ImageNet Classification with Deep Convolutional Neural Networks》阅读笔记

参考资料: ImageNet Classification with Deep Convolutional Neural Networks,Alex Krizhevsky,Ilya Sutskever,Geoffrey E. Hinton http://www.cnblogs.com/tornadomeet/p/3258122.html http://blog.sina.com.cn/s/blog_890c6aa30100z7su.html

ImageNet Classification with Deep Convolutional Neural Networks(转载)

ImageNet Classification with Deep Convolutional Neural Networks 阅读笔记 (决定以后每读一篇论文,都将笔记记录于博客上.) 这篇发表于NIPS2012的文章,是Hinton与其学生为了回应别人对于deep learning的质疑而将deep learning用于ImageNet(图像识别目前最大的数据库)上,最终取得了非常惊人的结果,其结果相对原来的state of the art好了非常多(前5选错误率由25%降低为17%). I

2016.4.5 ImageNet Classification with Deep Convolutional Neural Networks

ImageNet Classification with Deep Convolutional Neural Networks http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf 这个网络也叫做alexnet,因为第一作者的名字是alex,这是个经典的网络,因为这个网络在12年的时候在imagenet上面提升了十个点的准确率.第三作者是hinton

ImageNet Classification with Deep Convolutional Neural Networks

ImageNet Classification with Deep Convolutional Neural Networks Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton 摘要 我们训练了一个大型的深度卷积神经网络,来将在ImageNet LSVRC-2010大赛中的120万张高清图像分为1000个不同的类别.对测试数据,我们得到了top-1误差率37.5%,以及top-5误差率17.0%,这个效果比之前最顶尖的都要好得多.该神经网络有

中文版 ImageNet Classification with Deep Convolutional Neural Networks

ImageNet Classification with Deep Convolutional Neural Networks 摘要 我们训练了一个大型深度卷积神经网络来将ImageNet LSVRC-2010竞赛的120万高分辨率的图像分到1000不同的类别中.在测试数据上,我们得到了top-1 37.5%, top-5 17.0%的错误率,这个结果比目前的最好结果好很多.这个神经网络有6000万参数和650000个神经元,包含5个卷积层(某些卷积层后面带有池化层)和3个全连接层,最后是一个1

AlexNet:ImageNet Classification with Deep Convolutional Neural Networks

论文理解  在ImageNet LSVRC-2010上首次使用大型深度卷积神经网络,并获得很好的成果. 数据集:ILSVRC使用ImageNet的一个子集,1000个类别每个类别大约1000张图像.总计,大约120万训练图像,50000张验证图像和15万测试图像. 网络架构:5个卷积层和3个全连接层另外还有无权重的池化层. 激活函数使用了ReLU非线性函数,大大加快了训练时间. 训练方式采用多GPU训练,基于GPU跨GPU并行性好的特点,如翻译中的图2所示,GPU分工明确,只在某些层有数据的交互

论文解读《ImageNet Classification with Deep Convolutional Neural Networks》

这篇论文提出了AlexNet,奠定了深度学习在CV领域中的地位. 1. ReLu激活函数 2. Dropout 3. 数据增强 减小过拟合(Reducing Overfitting) 动机:由于整个网络拥有6000万个参数:尽管ILSVRC的1000个类使得每个训练示例对从图像到标签的映射施加10位约束,十分有必要去考虑过拟合的问题. 数据扩充(Data Augmentation) 图像数据扩充,即人工的扩大数据集, 是减小过拟合现象最简单和常用的方法,作者使用两者不同的数据扩充方法: --第一

[转]XNOR-Net ImageNet Classification Using Binary Convolutional Neural Networks

感谢: XNOR-Net ImageNet Classification Using Binary Convolutional Neural Networks XNOR-Net ImageNet Classification Using Binary Convolutional Neural Networks 本人想把算法思想实现在mxnet上(不单纯是一个layer),有意愿一起的小伙伴可以联系我,本人qq(邮箱):564326047(@qq.com),或者直接在下面留言. 一.Introdu