2.AlexNet

一.背景

在2010年的ImageNet LSVRC-2010上,AlexNet在给包含有1000种类别的共120万张高分辨率图片的分类任务中,在测试集上的top-1和top-5错误率为37.5%和17.0%(top-5 错误率:即对一张图像预测5个类别,只要有一个和人工标注类别相同就算对,否则算错。同理top-1对一张图像只预测1个类别),在ImageNet LSVRC-2012的比赛中,取得了top-5错误率为15.3%的成绩。AlexNet有6亿个参数和650,000个神经元,包含5个卷积层,有些层后面跟了max-pooling层,3个全连接层,为了减少过拟合,在全连接层使用了dropout,下面进行更加详细的介绍。

二.数据集

数据来源于ImageNet,训练集包含120万张图片,验证集包含5万张图片,测试集包含15万张图片,这些图片分为了1000个类别,并且有多种不同的分辨率,但是AlexNet的输入要求是固定的分辨率,为了解决这个问题,Alex的团队采用低采样率把每张图片的分辨率降为256×256,具体方法就是给定一张矩形图像,首先重新缩放图像,使得较短边的长度为256,然后从结果图像的中心裁剪出256×256大小的图片。
2.AlexNet
三.网络结构
2.AlexNet
2.AlexNet

3.1 非线性ReLU函数

在当时,标准的神经元**函数是tanh()函数,即

这种饱和的非线性函数在梯度下降的时候要比非饱和的非线性函数慢得多,因此,在AlexNet中使用ReLU函数作为**函数

下面这种图展示了在一个4层的卷积网络中使用ReLU函数在CIFAR-10数据集上达到25%的训练错误率要比在相同网络相同条件下使用tanh函数快6倍

2.AlexNet

3.2 多GPU训练

AlexNet采用两路GTX 580 3G并行训练,并行训练的示意图如下图所示
2.AlexNet

3.3 局部响应归一化(Local Response Normalization,LRN)

ReLU函数不像tanh和sigmoid一样有一个有限的值域区间,所以在ReLU之后需要进行归一化处理,LRN的思想来源于神经生物学中一个叫做“侧抑制”的概念,指的是被**的神经元抑制周围的神经元。

3.4 重叠池化(Overlapping Pooling)

重叠池化就是指相邻池化窗口之间有重叠部分,更确切地说,池化层可以看作是由间隔为 的池化单元的网格组成,每个池化单元总结了以合并单元的位置为中心的大小为 的邻域,即池化单元大小为 ,步长为 ,当 时就是重叠池化,在AlexNet中 ,这样的设定使他们的top-1和top-5错误率分别降低了0.4%和0.3%(和使用不重叠的池化 相比)。

4. 减少过拟合

4.1 Data Augmentation(数据增量)

镜像反射和随机剪裁
改变训练样本RGB通道的强度值

4.2 Dropout