【问题标题】:Adding noise to image for deep learning, yes or no?为图像添加噪声以进行深度学习,是还是不是?
【发布时间】:2017-06-07 19:13:01
【问题描述】:

我一直认为向图像添加噪声可以防止过度拟合,还可以通过添加变化来“增加”数据集。我只是想向具有形状 (256,256,3) 的图像添加一些随机 1,它使用 uint8 来表示其颜色。我认为这根本不会影响可视化(我用 matplotlib 显示了两个图像,它们看起来几乎相同)并且它们的值总和只有 ~0.01 的平均差异。

但它看起来并没有进步。练了好久还是不如不使用噪音的。

有没有人尝试过在这样的图像分类任务中使用噪声?最终会更好吗?

【问题讨论】:

    标签: deep-learning


    【解决方案1】:

    我不会去给你的数据添加噪音。一些论文在训练过程中使用输入变形来提高模型的鲁棒性和收敛速度。然而,这些变形在统计上是低效的(不仅在图像上,而且在任何类型的数据上)。 您可以阅读 Szegedy 等人的Intriguing properties of Neural Networks 以了解更多详细信息。

    如果您想避免过度拟合,您可能有兴趣阅读regularization

    【讨论】:

    • 确实我的结果一点都不好。应该为下一个尝试正则化
    • @MonSh1rE 如果我们的任何建议对您有所帮助,我很想获得一些更新
    【解决方案2】:

    是的,您可以添加噪声来扩展您的数据集并避免过度拟合您的训练集,但请确保它是随机的,否则您的网络会将这种噪声作为它应该学习的东西(这不是您想要的东西)。我不会首先使用此方法来执行此操作,我会先旋转和/或翻转我的样本。

    但是,您的网络应该表现得更好,或者至少与您之前的网络一样好。

    我要检查的第一件事是:您如何衡量自己的表现?你之前和之后的表现是什么?你还有什么改变吗?

    【讨论】:

    • 是的,它们是随机噪声,每次我加载批次时它们都是随机生成的。在这种情况下,F2 分数是标准,我之前的表现是 0.88,但这次是 0.74 左右,但是当我输入这个时它仍在训练。后者需要更长的时间
    • 你已经扩展了你的数据集,所以你在你的数据集中有更多的样本,所以你有更多的步骤来完成一个完整的时期,所以我认为训练需要更长的时间:)
    • 我读错了。所以你并没有真正扩展你的数据集。你只是总是修改它。我不知道你是否应该这样做。我去看看:)
    • 是的,我只是不断添加非常小的噪音。 Thomas Pinetz 给出的那篇论文说它没有效果。反正我要试一试
    【解决方案3】:

    有一些作品可以解决这个问题。因为你使训练集更难训练错误会更低,但是你的泛化可能会更好。已经表明,添加噪声可以对生成对抗网络的训练产生稳定性影响 (Adversarial Training)。

    对于分类任务,它并不是那么简单。真正涉及这个主题的作品并不多。据我所知,最接近的一个是来自 google (https://arxiv.org/pdf/1412.6572.pdf) 的这个,它们显示了使用无噪音训练的局限性。他们确实报告了正则化效果,但实际上并没有比使用其他方法更好。

    【讨论】:

    • “在许多情况下,噪音基本上没有影响,而不是产生更困难的输入”是我在论文中看到的:(个人仍然不太相信。也许我应该训练上网一会就知道了
    • 我真诚地希望您确实发现性能改进,如果您确实设法提高泛化能力,我希望阅读您关于该主题的论文。然而,据我所知,没有人能够做到这一点。当然,这并不意味着不可能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多