首页 文章

处理过度拟合:数据放大,交叉验证,旋转增强

提问于
浏览
3

目前,我只是通过探索tflearn(VGG.Net,GoogLeNet,RESNET等)提供蚊帐和应用这些对我的数据集(128 * 128单通道图像,图像925,前增强,5058的图像,隆胸后,两名类 - 癌症和非癌) .

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

  • 我的方法:1)通过减少卷积内核的数量来降低模型复杂度,2)减少完全连接层中的节点数量,3)扩大FC的辍学率 .

  • 问题:

1)这种过度拟合问题是否已经发生 - 至少在某种程度上 - 由于数据集不足(训练)?我认为如果我有更多(训练)数据集,这将充分代表母分布(包括验证数据集),以便验证准确性与训练准确性相似 .

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

3)据我所知,由于卷积是移位不变的,因此移位增加不会提供新的信息 . 轮换怎么样? (在切割ROI之前旋转,使图像在边界处不包含零)

谢谢!! :d

1 回答

  • 2
    • 是的

    • 不,如果您不更改训练数据集的大小,则不会 . 但是,交叉验证通常用于将更多数据用作训练数据 .

    • 旋转只有在数据集中存在时才有用 . 例如,180°旋转实际上可能会造成伤害 .

    可以在_1856436中找到标准图像的良好扩充:

    • 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)

    为了对抗过度拟合,你可能想引入正规化;特别是Dropouttf.nn.dropout) .

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

相关问题