通过在 MNIST 中旋转图像来人为地扩展数据集

数据挖掘 神经网络 深度学习 极简主义
2021-09-23 22:32:26

我在Michael Nielsen的《神经网络和深度学习》一书的第 3 章中遇到了这个问题,这是他在练习中提出的问题。

扩展 MNIST 训练数据的一种方法是使用训练图像的小旋转。如果我们允许训练图像任意大的旋转,可能会出现什么问题?

如果有人解释为什么大轮换会有问题,我会很高兴。

3个回答

问题是数字对旋转不是不变的。

例如,看看将 4 以 90 度的步长旋转时会发生什么:

旋转 4

因此,除非您的任务包括识别横向或倒置的数字,否则这不会提供适当的数据增强。

在对您对 Sammy 帖子的评论的某种回应中,问题不限于五度旋转。该问题允许所有旋转。

一个8旋转 90 度是不再是8. 不要训练你的神经网络来查看并称之为8.

一个6旋转 180 度是9; 一个9旋转 180 度是6. 不要训练你的神经网络来混淆这些。, 有69s 在您的测试数据中。如果你允许旋转6996s,您在识别其他数字方面看到的任何改进都可能被混淆所抵消69s。

类似地,考虑一个混淆 M 和 W 的手写识别器。

“亲爱的妈妈,母亲节快乐!”

或者回到 WNIST,“亲爱的奶奶,69岁生日快乐!明年,我们将从哈利法塔出发进行 BASE 跳伞,为您的第 100 次跳伞!”

不是错字。

Sammy 和 Dave 已经准确地回答了 Nielsen 打算提出的问题,但根据您对 Sammy 回答的评论,我想您想知道任意多个轻微旋转的训练图像是否会导致问题。

任意多个轻微旋转不会有问题;实际上,您可以通过在每个训练步骤生成一批具有小的随机线性变换(旋转是一种线性变换)的图像来模拟这一点,这种方法很常见。例如看这篇文章

为了在这里添加其他答案,将任意旋转的图像放入神经网络并没有本质上的错误尼尔森希望你能意识到这会在他所谈论的特定领域(数字识别)内引起问题:问题不在于旋转,问题在于告诉网络 180 度旋转的 9仍然是9(实际上是 6)。如果您正在训练一个网络来对血细胞类型进行分类,那么任意旋转训练图像将是一个很好的策略,因为每个细胞的方向不会携带任何特殊信息。