【精读人工智能论文】01.AlexNet

文章介绍了AlexNet如何首次将深度卷积神经网络应用于大规模图像分类,强调了CNN的特性如局部连接、全局共享和ReLU非线性,以及如何使用ImageNet数据集、数据增强、Dropout等策略来减少过拟合,展示了网络结构和优化细节。
摘要由CSDN通过智能技术生成

AlexNet - ImageNet Classification with Deep Convolutional Neural Network

首次将卷积神经网络CNN和深度学习DL用于大规模的图像分类并且性能优异。

1. Introduction

在AlexNet之前的图像识别方法都是基于机器学习的。这些方法在小数据集(例如MNIST-28x28x1,CIFER10-32x32x3)上可以做到与人类相媲美,但是现实世界很复杂,高分辨率和多样化的内容使其失去了准确性。所以我们需要更大的数据集。
为了能从更大更多的图像中提取特征,我们需要一个拥有巨大学习容量的容器。但这还不够,我们需要先验知识*(先于经验的知识,指在进行学习或推理之前,已经具备的关于问题领域的先前知识或经验)*去补偿那些我们没有的数据。卷积神经网络就具备以上特征,它的容量大小和它的深度(网络层数)以及channel的个数有关。

卷积神经网络能拥有先验知识是因为局部连接、全局共享保留了相邻像素之间的局部像素依赖性假设。

深度学习的三架马车
  • 大规模的数据
  • 硬件算力
  • 模型算法以及调参技巧

2. The dataset

ImageNet是一个拥有超过1500万张带有标签的高分辨率图片的数据集,这些图片被分到了22000个分类中。

在ImageNet中,我们习惯性的给出两个指标Top-1和Top-5,网络对每一张图片给出的五个预测类别结果,概率从高到低排序,Top-1概率最高的预测类别为正确标签,Top-5五个预测类别中包括正确的标签。(Top-5比较科学)

ImageNet中的图片拥有着大小不同的分辨率,但我们的神经网络需要输入维度固定为某一常数的图像,因此,我们要对图像进行下采样缩放为256x256大小。计算出每个像素的均值,然后把每一个像素都减去其对应的像素均值,相当于中心化的预处理,可以减少对噪声的敏感性,所以被训练的网络是以0为均值的RGB像素。

3. The Architecture

卷积神经网络的网络结构是八个包含学习权重的层——五个卷积层和三个全连接层。

3.1 ReLU Nonlinearity

Rectified Linear Units——修正线性单元函数

为什么使用ReLU:ReLU是非线性的激活函数,非线性的激活函数给神经网络带来了非线性,使其能解决非线性的问题。

tanh函数和Sigmoid函数为饱和函数,当输入过大值的时候会被局限在一个范围中且不在发生变化,这种情况会产生梯度消失的问题,同时影响学习的效率。ReLU比tanh快六倍

也有人想到了使用替代函数在卷积神经网络中,但试验者是在Caltech-101数据集中了较为不错的效果,Caltech-101数据集比较小,其核心问题是防止过拟合;而ImageNet数据集的规模大,其核心问题是加速训练。(快速训练对于在大型数据集上训练的大型模型的性能有着很大的影响)

虽然不同网络结构效果可能不同,但是ReLU收敛很快是普遍的。

3.2 Training on Multiple GPUs

在2012年,一个GTX580只有3GB显存,由于反向技术传播原理,显存中不仅存储模型参数,还需存储正向传播时每一层整一个batch的中间结果,batch size越大,占显存越大。

两个GPU只在某些层(详见上图)交流信息。

双GPU(全参数)的训练时间比单GPU(半参数)更短,在单GPU模型中,最后一个卷积层和全连接层的参数数量与双GPU模型相同,因此“半参数”并非真的只有一半参数。

3.3 Local Response Normalization

其作用是防止在同一个位置有多个高激活,高激活会对附近的其他通道的高激活产生侧向抑制。

如果使用的是传统的饱和激活函数,我们是需要使用normalization的,让输入尽可能的分布在提督范围大的区域。ReLU不需要对输入normalize来避免输入信号陷入饱和,但使用仍然可以使输入泛化,防止过拟合。

3.4 Overlapping Pooling

池化的作用为汇总周围临近的像素,选出代表,把大的转化为小的。重叠的池化为,池化的步长小于池化窗口。

3.5 Overall Architecture

此网络拥有5个卷积层和3个全连接层,其中最后一个全连接层输出的结果为1000个分类的softmax,表明了这1000个分类的概率分布。(Softmax的含义就在于不再唯一的确定某一最大值,而是为每个输出分类的结果都赋予了一个概率值,表示属于每个类别的可能性)

我们的网络是要最大化一个多分类逻辑回归的目标,也就是最小化交叉熵损失函数,它等效化最大化对数似然概率**(极大似然估计,我们要让全部模型都被预测正确的联合概率最大化,对数是为了让乘法变为加法)**

feature map 尺寸 = {(Input + 2 x Padding - filter)/ stride} + 1

  • 第一层卷积层为 227x227x3,第一层的卷积核为96个11x11x3,步长为4**(补偿表示相邻感受野中心的距离)**
  • 第二层卷积核 256个 5x5x48
  • 第三层卷积核 384个 3x3x256
  • 第四层卷积核 384个 3x3x192
  • 第五层卷积核 256个 3x3x192
  • 全连接层 每层4096个神经元

卷积神经网络中神经元的个数 = feature map 元素个数 = 卷积运算次数

4. Reducing Overfitting

在卷积神经网络中有六千万个参数,尽管存储1000个类别只需要10bit,但是把图像映射到标签这件事本身就需要参数和空间。

4.1 Data Augmentation

防止过拟合最普遍的方法就是人为的扩充数据集**(变换图像但使其标签不变)**。我们所采用的方法都占用很少的CPU,所以他不需要存储在硬盘中,通过Python Code在CPU中即可实现。当GPU在处理上一批数据时,下一批数据已经完成了数据增强的操作。

  • 方法一:平移/水平翻转
  • 方法二:颜色变换,对图片的RGB进行PCA(Principle Component Analysis——主成分分析),即对RGB 3x3的协方差矩阵进行一定的处理,让其变换的颜色更贴近自然。

Ixy = [IRxy,IGxy,IBxy]T + [P1,P2,P3]x[α1λ12λ23λ3]T

  • P = RGB 3x3 协方差矩阵的特征向量
  • λ = RGB 3x3 协方差矩阵的特征值
  • α = N(0,0,1)随机数,每个α只能使用一次
4.2 Dropout

虽然多个模型集成可以有效防止过拟合但是对于大型 来说不经济。我们发现了一种名为随机失活(Dropout)的方法去防止过拟合。

Dropout的运作原理为,在训练阶段,每一个batch随机掐死一半的神经元(即将神经元我的输出设为0)阻断该神经元的前向——反向传播。在预测阶段,我们保留所有神经元但预测结果乘上0.5,目的是使得它的数字期望和训练阶段相符。

Dropout为什么能防止过拟合?

1.模型集成,p = 0.5意味着有2n个共享权重的潜在网络。
2.记忆随机抹去,死记硬背特征(噪音的记忆也包含)。
3.Dropout减少神经元之间的联合依赖性,每个神经元都独当一面。
4.有性繁殖,类似生物,每个基因片段都需要与来自另一个随机个体的基因片段协同工作。
5.数据增强,总可以找到一张图片,是神经网络中间层结果与Dropout后相同,相当于增加了这张图片到了数据集中
6.稀疏性

Dropout也是有代价的,他需要用两倍于传统的训练时间,去弥补被掐掉的那一半学习量。

5. Details of Learning

6. Results

6.1 Qualitative Evaluations

两个GPU的训练倾向不同,GPU1更倾向于提取边缘、频率和方向特征;GPU2更倾向于提取颜色特征。

神经网络更加注重提取出的语义信息而不是原始像素信息,是实际上对这个网络进行了初步的可解释性的分析。

传统的无监督自动编码器没有使用标签,只是提取了原始像素空间特征,提取语义特征。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值