论文阅读笔记二-ImageNet Classification with Deep Convolutional Neural Networks
分类的数据大小:1.2million 张,包括1000个类别。
网络结构:60million个参数,650,000个神经元。网络由5层卷积层,其中由最大值池化层和三个1000输出的(与图片的类别数相同)全链接层组成。
选用非饱和神经元和高性能的GPU来增强卷积操作。为防止在全链接层发生过拟合,我们进行规则化 'dropout'操作,效果明显。
1.说明:
通过改变卷积神经网络的深度和宽度可以控制网络自身的容量。卷积网络可以更准确的预测图片的本质(图像统计上的不变性和像素级的局部性)。
相比具有相似尺寸网络层数的标准前馈神经网路,卷积神经网络有更少的参数和链接。所以更容易进行训练。然而理论上卷积网络的最好性能可能表现的有些差。
尽管,卷积网络具有相对高效的局部结构。但针对大规模的高分辨率图像上的应用消耗仍然是巨大的。GPU和配合高度优化的2维卷积网络能够促进密集型卷积神经网络的训练。
神经网络的大小主要取决于目前GPU的存储能力和,训练的时间,此文中的网络还可以继续进行优化在由更好的GPU或者是获得更大的数据进行训练的情况下。
2.数据:
ImageNet 有超过15million张,2,2000个类别已标记的高分辨率的图片。ILSVRCL(1.2 million training images, 50,000 validation images, and 150,000 testing images.)
在ImageNet 通常报告两个错误率标准。top-1和top-5,其中,top-5是在测试图片中预测正确标签但不在由模型确定的最有可能的5个类别中的分数。
ImageNet中有可变分辨率的图像,然而本文中的网络要求固定维度的图像输入,因此,通过进行下采样得到固定分辨率(256*256)的图像。
我们只对像素进行减去平均值处理。
3.网络的结构:
总共包括8个层:5个卷积层和3个全链接层。
*****(重要度)3.1ReLU 非线性处理
模型化神经元输出的标准方式是通过以下等式:
针对训练时间随着梯度下降,上述的饱和非线性化比非饱和的()训练时间要慢很多。使用传统的饱和神经元模型,无法对大型神经网络进行实验。
不同的数据类型对神经元的激活函数的选取也不同,同时考虑防止过拟合,更快的学习针对大规模的训练数据具有很好的效果。独立的选则神经网络的率使
训练尽可能的快。ReLU的神经元比饱和的神经元经过一系列的迭代后学习的更快。
*****3.2多GPU训练
1.2million个训练样本足够训练一个网络,但对一个GPU来说十分吃力。因此,将一个网络分布在两块GPU上,由于当前GPU可以直接的进行读和写操作,不需要通过主机内存。本文将一半的神经元放在每一块GPU上。GPU只在确定层上进行通讯。也就是说,第三层的神经元从第二层神经元的映射获得输入,而第四层神经元获得的输入只能从处于同一块GPU上的第三层的部分获得。选择GPU之间的沟通模式是一个问题,但是这可以让我们调整链接数量直至达到我们可接受的数量。在最后一个卷积层上单GPU的参数个数与双GPU的相同,因为网络的大部分参数都在全连接层,为了让两个网络有大致相同的参数,所以对最后一层卷积层没有进行减半处理。因此这个网络更实用于单GPU,因为他比双GPU的一半要大。
***3.3局部响应标准化
ReLU有一个很好的特性就是不需要标准化的输入来防止自身趋于饱和。如果一些训练样本为RELU神经元提供了正响应,则将会在此神经元处进行学习。然而一些局部标准化措施有助于普遍化。
局部响应标准化输出公式:
n为在相同位置遍历n个相邻的核的求和。N为这一层的所有神经元的个数。神经元映射的顺序是随意的,但在训练之前被确定,这种程度的响应归一化是被实际神经元执行抑制剂激发的灵感。用不同的神经元进行计算产生大的活动间的竞争。 这几个隐含参数是事先确定的。
**3.4重叠的池化层
卷积神经网络中的池化层汇总具有相同内核映射的神经元组的输出。传统上,由相邻池化单元汇总的邻域是不重叠的。更确切的说,一个池化层可以被认为由一个单位间隔s个像素的池化网格组成,每个被汇总的大小为z*z的邻域以池化层结点为中心。如果令s=z我们会获得CNN中传统的局部池化层,若令s<z我们会获得重叠池化层。本文神经网络中使用的为重叠池化层。(令s=2,z=3),同时使用重叠池化层更不容易发生过拟合。
*3.5整体结构
描述:带有权重的8层神经网络。前5层为卷积层,后3层为全连接层。最后一层的全链接层的输出被送到softmax,被分配为1000个类别标签。
我们的网络最大化多项式逻辑回归目标,相当于最大化了训练样本中预测分布下的对书概率的正确标签的平均值。第二层,第四层,第五层卷积层的核只链接那些在同一个GPU的前一层。第三层卷积层是链接到第二层的所有核映射。响应标准化层在第一和第二卷积层。最大池化层在响应标准化层和第五个卷积层呢个之后。RELU应用在每个卷积层呢个和全链接层。
第一层卷积滤波是224*224*3的输入图像和96个大小为11*11*3,步间距为4个像素。第二层卷积将第一层的输出作为输入同时用256个大小为5*5*48的卷积核进行滤波,第三四五层卷积之间直接链接没有池化层和响应标准化层的干预。第三层含有384个大小为3*3*256的核与第二层卷积的输出。第四个卷积层呢个有384个3*3*192大小的卷积核。第五个卷积层有256个大小为3*3*192的卷积核,每个全链接层有4096个神经元。
4降低过拟合
4.1数据增强
最常用的数据增强是使用标签保留转换。我们采用两种不同的形式的数据增强,这两者都允许从原始图像生成变换后的图像,图像的计算量非常小,所以转换后的图像不需要存储在磁盘上。在我们的实现中,转换后的图像是在CPU上的Python代码中生成的,而GPU正在训练上一批图像。 所以这些数据增强方案实际上是计算方便的。
第一种形式的数据增强是包括生成图像翻译和水平映射。我们从大小256*256的图像上随即提取224*224的像素块,进行训练。这些样本具有高度的关联性,若没有这些,网络会产生较强的过拟合。在进行测试时我们的网络通过对提取的5个(四个角加一个中心)大小为224*224像素块及其水平映射(共10个像素块的特征),并对softmax在这10个像素块上做出的预测取平均。
数据增强的第二种形式包括改变RGB通道的强度训练图像。 具体来说,我们在整个RGB像素值集上(即ImageNet训练集)进行PCA降维。 对于每个训练图像,我们添加多个找到的其主成分,这就是图2中的输入图像为224×224×3维的原因。大小与相应的特征值成比例,乘以一个随机变量具有平均零和标准偏差0.1的高斯值。
针对特定训练图像的所有像素每个αi只绘制一次,直到该图像再次用于训练,该点会重新绘制。 该方案大致捕捉了自然图像的重要属性,即对象身份对于照明的强度和颜色的变化是不变的。 这个措施将top-1的错误率降低1%以上。
4.2 Dropout
用不同的模型进行联合预测是一个很有效的措施但是花费巨大,但dropout是一个让花费减半的模型联合预测的有效版本,他让每个神经元有0.5的概率失活,被drop-out 的神经元对前馈和反馈过程都不起作用。所以每次提交输入时,神经网络都会采样不同的体系结构,但是所有这些架构都具有相同的权重 这种技术减少了神经元的复杂适应,
因为神经元不能依赖特定其他神经元的存在。 因此,它被迫学习更强大的功能,这些功能可以与许多不同的随机子集结合使用其他神经元。 在测试时间,我们使用所有的神经元,但它们的输出乘以0.5,这是一个合理地近似得到由多指数的dropout网产生的预测分布的几何平均数。
我们在图2的前两个完全连接层中使用了dropout。没有dropout,网络表现出较强的过拟合。 同时dropout要达到收敛需要双倍的迭代次数。
5 学习策略
我们采用一批为128个样本,动量为0.9的随机梯度下降方法进行学习,权重衰减为0.0005,权重衰减不仅是一个正则化值同时减少模型的训练错误。
权重的更新公式为:
我们用标准偏差为0.01的零均值高斯分布初始化各层的权重。 我们初始化了第二,第四和第五卷积层以及在完全连接的隐藏层中中的神经元偏差为常数1.这种初始化会加速
通过向ReLU提供积极的投入来学习的早期阶段。 我们用0初始化剩余网络层的神经元。
我们对所有图层使用相同的学习率,我们在整个训练过程中手动进行了调整。我们遵循的启发式是在验证错误时将学习速率除以10
直到验证错误率停止改善。 学习率初始化为0.01,在终止前减少三次。 我们通过网络训练了大约90个周期的网络训练120万张图片,这两张图片在两台NVIDIA GTX 580 3GB GPU上花费了五到六天时间。
6结果
论文阅读笔记二-ImageNet Classification with Deep Convolutional Neural Networks的更多相关文章
- 阅读笔记:ImageNet Classification with Deep Convolutional Neural Networks
概要: 本文中的Alexnet神经网络在LSVRC-2010图像分类比赛中得到了第一名和第五名,将120万高分辨率的图像分到1000不同的类别中,分类结果比以往的神经网络的分类都要好.为了训练更快,使 ...
- AlexNet论文翻译-ImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural Networks 深度卷积神经网络的ImageNet分类 Alex Krizhevsky ...
- 《ImageNet Classification with Deep Convolutional Neural Networks》 剖析
<ImageNet Classification with Deep Convolutional Neural Networks> 剖析 CNN 领域的经典之作, 作者训练了一个面向数量为 ...
- ImageNet Classification with Deep Convolutional Neural Networks(译文)转载
ImageNet Classification with Deep Convolutional Neural Networks Alex Krizhevsky, Ilya Sutskever, Geo ...
- 中文版 ImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural Networks 摘要 我们训练了一个大型深度卷积神经网络来将ImageNet LSVRC ...
- 论文笔记《ImageNet Classification with Deep Convolutional Neural Network》
一.摘要 了解CNN必读的一篇论文,有些东西还是可以了解的. 二.结构 1. Relu的好处: 1.在训练时间上,比tanh和sigmod快,而且BP的时候求导也很容易 2.因为是非饱和函数,所以基本 ...
- [论文阅读] ImageNet Classification with Deep Convolutional Neural Networks(传说中的AlexNet)
这篇文章使用的AlexNet网络,在2012年的ImageNet(ILSVRC-2012)竞赛中获得第一名,top-5的测试误差为15.3%,相比于第二名26.2%的误差降低了不少. 本文的创新点: ...
- ImageNet Classification with Deep Convolutional Neural Networks 论文解读
这个论文应该算是把深度学习应用到图片识别(ILSVRC,ImageNet large-scale Visual Recognition Challenge)上的具有重大意义的一篇文章.因为在之前,人们 ...
- 论文解读《ImageNet Classification with Deep Convolutional Neural Networks》
这篇论文提出了AlexNet,奠定了深度学习在CV领域中的地位. 1. ReLu激活函数 2. Dropout 3. 数据增强 网络的架构如图所示 包含八个学习层:五个卷积神经网络和三个全连接网络,并 ...
随机推荐
- 阿里云IoT物联网平台入门教程
参考链接:https://www.geek-workshop.com/thread-37883-1-1.html
- Ettercap内网渗透
最近网速很卡,于是想到有人在蹭网,怎么捉弄一下呢? 1.开启ettercap ettercap -G 2. Hosts->Scan,List 发现有几个新的地址192.168.1.71,192. ...
- CF1100E Andrew and Taxi
题目地址:CF1100E Andrew and Taxi 二分,每次取到一个 \(mid\) ,只保留长度 \(>mid\) 的边 dfs判环,若有环,说明 \(ans>mid\) ,否则 ...
- shell 不使用循环批量创建用户
..}|tr " " "\n"|awk '{print "useradd",$0,";date +%N|md5sum|cut -c ...
- 设计模式C++学习笔记之十八(Visitor访问者模式)
18.1.解释 概念:表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. main(),客户 IVisitor,访问者接口 CBaseVis ...
- Nginx负载均衡实例
upstream MyServers{ server 192.168.63.137; server 192.168.63.138; server 192.168.63.140; } server{ l ...
- 【转】C++中substr的用法
substr有2种用法:假设:string s = "0123456789"; string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾 ...
- .net 项目与网站区别
背景 .net 的又一个杰作,我作为资深开发人员,好久没搞明白两者关系,后来慢慢总算琢磨明白了.在2003和2005的时候,都是用的网站方式,后来见到某同事用的项目方式,当时还很不理解,真是个傻瓜程序 ...
- [HTTP] 基本认证的工作流程
HTTP的基本认证涉及两个字段,一个是请求字段 Authorization: Authorization: Basic xxx 一个是响应字段 WWW-Authenticate WWW-Authent ...
- [PHP]session回收机制及php.ini session生命期
由于PHP的工作机制,它并没有一个daemon线程,来定时地扫描session信息并判断其是否失效.当一个有效请求发生时,PHP会根据全局变量 session.gc_probability/sessi ...