AlexNet阅读笔记
最近在做硕士的毕业设计,我的学长给我了一个CV的学习必读的论文清单,希望我仔细阅读学习。因此自己在这里写下读书笔记,以方便自己查阅。本人水平不足,如果笔记写的太烂还请海涵。
论文链接:ImageNet Classification with Deep Convolutional Neural Networks
论文中文翻译版本:AlexNet中英对照
参考其他笔记:知乎:AlexNet论文笔记
数据集
数据集:ILSVRC-2010、ILSVRC-2012、CIFAR-10
ILSVRC:从2010年起,作为Pascal视觉对象挑战赛的一部分,每年都会举办ImageNet大规模视觉识别挑战赛(ILSVRC)。
由于系统要求固定的输入纬度,所有图像被下采样为256*256分辨率。除了在训练集对像素减去了平均活跃度之外,所有图像都未进行任何预处理。
网络架构
整个网络包括8个学习层(learned layers),其中为5个卷积层和3个全连接层。 共计6000万参数,65万个神经元。
-
ReLU非线性:将神经元输出f建模为输入x的函数的标准方式是用f(x) = tanh(x)或f(x) = (1 + e−x)−1。考虑到梯度下降的训练时间,这些饱和的非线性比非饱和非线性f(x) = max(0,x)更慢。
关于饱和非线性和非饱和非线性的区别 -
多GPU训练:网络被分布在两个GPU上进行训练。作者采用的并行方案基本上每个GPU放置一半的核(或神经元),还有一个额外的技巧:只在某些特定的层上进行GPU通信。这意味着,例如,第3层的核会将第2层的所有核映射作为输入。然而,第4层的核只将位于相同GPU上的第3层的核映射作为输入。这种连接模式的选择有一个关于交叉验证的问题,但这可以让我们准确地调整通信数量,直到它的计算量在可接受的范围内。
-
局部响应归一化(Local Response Normalization):对于某个点,其归一化所选择的点为周围同一个位置不同特征图(feature map)的n个值(前n/2个,后n/2个,不足n/2的话到达0或N-1即可)。
n为同一空间位置的相邻的kernel maps的数量;N为本层中的卷积核总数量。;k,n,α,β为超参数,它们的值通过验证集确定。本文中作者使用k=2,n=5,α=0.0001,β=0.75。
LRN为什么有效:可以使不同的kernel产生的输出(即不同的feature map)相互竞争,这一步提高了较多正确率。 -
重叠池化(Overlapping Pooling):一般采用的最大池化都是非重叠的,如卷积核大小2 x 2,步长2,AlexNet采用的卷积核大小3 x 3,步长2,根据作者的实验发现这样做效果更好,有效地防止了过拟合。
-
整体网络结构
卷积输出特征图计算公式:
链接数量的计算:
减少过拟合
-
数据增强(Data Augmentation)
什么是数据增强? -
Dropout层:作者以0.5的概率对每个隐层神经元的输出设为0。那些用这种方式“丢弃”的神经元不再进行前向传播并且不参与反向传播。因此每次输入时,神经网络会采样一个不同的架构,但所有架构共享权重。这个技术减少了复杂的神经元互适应,因为一个神经元不能依赖特定的其它神经元的存在。因此,神经元被强迫学习更鲁棒的特征,它在与许多不同的其它神经元的随机子集结合时是有用的。
关于Dropout一些更详细的信息