防止过拟合

获取更多的训练数据(数据增强)

使用几何变换的数据增强

诸如翻转(Flip),裁剪(Crop),旋转(Rotation)和移位(Translation)之类的几何变换是一些常用的数据增强技术。

基于GAN的数据增强

减少网络容量

防止过拟合最简单的方法是减少模型的大小,即模型中可学习参数的数量(由层的数量和每层的单位数量决定)。在深度学习中,模型中可学习参数的数量通常被称为模型的“容量”。从直觉上看,参数越多的模型“记忆能力”就越大,因此可以很容易地学习到训练样本与其目标之间完美的字典式映射,这种映射没有任何泛化能力。例如,一个有50万个二进制参数的模型可以很容易地学习MNIST训练集中每一个数字的类别:我们只需要为这5万个数字中的每个数字设置10个二进制参数。这种模型对于分类新的数字样本是无用的。
请永远记住这一点:深度学习模型往往善于拟合训练数据,但真正的挑战是泛化,而不是拟合。

另一方面,如果网络记忆有限资源,它将无法了解这种映射一样容易,因此,为了减少损失,它将不得不诉诸学习压缩表示,预测能力的目标,正是我们感兴趣的类型表示。同时,请记住,您应该使用具有足够参数的模型,它们不会不适合:您的模型不应该缺乏记忆资源。在“容量过多”和“容量不足”之间存在一种折中办法。

不幸的是,没有什么神奇的公式来决定什么是正确的层数,或什么是每个层的正确大小。您必须评估一系列不同的体系结构(在您的验证集中,而不是在您的测试集中),以便为您的数据找到合适的模型大小。寻找合适模型大小的一般流程是,从相对较少的层和参数开始,然后开始增加层的大小,或者添加新的层,直到您看到与验证损失有关的收益递减。

  • 我们最初的网络是这样的:
from keras import models
from keras import layers

original_model = models.Sequential()
original_model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))
original_model.add(layers.Dense(16, activation='relu'))
original_model.add(layers.Dense(1, activation='sigmoid'))

original_model.compile(optimizer=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值