AI论文精读(李沐) - AlexNet

文章目录

  • 如何读论文
  • 论文精读AlexNet
    • 摘要
    • 1.Introduction
    • [2.The Dataset](#2.The Dataset)
    • [3.The Architecture](#3.The Architecture)
      • [3.1 ReLU Nonlinearity](#3.1 ReLU Nonlinearity)
      • [3.2 Training on Multiple GPUs](#3.2 Training on Multiple GPUs)
    • [7. Discussion](#7. Discussion)

如何读论文

先读标题,摘要,结论

然后读方法,实验

论文精读AlexNet

摘要

我们训练了一个大型深度卷积神经网络,将 ImageNet LSVRC-2010 竞赛中的 120 万张高分辨率图像分类为 1000 个不同的类别。在测试数据上,我们实现了 37.5% 和 17.0% 的 top-1 和 top-5 错误率,这比之前的最先进水平要好得多。该神经网络拥有 6000 万个参数和 650,000 个神经元,由五个卷积层(其中一些后面是最大池层)和三个全连接层(最后一个 1000 路 softmax)组成。为了使训练速度更快,我们使用非饱和神经元和非常高效的 GPU 实现卷积运算。为了减少全连接层中的过度拟合,我们采用了最近开发的称为"dropout"的正则化方法,事实证明该方法非常有效。我们还在 ILSVRC-2012 竞赛中输入了该模型的一个变体,并取得了 15.3% 的获胜前 5 名测试错误率,而第二名的测试错误率为 26.2%。

1.Introduction

当前的物体识别方法充分利用了机器学习方法。为了提高它们的性能,我们可以收集更大的数据集,学习更强大的模型,并使用更好的技术来防止过度拟合。直到最近,标记图像的数据集还相对较小------大约有数万张图像(例如,NORB [16]、Caltech-101/256 [8, 9] 和 CIFAR-10/100 [12])。使用这种大小的数据集可以很好地解决简单的识别任务,特别是如果通过保留标签的转换来增强它们。例如,MNIST 数字识别任务当前的最佳错误率 (<0.3%) 接近人类表现 [4]。但现实环境中的物体表现出相当大的可变性,因此要学习识别它们,有必要使用更大的训练集。事实上,小型图像数据集的缺点已被广泛认识到(例如,Pinto 等人[21]),但直到最近才成为可能收集包含数百万张图像的标记数据集。新的更大数据集包括 LabelMe [23](由数十万张完全分割的图像组成)和 ImageNet [6](由 22,000 多个类别的超过 1500 万张带标签的高分辨率图像组成)。

2.The Dataset

ImageNet 是一个包含超过 1500 万张带标签的高分辨率图像的数据集,属于大约 22,000 个类别。这些图像是从网络上收集的,并由人工贴标员使用亚马逊的 Mechanical Turk 众包工具进行标记。从 2010 年开始,作为 Pascal 视觉对象挑战赛的一部分,每年举办一次名为 ImageNet 大规模视觉识别挑战赛 (ILSVRC) 的比赛。 ILSVRC 使用 ImageNet 的子集,每个类别包含大约 1000 个图像。总共大约有 120 万张训练图像、5 万张验证图像和 15 万张测试图像。

ILSVRC-2010 是唯一可用测试集标签的 ILSVRC 版本,因此我们在该版本上执行了大部分实验。由于我们还在 ILSVRC-2012 竞赛中输入了我们的模型,因此在第 6 节中,我们也报告了此版本数据集的结果,其中测试集标签不可用。在 ImageNet 上,通常报告两个错误率:top-1 和 top-5,其中 top-5 错误率是测试图像中正确标签不在模型认为最有可能的五个标签中的比例。

ImageNet 由可变分辨率图像组成,而我们的系统需要恒定的输入维度。因此,我们将图像下采样到固定分辨率 256 × 256。给定一个矩形图像,我们首先重新缩放图像,使短边的长度为 256,然后从生成的图像中裁剪出中央 256 × 256 的块。图像。除了从每个像素中减去训练集的平均活动之外,我们没有以任何其他方式预处理图像。因此,我们根据像素的(居中)原始 RGB 值来训练我们的网络。

3.The Architecture

我们的网络架构如图 2 所示。它包含八个学习层------五个卷积层和三个全连接层。下面,我们描述了我们网络架构的一些新颖或不寻常的特征。第 3.1-3.4 节根据我们对其重要性的估计进行排序,最重要的排在最前面。

3.1 ReLU Nonlinearity

将神经元的输出 f 建模为其输入 x 的函数的标准方法是使用 f(x) = tanh(x) 或 f(x) = (1 + e^−x^)^−1^。就梯度下降的训练时间而言,这些饱和非线性比非饱和非线性 f(x) = max(0, x) 慢得多。遵循 Nair 和 Hinton [20],我们将具有这种非线性的神经元称为整流线性单元 (ReLU)。使用 ReLU 的深度卷积神经网络的训练速度比使用 tanh 单元的深度卷积神经网络快几倍。图 1 对此进行了演示,该图显示了特定四层卷积网络在 CIFAR-10 数据集上达到 25% 训练误差所需的迭代次数。该图表明,如果我们使用传统的饱和神经元模型,我们将无法在这项工作中试验如此大型的神经网络。

我们并不是第一个考虑替代 CNN 中传统神经元模型的人。例如,贾勒特等人[11] 声称非线性 f(x) = |tanh(x)|,在 Caltech-101 数据集上使用其对比度归一化类型和局部平均池化效果特别好。然而,在这个数据集上,主要关注的是防止过度拟合,因此他们观察到的效果与我们在使用 ReLU 时报告的加速拟合训练集的能力不同。更快的学习对在大型数据集上训练的大型模型的性能有很大影响。

3.2 Training on Multiple GPUs

单个 GTX 580 GPU 仅具有 3GB 内存,这限制了可在其上训练的网络的最大大小。事实证明,120 万个训练样本足以训练一个 GPU 无法容纳的庞大网络。,因此,我们将网络分布在两个 GPU 上。当前的 GPU 特别适合跨 GPU 并行化,因为它们能够直接读取和写入彼此的内存,而无需通过主机内存。我们采用的并行化方案本质上是将一半的内核(或神经元)放在每个 GPU 上,还有一个额外的技巧:GPU 仅在某些层中进行通信。这意味着,例如,第 3 层的内核从第 2 层中的所有内核映射获取输入。但是,第 4 层中的内核仅从驻留在同一 GPU 上的第 3 层中的那些内核映射获取输入。选择连接模式是交叉验证的一个问题,但这使我们能够精确调整通信量,直到它达到计算量的可接受的分数。

由此产生的架构有点类似于 Cire¸san 等人采用的"柱状"CNN. [5],除了我们的列不是独立的(见图 2)。与在一个 GPU 上训练的每个卷积层中内核数量减半的网络相比,该方案将 top-1 和 top-5 错误率分别降低了 1.7% 和 1.2%。,双 GPU 网络的训练时间比单 GPU 网络略少2。

7. Discussion

我们的结果表明,大型深度卷积神经网络能够使用纯监督学习在极具挑战性的数据集上取得破纪录的结果。值得注意的是,如果删除单个卷积层,我们的网络性能就会下降。例如,删除任何中间层都会导致网络的 top-1 性能损失约 2%。因此,深度对于实现我们的成果确实很重要。

为了简化我们的实验,我们没有使用任何无监督预训练,尽管我们期望它会有所帮助,特别是如果我们获得足够的计算能力来显着增加网络的大小,而无需获得标记数据量的相应增加。到目前为止,我们的结果已经有所改善,因为我们扩大了网络并训练了更长的时间,但为了匹配人类视觉系统的下颞叶路径,我们仍然有许多数量级的工作要做。最终,我们希望在视频序列上使用非常大和深的卷积网络,其中时间结构提供了静态图像中缺失或不太明显的非常有用的信息。

为了从数百万张图像中了解数千个物体,我们需要一个具有强大学习能力的模型。然而,对象识别任务的巨大复杂性意味着即使像 ImageNet 这样大的数据集也无法指定这个问题,因此我们的模型还应该拥有大量先验知识来弥补我们没有的所有数据。卷积神经网络(CNN)就是这样一类模型[16、11、13、18、15、22、26]。它们的容量可以通过改变深度和广度来控制,并且它们还对图像的性质(即统计的平稳性和像素依赖性的局部性)做出强有力且基本正确的假设。因此,与具有类似大小层的标准前馈神经网络相比,CNN 的连接和参数要少得多,因此它们更容易训练,而它们理论上的最佳性能可能只是稍差一些。

尽管CNN具有吸引人的品质,并且尽管其本地架构相对高效,但将其大规模应用于高分辨率图像仍然昂贵得令人望而却步。幸运的是,当前的 GPU 与高度优化的 2D 卷积实现相结合,功能强大,足以促进有趣的大型 CNN 的训练,并且 ImageNet 等最近的数据集包含足够的标记示例来训练此类模型,而不会出现严重的过度拟合.

本文的具体贡献如下:我们在 ILSVRC-2010 和 ILSVRC-2012 竞赛 [2] 中使用的 ImageNet 子集上训练了迄今为止最大的卷积神经网络之一,并取得了迄今为止报道过的最佳结果,这些数据集。我们编写了高度优化的 2D 卷积 GPU 实现以及训练卷积神经网络固有的所有其他操作,并公开发布1。我们的网络包含许多新的和不寻常的功能,这些功能可以提高其性能并减少其训练时间,这些功能将在第 3 节中详细介绍。即使有 120 万个标记的训练示例,我们网络的规模也使得过度拟合成为一个严重问题,因此我们使用了几个防止过度拟合的有效技术,这在第 4 节中进行了描述。我们的最终网络包含五个卷积层和三个全连接层,这个深度似乎很重要:我们发现删除任何卷积层(每个卷积层包含不超过模型参数的1%)导致性能较差。

最后,网络的大小主要受到当前 GPU 上可用内存量以及我们愿意容忍的训练时间的限制。我们的网络需要五到六天的时间在两个 GTX 580 3GB GPU 上进行训练。我们所有的实验都表明,只需等待更快的 GPU 和更大的数据集可用,我们的结果就可以得到改善。

相关推荐
WeeJot嵌入式12 分钟前
线性代数与数据挖掘:人工智能中的核心工具
人工智能·线性代数·数据挖掘
AI小白龙*1 小时前
Windows环境下搭建Qwen开发环境
人工智能·windows·自然语言处理·llm·llama·ai大模型·ollama
cetcht88881 小时前
光伏电站项目-视频监控、微气象及安全警卫系统
运维·人工智能·物联网
惯师科技1 小时前
TDK推出第二代用于汽车安全应用的6轴IMU
人工智能·安全·机器人·汽车·imu
HPC_fac130520678162 小时前
科研深度学习:如何精选GPU以优化服务器性能
服务器·人工智能·深度学习·神经网络·机器学习·数据挖掘·gpu算力
猎嘤一号3 小时前
个人笔记本安装CUDA并配合Pytorch使用NVIDIA GPU训练神经网络的计算以及CPUvsGPU计算时间的测试代码
人工智能·pytorch·神经网络
天润融通3 小时前
天润融通携手挚达科技:AI技术重塑客户服务体验
人工智能
Elastic 中国社区官方博客5 小时前
使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
大数据·人工智能·elasticsearch·microsoft·搜索引擎·ai·azure
江_小_白6 小时前
自动驾驶之激光雷达
人工智能·机器学习·自动驾驶
yusaisai大鱼8 小时前
TensorFlow如何调用GPU?
人工智能·tensorflow