论文标题: "ImageNet Classification with Deep Convolutional Neural Networks"
背景: 在提出AlexNet之前,传统的计算机视觉任务中使用的特征提取方法主要是手工设计的特征,如SIFT、HOG等。然而,这些方法在处理复杂的图像数据时效果有限。AlexNet旨在通过深度学习的方法,特别是深度卷积神经网络,来改进图像分类任务。
主要贡献: AlexNet的主要贡献包括以下几个方面:
-
深度卷积神经网络架构: AlexNet引入了一个深度的卷积神经网络架构,包含5个卷积层和3个全连接层。这是相对于以往的神经网络模型来说更深的结构,有助于提取更复杂的图像特征。
-
ReLU激活函数: 论文采用了Rectified Linear Unit(ReLU)作为激活函数,相对于传统的Sigmoid函数,ReLU更易训练且能够加速模型的收敛速度。
-
Dropout正则化: AlexNet引入了Dropout正则化技术,通过随机关闭一些神经元的连接来减少过拟合,提高了模型的泛化能力。
-
数据增强: 论文中使用了大规模的图像数据集ImageNet,同时采用数据增强技术,如翻转、剪裁和变换等,来增加训练数据的多样性,提高了模型的性能。
-
多GPU训练: AlexNet首次在大规模卷积神经网络中采用了多GPU并行训练,加速了训练过程。
实验结果: AlexNet在ImageNet数据集上取得了显著的性能提升,将Top-5误差率从之前的26.2%降低到16.4%。这一结果标志着深度卷积神经网络在图像分类任务中的突破,使得计算机视觉领域开始广泛应用深度学习技术。
影响: AlexNet的成功奠定了深度卷积神经网络在计算机视觉领域的地位,并启发了后续深度学习模型的发展。它的结构和训练方法成为了后来神经网络架构的基础,如VGG、GoogLeNet、ResNet等,进一步推动了深度学习的研究和应用,尤其是在图像处理领域。
总结:AlexNet是一种卷积神经网络,它通过引入ReLU激活函数、局部响应归一化层和Dropout技术等关键创新,显著改进了图像分类任务的性能。它在2012年的ImageNet挑战赛中取得了重大突破,证明了深度神经网络在计算机视觉领域的巨大潜力。
数据集:
ImageNet由可变分辨率的图像组成,然而我们需要一个恒定的输入维数,因此我们将图片降采样到256x256固定分辨率。给定一个矩形图像,我们按照比例进行图像的缩放,首先将较短的一侧长度为256,后在图像中剪裁出一个256x256,除此之外,没有对图像进行任何预处理。
Alex net的网络结构
- 包含八个学习层---5个卷积层和3个全连接层
- 使用ReLu非饱和非线性函数比传统的饱和非线性函数更快。
- 由于当时的技术限制,采用两块GPU来训练模型
- 提出数据增强和dropout来防止过拟合。
卷积过程:
第一层卷积:卷积---ReLu---响应归一化---Max-pooling
卷积核:11X11X3(共96个卷积核,以一个GPU为例,一个GPU有48个卷积核),stride=4,padding=0
output_size=(input_size+2xpadding-kernel_size)/stride+1=(227+2x0-11)/4+1=55
输出:55x55x48
激活函数:ReLU
池化:使用3x3,stride=2的池化单元进行最大重叠池化:
output_size=(input_size+2xpadding-pool_size)/stride+1=(55+2x0-3)/2+1=27
输出:27x27x48
第二层卷积:卷积---ReLu---响应归一化---Max-pooling
卷积核:5x5x48(共256个卷积核,一个GPU有128个卷积核),stride=1,padding=2
output_size=(input_size+2xpadding-kernel_size)/stride+1=(27+2x2-5)/1+1=27
输出:27x27x128
激活函数:ReLU
池化:使用3x3,stride=2的池化单元进行最大重叠池化:
output_size=(input_size+2xpadding-pool_size)/stride+1=(27+2x0-3)/2+1=13
输出:13x13x128
第三层卷积(卷积--ReLu):
卷积核:3x3x256(第三层卷积用到了所有的前一层信息,所以通道数为256;共用384个卷积核,一个GPU分192个),stride=1,padding=1
output_size=(input_size+2xpadding-kernel_size)/stride+1=(13+2x1-3)/1+1=13
输出:13x13x192
激活函数:ReLU
第四层卷积(卷积--ReLu):
卷积核:3x3x192(共384个卷积核,一个GPU有192个卷积核),stride=1,padding=1
output_size=(input_size+2xpadding-kernel_size)/stride+1=(13+2x1-3)/1+1=13
输出:13x13x192
激活函数:ReLU
第五层卷积(卷积--ReLu--Max-pooling):
卷积核:3x3x192(共256个卷积核,一个GPU有128个卷积核),stride=1,padding=1
output_size=(input_size+2xpadding-kernel_size)/stride+1=(13+2x1-3)/1+1=13
输出:13x13x128
激活函数:ReLU
池化:使用3x3,stride=2的池化单元进行最大重叠池化:
output_size=(input_size+2xpadding-pool_size)/stride+1=(13+2x0-3)/2+1=6
输出:6x6x128
第六层全连接层(卷积--Dropout):
卷积核:6x6x256(共4096个卷积核,一个GPU有2048个卷积核),stride=0,padding=0
output_size=(input_size+2xpadding-kernel_size)/stride+1=(6+2x0-6)/1+1=1
输出:1x1x2048
激活函数:ReLU
Dropout:随机的断开全连接层某些神经元的连接,通过不激活某些神经元的方式防止过拟合。4096个神经元也被均分到两块GPU上进行运算。
第七层全连接层(全连接--Dropout):
全连接:输入为4096个神经元。
激活函数:ReLU。
Dropout:随机的断开全连接层某些神经元的连接,通过不激活某些神经元的方式防止过拟合。4096个神经元也被均分到两块GPU上进行运算。
第八层全连接输出层(全连接--Softmax):
全连接:输入为4096个神经元。
Softmax:这1000个神经元的运算结果通过Softmax函数中,输出1000个类别对应的预测概率值。
定性评估:
- 不同的卷积核学到的特征是不同的,这种专门化在每次运行中都会发生,并且独立于任何特定的随机权值初始化。
- 考虑图像在最后的4096维度隐藏层上所引起的特征激活,如果两幅图像产生的特征向量具有较小的欧几里得分离,我们可以说更高级别的神经网络认为它们是相似的,这种是一种图像检索的好方法。