Krizhevsky 等人的数据增强步骤。纸

机器算法验证 机器学习 神经网络 卷积神经网络 图像处理 数据增强
2022-03-16 10:50:25

Krizhevsky、Alex、Ilya Sutskever 和 Geoffrey E. Hinton 的论文中。Imagenet 分类与深度卷积神经网络。 ” 神经信息处理系统的进展。2012.,第 4.1 节,作者描述了他们的数据增强过程。他们说他们将训练集的大小增加了 2048 倍。这是否意味着他们总共训练了 2048 × 120 万张图像?

此外,我并不完全遵循这一点:

在测试时,网络通过提取 5 个 224 × 224 的块(四个角块和中心块)以及它们的水平反射(因此总共 10 个块)来进行预测,并平均网络的 softmax 层所做的预测在十个补丁上。

他们提取了五个 224 × 224 的补丁(角、中心和水平)是什么意思?为什么它总共会产生十个补丁?

谢谢!

3个回答

他们说他们将训练集的大小增加了 2048 倍。这是否意味着他们总共训练了 2024 X 120 万张图像?

是的,在论文中:

第一种数据增强形式包括生成图像平移和水平反射。我们通过从 256x256 图像中提取随机 224x224 补丁(及其水平反射)并在这些提取的补丁上训练我们的网络来做到这一点

他们正在从原始图像“动态”生成这些额外的补丁,在这里说:

在我们的实现中,转换后的图像是在 CPU 上的 Python 代码中生成的,而 GPU 正在对前一批图像进行训练。因此,这些数据增强方案实际上在计算上是免费的。


他们提取了五个 224 × 224 的补丁(角、中心和水平)是什么意思?为什么它总共会产生十个补丁?

原始图像的大小为 256x256,因此他们通过将左上角的原始图片裁剪为 224x224 来获得补丁。右上、左下、右下和中心也一样。这就是制作 5 个补丁。对于这些补丁中的每一个,他们都在镜像图片,所以他们得到了另外 5 个补丁。总共10个,然后他们取平均预测。

我认为他们只训练了 120 万张图像。原因如下:

即使他们每次前向和后向传递(使用 1 个 Titan X 和 cuDNN)可以获得 0.001 秒,使用 mini-batch SGD 训练 90 个 epoch 的 2048*1.28M 图像也需要这么多时间:

0.001*2048*1280000*90/60/60/24 = ~ 2730 天 = ~ 7.5 年

他们实际上是在 120 万 * 2048 张训练图像上进行训练。

我们通过从 256×256 图像中提取随机 224×224 块(及其水平反射)来做到这一点

对于每个大小为 256x256 的训练图像,如果您提取大小为 224x224 的补丁,您最多可以从图像中获得 1024 个 224x224 补丁 ((256-224)*(256-224))。对于每个这样的补丁,您都会进行水平反射。来自单个图像的总共 2048 个补丁。