1.背景
2.模型方法
为了简化实验,没有使用任何无监督的预训练方法,在应用时可以使用。
3.模型效果
4.下一步计划
打算对视频序列使用非常大的深度卷积神经网络,其中时间结构提供了非常有用的信息,这些信息往往在静态图像中丢失了,或者说不太明显。
ImageNet中图像的分辨率是不一样的,但是模型需要输入固定的尺寸,采用下采样方法将输入尺寸变为了256*256。除了将每个像素减去训练集的像素平均值外,没有做其他处理。
五个卷积层、三个全连接层。
在论文中将sigmoid函数和tanh函数称为saturating nonlinearities,将relu称为non-saturating nonlinearity函数,文章提到使用saturating nonlinearities函数比使用non-saturating nonlinearity函数梯度下降速度要慢。Nair和Hinton将nonlinearity称为Rectified Linear Units(Relu)。
从图中可以看出使用relu激活函数比使用tanh激活函数要快6倍。
文章提到本文训练的网络是放在两个GPU上运行的,一个GPU上放置一半的神经元,还有一个技巧是:使GPU只在特定的层中通信,比如第3层的内核从第2层的所有内核映射中获取输入。然而,第4层的内核只接受位于同一GPU上的第3层内核映射的输入。因此选择连接模式对于交叉验证比较重要。
这种方式将top-1和top-5的错误率分别减少了1.7%和1.2%。并在一定程度上减少了运行时间。
虽然relu函数不需要对输入数据进行标准化操作,但是局部正规化方案有助于泛化。
计算公式:
b x , y i = a x , y i ( k + a ∑ j = m a x ( 0 , i − n / 2 ) m i n ( N − 1 , i + n / 2 ) ( a x , y j ) 2 ) β b_{x,y}^i = \frac{a_{x,y}^i}{(k + a\sum_{j=max(0,i-n/2)}^{min(N-1,i+n/2)}(a_{x,y}^j)^2)^{\beta}} bx,yi=(k+a∑j=max(0,i−n/2)min(N−1,i+n/2)(ax,yj)2)βax,yi
其中 a x , y i a_{x,y}^i ax,yi表示第 i i i个内核计算位置 ( x , y ) (x,y) (x,y)处的Relu非线性单元的输出, b x , y i b_{x,y}^i bx,yi表示响应归一化后的输出值。
n n n表示同一位置下与该位置相邻的内核映射的数量。 N N N表示这一层中内核的总数量。这种响应归一化实现了以一种模仿真是神经元的横向一致,从而在使用不同内核计算的神经元输出之间产生较大的竞争。常数 k 、 n 、 a 和 β k、n、a和\beta k、n、a和β都属于超参数,它们的值取决于使用的验证机;我们使用的设置是: k = 2 , n = 5 , a = 1 0 − 4 , β = 0.75 k=2,n=5,a=10^{-4},\beta = 0.75 k=2,n=5,a=10−4,β=0.75。在某些层中应用Relu后再使用这种归一化方法。
文章提到因为没有减去均值,因此这个方法称为“亮度归一化”(brightness normalization)。
响应归一化将top-1和top-5的错误率降低了1.4%和1.2%。
传统方法中相邻单元之间互不重叠。池化层被认为是由一些间隔为s个像素的池化单元组成的网络,,每个都表示一个以池化单元位置为中心的大小为 z ∗ z z*z z∗z的区域。
CNN整体机架构图:
该网络包含8个带权重的值,前5个是卷积的,其余三个是完全连接的。最后一个全连接层的输出被反馈到一个softmax层,产生超过1000中分类标签。
文章提到其网络最大化了多项式逻辑回归目标,这相当于最大化了预测分布下正确标签的对数概率的训练情形的平均值。(我理解的是使用了最大池化层,最后得到的预测结果会大一些。)
第二层、第四层和第五层卷积层的内核只连接到上一层驻留在同一GPU上的内核映射(见图2),第三层卷积层的内核连接到第二层的所有内核映射。全连接层的神经元与前一层的所有神经元相连。响应规范化层在第一和第二卷积层之后。
第一个卷积层的输入为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个神经元。
文章提到其使用的两种数据扩充方法都使用很小的计算代价就可以使原始图像生成转换后的图像,转换后的图像不需要存在磁盘上,因为可以一边使用python在CPU上转换,一边在GPU上对图像进行训练。
将每个神经元丢弃的概率设置为0.5,以这种方式丢弃的神经元不参与正向传递,也不参与反向传播。每次有输入时神经网络都会有不同的结构,但是这些结构都权重共享。在测试时使用所有神经元并将它们的输出都乘以0.5.。(我记得是在训练时将激活值除以0.5,这句话意思是不是和这个一样,还是我的记忆有误)
我们使用随机梯度下降训练我们的模型,批量大小为128个样本,动量为0.9,重量衰减为0.0005。我们发现这一小部分的重量衰减对模型的学习很重要。换句话说,这里的重量衰减不仅仅是一个正则化器:它减少了模型的训练误差。权值w的更新规则是:
v i + 1 : = 0.9 ⋅ v i − 0.0005 ⋅ ϵ ⋅ w i − ϵ ⋅ ( α L α w ) D i v_{i+1} := 0.9 \cdot v_i - 0.0005\cdot\epsilon\cdot w_i - \epsilon\cdot(\frac{\alpha L}{\alpha w})_{D_i} vi+1:=0.9⋅vi−0.0005⋅ϵ⋅wi−ϵ⋅(αwαL)Di w i + 1 : = w i + v i + 1 w_{i+1}:=w_i + v_{i+1} wi+1:=wi+vi+1
其中 i i i表示当前迭代次数, v v v表示动量(momentum), ϵ \epsilon ϵ表示学习率, ( α L α w ) D i (\frac{\alpha L}{\alpha w})_{D_i} (αwαL)Di表示第 i i i批次 D i D_i Di的目标函数关于 w w w的导数的平均值。
初始化每一层权值,初始化后的全职为零均值高斯分布,标准差为0.01。第二层、第四层和第五层卷积层以及全连通隐藏层中初始化神经元偏差为常数1,用常数0初始化剩余层中的神经元偏差。对所有层使用相同的学习率,并在整个培训过程中手动调整。采用的启发式方法是,当验证错误率不再随着当前的学习率提高时,将学习率除以10。初始化学习率为0.01,终止前降低3次。实验者在两台NVIDIA GTX 580 3GB gpu上用了5到6天的时间,通过120万张图像的训练集,对网络进行了大约90个周期的训练。
2.
文章描述的CNN的top-5错误率达到了18.2%。
对五个相似CNN的预测结果计算均值,得到的错误率为16.4%。
表格第四行,对单独的一个CNN,在最后一个池化层之后,额外添加第六个卷积层,对整个ImageNet Fall 2011 release(15M images, 22K categories)进行分类,然后在ILSVRC-2012上“微调”(fine-tuning)网络,得到的错误率为16.6%。
对整个ImageNet Fall 2011版本的数据集下预训练的两个CNN,求他们输出的预测值与前面提到的5个不同的CNN输出的预测值的均值,得到的错误率为15.3%。
比赛的第二名达到了26.2%的top-5错误率,他们的方法是:对几个在特征取样密度不同的Fisher向量上训练的分类器的预测结果取平均的方法
图3显示了由网络的两个数据连接层学习得到的卷积内核。该网络已经学习到许多频率和方向提取的内核,以及各种色块。请注意两个GPU所展现的不同特性,这也上面介绍的限制互连的结果。GPU1上的内核在很大程度上与颜色无关,然而GPU2上的内核在很大程度上都于颜色有关。这种特异性在每次迭代期间都会发生,并且独立于任何特定的随机权重初始化过程(以GPU的重新编号为模)。
在图4的左侧面板中,通过计算8张测试图像的top-5预测来定性评估网络的训练结果。请注意,即使是偏离中心的对象,如左上角的螨虫,也可以被网络识别。前5名中的大多数似乎都是合理的。例如,只有其他类型的猫被认为是豹的合理标签。在某些情况下图片中有多个物体,比如樱桃和狗,使得图片焦点不明确,会导致预测错误。
另一种探索网络视觉知识的方法是考虑最后一个4096维隐层图像的特征激活。如果两幅图像产生的特征激活向量具有小的欧氏分离,我们可以说神经网络的高层认为它们是相似的。
图4右侧显示了来自测试集的5张图像(第一列),以及来自训练集的列图像,根据这个度量,它们是最相似的。注意,在像素级别,在像素层次上,待检测的训练图像通常不会与第一列中的查询图像有较小的L2距离。例如,检索到的狗和大象以各种姿势出现。我们在补充材料中展示了更多测试图像的结果。通过使用欧式距离来计算两个4096维实值向量的相似性,效率不高,但是通过训练自编码器可以将这些向量压缩为较短的二进制码,能够使其更高效。与应用自编码器到原始像素相比,这应该是更好的图像检索方法。它不使用图像标签,因此更倾向于检索具有相似图案边缘的图像,不管它们的图像语义是否相似。
1.大型数据集LabelMe,包含数十万个完全分割的图像,ImageNet包含超过15000万个超过22000个类别的高分辨率的图像。
2.ImageNet总共含有120张训练图像,其中50000张验证图像,150,000张测试图像。
3.使用relu不需要为了防止输入数据饱和而对输入进行标准化。
有的地方论文写的很好,担心自己表述有误就直接翻译了。