防止过拟合

防止过拟合的策略包括数据增强、减少网络容量和增加正规化。数据增强通过几何变换如翻转、旋转增强训练数据。减少网络容量避免模型过度记忆训练数据。L1和L2正则化能有效防止过拟合,L1产生稀疏模型,L2防止过拟合。dropout是另一种有效的正则化技术,通过在训练期间随机关闭神经元来防止过拟合。
摘要由CSDN通过智能技术生成

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

使用几何变换的数据增强

诸如翻转(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='rmsprop',
                       loss='binary_crossentropy',
                       metrics=['acc'])
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值