【问题标题】:Dealing with over-fitting: data enlargement, cross-validation, rotation-augmentation处理过拟合:数据放大、交叉验证、旋转增强
【发布时间】:2017-05-08 22:17:06
【问题描述】:

目前,我只是在探索 tflearn 提供的网络(VGG.Net、GoogLeNet、ResNet 等)并将它们应用到我的数据集(128*128 单通道图像、925 张图像-增强前、5058 张图像-增强后,两类——癌性和非癌性)。

  1. 问题:训练准确度 (~100%) 和验证准确度 (~70%) 之间存在很大差异。

  2. 我的方法:1) 通过减少卷积核的数量来降低模型复杂度,2) 减少全连接层的节点数量,3) 提高 FC 的 drop-out 率。

    李>
  3. 问题:

1) 这种过拟合问题是否会发生——至少在某种程度上——是由于(训练)数据集不足造成的? 我认为如果我有更多(训练)数据集,这将足以代表母分布(也包括验证数据集),因此验证准确度将类似于训练准确度。

2) 交叉验证是否有助于减少差异?但是,如果我有一个永远不会用作训练集的测试集,我认为我的测试 acc 仍然会与 training acc 有很大差异。对吗?

3) 据我所知,移位增强不会提供新信息,因为卷积是移位不变的。轮换呢? (在切片 ROI 之前进行旋转,以使图像在边界处不包含零)

谢谢!! :D

【问题讨论】:

    标签: machine-learning rotation cross-validation


    【解决方案1】:
    1. 是的
    2. 不,如果您不更改训练数据集的大小,则不会。但是,交叉验证通常用于将更多数据用作训练数据。
    3. 只有在数据集中存在旋转时才会有所帮助。例如,180° 旋转实际上可能会造成伤害。

    可以在tensorflow CIFAR10 example 中找到对标准图像的良好增强:

    • tf.random_crop(reshaped_image, [height, width, 3])
    • tf.image.random_flip_left_right(distorted_image)
    • tf.image.random_brightness(distorted_image, max_delta=63)
    • tf.image.random_contrast(distorted_image, lower=0.2, upper=1.8)

    为了对抗过度拟合,您可能需要引入正则化;尤其是Dropout (tf.nn.dropout)。

    但是,它不必过拟合。也可能是您的测试数据的分布与您的训练数据不同(但更有可能过度拟合)。

    【讨论】:

      【解决方案2】:

      我的 2 美分:

      1. 交叉验证可能有帮助(或没有帮助)。视情况而定。

      CV 背后的想法是重新采样有限的可用训练数据并平均模型的准确性。 想象一下没有应用 CV 并且测试数据中存在巨大异常值(在考虑训练数据时被忽略)的情况。模型有偏差,可能会导致异常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 2020-03-26
        • 2012-08-21
        • 2020-06-26
        • 2020-08-27
        • 2019-09-17
        • 2023-03-29
        相关资源
        最近更新 更多