AlexNet

论文信息

论文名称

ImageNet Classification with Deep Convolutional Neural Networks

论文别名

AlexNet

发表期刊

NIPS

论文地址

ImageNet Classification with Deep Convolutional Neural Networks

论文详解

本文的难点 Local Response Normailzation ,Dropout ,Weight Decay

摘要

在这里插入图片描述

精简翻译和总结

作者训练了一个大的、深的卷积神经网络来对1200万张高分辨率图像进行分类这些图片是2010年ILSVRC比赛的图片总共分为1000个类别。在测试数据上top-1和top-5错误率分别为37.5%和17%比现有的SOTAstate-of-the-art结果还有优越。神经网络总购有6000万参数以及65万个神经元包含5个卷积层其中一些卷积层后面跟着最大池化层包含3个全连接层和一个1000维的softmax。为了使得训练更快作者使用了非饱和的神经元ReLU和一个非常高效的GPU来实现卷积操作为了减轻全连接层的过拟合作者使用了一个最近才发布的正则化方法Dropout,并被证明是十分有效的。作者还在2012年的ILSVRC比赛中使用了一个该模型的变种并且结果比第二名要好很多

批注

SOTA:( state-of-the-art )最佳结果
ILSVRCthe ImageNet Large-Scale Visual Recognition Challenge
ReLU:(Rectified Linear Unit) , 非饱和激活函数, f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)
top-1和top-5top-1 就是使用预测结果和正确结果进行对比如果相同则表示预测正确,top-5 就是使用预测结果的.top-5分类结果标签的前五个与正确结果进行对比如果五个之中有一个正确那么就认为分类器预测结果正确。
ImageNet:华裔科学家李飞飞牵头构建的数据集

1.引言

1.1 指出问题和可改进方向

在这里插入图片描述

现有的目标识别方法大量采用了机器学习方法 为了提升他们的性能可以考虑收集更大的数据集训练更强大的模型或者使用更好的技术来防止过拟合。迄今为止数据集的规模仍然是非常小的。简单的分类任务如可以在小规模数据集上表现很好但是物体在现实世界中存在相当大的可变性所以想要识别他们必须采用更大的数据集来学习他们的共性的特征。

在这里插入图片描述
为了能够在1200万张图像中学得数千个类别我们需要具有强大学习能力的模型。物体识别任务的复杂性意味着你不可能把每一个类别的数据集都构建得和ImageNet 一样大因此模型需要获得先验知识来弥补这方面的不足。CNN的识别能力与他的深度和宽度有着很大的关系。与标准的前馈神经网络相比CNNs的连接和参数量比较少容易训练。
在这里插入图片描述
尽管它性能好但是在2012年的时候训练这样一个网络是非常昂贵的比较幸运的是当时的GPU已经可以进行2D的卷积运算减轻了训练的难度并且ImageNet数据集足够大不会发生严重的过拟合。

1.2本文贡献

在这里插入图片描述

① 使用了ImageNet的子集训练了当时最大的网络之一并运用在了2010年和2012年的比赛中并获得了最好的结果。
② 实现了2D的GPU卷积运算并运用在了网络的训练中我们将它开源了。从我的视角来看这个相当牛逼
③网络使用到了许多新的不常规的特征来提升性能减少训练时间
④ 重点研究过拟合问题并使用了几个技术来解决过拟合
⑤最终网络包含5个卷积层三个全连接层并且作者认为深度是非常重要的移除任何一个卷积层会降低性能。

1.3 批注

CNN:convolutional neural networks

2.数据集

在这里插入图片描述

使用ImageNet 的子集包含1200万张训练图片5万张验证图片和15万张测试图片有个很奇怪的现象在随后的七八年构建了很多更大的数据集但是只有训练集和测试集验证集消失了不知道是不是数据集足够大测试集数据可以近似等价与现实中的数据分布所以不很出现过拟合和泛化性能下降问题所以不需要验证集了当然这仅是我个人的猜测

ImageNet 包含不同分辨率的图片其实也就是大小不同的意思作者把图像的短边缩放到256然后根据中心点进行裁剪得到256x256的图片。此外没有对图像再做其他任何的预处理。

2.1 批注

ImageNet数据集的均值和方差为mean=(0.485, 0.456, 0.406)std=(0.229, 0.224, 0.225)在之后出现的很多卷积神经网络的训练过程中很多都用到了这个值当然它的结果并不一定会很好。

3.模型结构

作者根据相关部分的重要性进行先后的叙述。

3.1 ReLU

使用了新的非饱和激活函数ReLU可以加速模型的收敛减少模型的训练时间

3.2 多GPU分布式训练

随着GPU的发展现在AlexNet不需要多GPU训练了但是这个分布式训练的方法可以用在其他大型网络的训练中比如GPT

3.3 Local Response NormalizationLRN 局部响应归一化

批注这一部分真得很难懂一开始看了好几遍没看懂不过这个也不是特别重要批量归一化出来后这个就不太用了。

在这里插入图片描述
ReLU 有理想的属性不需要输入归一化来防止饱和如果有一遇到正值神经元就会被激活然而我们仍然找到了下面的局部归一化方法它可以增加泛化。
——————————————————————————————————————————————————
a x , y i a_{x,y}^i ax,yi是第 i i i个卷积核在 ( x , y ) (x,y) (x,y)位置计算并经过激活函数后得到的值 b x , y i b_{x,y}^i bx,yi通过那个复杂的公式得到这个求和作用在 n n n个近邻核的相同空间位置上 N N N是这一层卷积核的数量,假设作用在AlexNet的第一层那么卷积核的个数 N N N为96。其中 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=104,β=0.75,把值带入公式后你会发现公式变得简单了很多变量只有 i , j i,j i,j,再结合下面这张图你就明白了
b x , y i = a x , y i / ( 2 + 1 0 − 4 ∑ j = m a x ( 0 , i − 5 / 2 ) m i n ( 95 , i + 5 / 2 ) ( a x , y j ) 2 ) 0.75 b_{x,y}^i =a_{x,y}^i /(2+10^{-4}\sum_{j=max(0,i-5/2)}^{min(95,i+5/2)} (a_{x,y}^j)^2)^{0.75 } bx,yi=ax,yi/(2+104j=max(0,i5/2)min(95,i+5/2)(ax,yj)2)0.75

在这里插入图片描述
n = 5 {n=5} n=5表示当我们在对一个元素进行归一化的时候只考虑到沿channel维度上也就是一维的情况这个元素的前两个元素和后两个元素。这意味着我们在计算{ixy}这个点归一化后的值时只需要考虑 i − 2 x y i − 1 x y i x y , i + 1 x y , i + 2 x y {i-2xyi-1xyixy,i+1xy,i+2xy} i2xyi1xyixy,i+1xy,i+2xy的值即可如果超过边界则默认为0。
https://zhuanlan.zhihu.com/p/434773836
https://towardsdatascience.com/difference-between-local-response-normalization-and-batch-normalization-272308c034ac

3.4 重叠池化

一般情况下池化的步长stride和filter过滤器的大小是相等的但在本文中stride为2filter过滤器的边长是3

3.5 模型总体结构

在这里插入图片描述

3.6 批注

这里需要注意的是归一化层是分别接在第一个和第二个卷积层之后的最大池化层是接在第一个和第二个归一化层之后以及第五个卷积层之后的。ReLU 接在每一个卷积层之后以及全连接层之后。

4. 数据增强

4.1 数据增强

4.1.1 方法一

在这里插入图片描述
第一种方法是对生成图像以及水平的翻转。从256x256的图像中取出224x224大小的图像这使得训练集的大小增大了2048倍虽然数据是独立的但是没有这个操作的话我们的网络会过拟合。在测试阶段我们从256x256的图像中选取了4个边角位置1个中心位置的224x224的patch,并进行水平翻转这样就得到了10个patch,将它们送入网络进行预测并计算平均值。

4.1.2 方法二

在这里插入图片描述
在这里插入图片描述
在整个ImageNet训练集中对RGB像素值集执行PCA。PCA(主成分分析)PCA 颜色增强的大概含义是比如说如果你的图片呈现紫色即主要含有红色和蓝色绿色很少然后 PCA 颜色增强算法就会对红色和蓝色增减很多绿色变化相对少一点所以使总体的颜色保持一致。
https://www.codenong.com/78de8ccd09dd2998ddfc/
https://blog.csdn.net/CSDNJERRYYAO/article/details/120068107
https://www.cnblogs.com/zhangleo/p/16076052.html

4.2 Dropout

https://blog.csdn.net/qq_37555071/article/details/107801384

5.实现细节

主要交代了具体的超参数的设置动量为0.9,权重衰减为0.0005作者在这个过程中发现权重衰减非常重要随后作者交代了一个权重初始化。所有的层使用相同的学习率初始学习率为0.01每三个回合衰减一次总共迭代了大概90个epoch

遗留问题

卷积和池化过程中的越界问题怎么处理

参考文献

https://blog.csdn.net/sunshine_youngforyou/article/details/99767600
https://blog.csdn.net/qq_45843546/article/details/124331168
http://www.datalearner.com/blog/1051558919769185写得很不错
https://blog.csdn.net/qq_45843546/article/details/124331168

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6