ImageNet Classification with Deep Convolutional 论文笔记

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。

🍎个人主页:小嗷犬的个人主页

🍊个人网站:小嗷犬的技术小站

🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


本文目录


标题和作者

ImageNet Classification with Deep Convolutional Neural Networks,意为使用深度卷积神经网络在 ImageNet 数据集上进行分类,发表于 2012 年。

作者信息:

  • Alex Krizhevsky ,本文第一作者,本文提出的网络结构后被称为 AlexNet
  • Ilya Sutskever,本文第二作者,2015 年加入 OpenAI,成为 OpenAI 的联合创始人兼首席科学家。
  • Geoffrey E. Hinton,本文第三作者,2018 年图灵奖得主,神经网络之父,前两位作者的导师。

摘要

We trained a large, deep convolutional neural network to classify the 1.2 million high-resolution images in the ImageNet LSVRC-2010 contest into the 1000 different classes. On the test data, we achieved top-1 and top-5 error rates of 37.5% and 17.0% which is considerably better than the previous state-of-the-art. The neural network, which has 60 million parameters and 650,000 neurons, consists of five convolutional layers, some of which are followed by max-pooling layers, and three fully-connected layers with a final 1000-way softmax. To make training faster, we used non-saturating neurons and a very efficient GPU implementation of the convolution operation. To reduce overfitting in the fully-connected layers we employed a recently-developed regularization method called "dropout" that proved to be very effective. We also entered a variant of this model in the ILSVRC-2012 competition and achieved a winning top-5 test error rate of 15.3%, compared to 26.2% achieved by the second-best entry.

本文提出了一个大型深度卷积神经网络,该网络在 ImageNet LSVRC-2010 比赛任务(120 万张图片的 1000 分类任务)中,取得了 top-1 准确率 62.5%top-5 准确率 83.0% 的好成绩,超越了以往所有的 SOTA 方法。

该网络有 6000 万个参数和 65 万个神经元,由五个卷积层组成,其中一些后面跟着最大池化层,以及三个全连接层和一个最终的 1000 分类的 softmax 层。

为了使训练更快,作者使用 ReLU 作为激活函数(non-saturating neurons),并使用 GPU 加速卷积运算。

为了减少全连接层的过拟合,作者采用了一种新的正则化方法,即 Dropout,实验证明这一方法非常有效。

作者在 ILSVRC-2012 比赛中使用了这个模型的一个变体,并以 84.7% 的 top-5 准确率 的好成绩赢得了比赛,该比赛第二名的 top-5 准确率仅为 73.8%

创新点

笔者认为的几个影响比较大的创新点:

  • 使用了 ReLU 作为激活函数,而非传统的 TanhSigmoid 函数。ReLU 未特别压缩输出值的范围(在文中被称为 non-saturating neurons),且运算简单。
  • 将卷积运算置于多 GPU 上进行,大大加快了训练速度(当时的企业普遍还在使用 CPU 或单 GPU 训练模型)。
  • 使用了 Dropout 正则化方法,降低了模型的过拟合风险。

ReLU

ReLU ,即 Rectified Linear Unit ,是一种激活函数,即 f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)。相比传统的 TanhSigmoid 函数,ReLU 运算速度更快。

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

多 GPU

本文的模型使用两个 GTX 580 3GB GPU 进行训练。

Dropout

Dropout 是一种正则化方法,具体做法是在训练过程中,随机将一些神经元的输出置为 0。

笔者对 Dropout 的理解是:类似于 Bagging ,每次的训练数据事实上仅经过了所有的非 Dropout 神经元和一部分 Dropout 神经元,相当于隐式地训练了 2 N 2^N 2N( N N N 为 Dropout 神经元个数) 个子网络(尽管这些模型不是相互独立的),最终的输出是所有节点输出的综合值(也即最终网络是所有子网络的综合)。

其他

除此之外,本文还有一些其他的创新点,比如:

  • Local Response Normalization,即局部响应归一化,这是一种对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,这样可以使得模型对于输入的微小变化不敏感,从而提高模型的泛化能力。
  • Overlapping Pooling,即重叠池化,池化窗口大于步长,每次池化都有重叠部分,相比传统池化方法有更好效果,能够降低模型的过拟合风险。
  • 一些新的数据增强方法。

网络结构

输入层(Input layer)

输入层的输入是 224x224x3 的图片,即 224x224 的彩色图片,其中 3 通道分别为 RGB 三个通道。

卷积层(C1)

卷积(11x11)-->ReLU-->局部响应归一化(LRN)-->最大池化

卷积(11x11):卷积核大小为 11x11,步长为 4,输出通道数为 96,即输出为 55x55x96 的特征图,分为两组,每组为 55x55x48,分别位于单个 GPU 上。

ReLU :ReLU 激活函数,即 f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)。

局部响应归一化(LRN)

b x , y i = a x , y i / ( k + α ∑ j = m a x ( 0 , i − n / 2 ) m i n ( N − 1 , i + n / 2 ) ( a x , y j ) 2 ) β b_{x,y}^i=a_{x,y}^i/\left(k+\alpha\sum_{j=max(0,i-n/2)}^{min(N-1,i+n/2)}(a_{x,y}^j)^2\right)^\beta bx,yi=ax,yi/ k+αj=max(0,i−n/2)∑min(N−1,i+n/2)(ax,yj)2 β

其中 a x , y i a_{x,y}^i ax,yi 表示第 i i i 个通道的第 ( x , y ) (x,y) (x,y) 个像素点的输出, N N N 表示总的通道数, n n n 表示归一化的范围, k k k、 α \alpha α、 β \beta β、 n n n 是超参数,本文中取 k = 2 k=2 k=2、 α = 1 0 − 4 \alpha=10^{-4} α=10−4、 β = 0.75 \beta=0.75 β=0.75、 n = 5 n=5 n=5。

最大池化:池化窗口大小为 3x3,步长为 2,每组输出为 27x27x48。

卷积层(C2)

卷积(5x5)-->ReLU-->局部响应归一化(LRN)-->最大池化

卷积(5x5):卷积核大小为 5x5,步长为 1,padding 为 2,每组输出通道数为 128,即每组输出为 27x27x128 的特征图。

ReLU :ReLU 激活函数,即 f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)。

局部响应归一化(LRN) : k = 2 k=2 k=2、 α = 1 0 − 4 \alpha=10^{-4} α=10−4、 β = 0.75 \beta=0.75 β=0.75、 n = 5 n=5 n=5。

最大池化:池化窗口大小为 3x3,步长为 2,每组输出为 13x13x128。

卷积层(C3)

卷积(3x3)-->ReLU

卷积(3x3):卷积核大小为 3x3,步长为 1,padding 为 1,每组输出通道数为 192,即每组输出为 13x13x192 的特征图。

ReLU :ReLU 激活函数,即 f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)。

卷积层(C4)

卷积(3x3)-->ReLU

卷积(3x3):卷积核大小为 3x3,步长为 1,padding 为 1,每组输出通道数为 192,即每组输出为 13x13x192 的特征图。

ReLU :ReLU 激活函数,即 f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)。

卷积层(C5)

卷积(3x3)-->ReLU-->最大池化

卷积(3x3):卷积核大小为 3x3,步长为 1,padding 为 1,每组输出通道数为 128,即每组输出为 13x13x128 的特征图。

ReLU :ReLU 激活函数,即 f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)。

最大池化:池化窗口大小为 3x3,步长为 2,每组输出为 6x6x128。

全连接层(FC6)

全连接(卷积)-->ReLU-->Dropout

全连接(卷积):输入为 6x6x256,使用 4096 个 6×6×256 的卷积核进行卷积,效果等同于全连接,即输出为 1x1x4096。

ReLU :ReLU 激活函数,即 f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)。

Dropout:在训练过程中,随机将一些神经元的输出置为 0。

全连接层(FC7)

全连接(卷积)-->ReLU-->Dropout

全连接(卷积):输入为 1x1x4096,输出也为 1x1x4096。

ReLU :ReLU 激活函数,即 f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)。

Dropout:在训练过程中,随机将一些神经元的输出置为 0。

输出层(Output layer)

全连接(卷积)-->Softmax

全连接(卷积):输入为 1x1x4096,输出为 1x1x1000。

Softmax:将输出转化为概率分布。

相关推荐
小雷FansUnion42 分钟前
深入理解MCP架构:智能服务编排、上下文管理与动态路由实战
人工智能·架构·大模型·mcp
资讯分享周1 小时前
扣子空间PPT生产力升级:AI智能生成与多模态创作新时代
人工智能·powerpoint
叶子爱分享2 小时前
计算机视觉与图像处理的关系
图像处理·人工智能·计算机视觉
鱼摆摆拜拜2 小时前
第 3 章:神经网络如何学习
人工智能·神经网络·学习
一只鹿鹿鹿2 小时前
信息化项目验收,软件工程评审和检查表单
大数据·人工智能·后端·智慧城市·软件工程
张较瘦_2 小时前
[论文阅读] 人工智能 | 深度学习系统崩溃恢复新方案:DaiFu框架的原位修复技术
论文阅读·人工智能·深度学习
cver1232 小时前
野生动物检测数据集介绍-5,138张图片 野生动物保护监测 智能狩猎相机系统 生态研究与调查
人工智能·pytorch·深度学习·目标检测·计算机视觉·目标跟踪
学技术的大胜嗷2 小时前
离线迁移 Conda 环境到 Windows 服务器:用 conda-pack 摆脱硬路径限制
人工智能·深度学习·yolo·目标检测·机器学习
还有糕手2 小时前
西南交通大学【机器学习实验10】
人工智能·机器学习
江瀚视野2 小时前
百度文心大模型4.5系列正式开源,开源会给百度带来什么?
人工智能