【PyTorch 新手基础】Regularization -- 减轻过拟合 overfitting

机器学习的根本问题是优化和泛化之间的对立

  • 优化(optimization)是指调节模型以在训练数据上得到最佳性能(即机器学习中的学习)
  • 泛化(generalization)是指训练好的模型在前所未见的数据上的性能好坏

深度学习模型通常都很擅长拟合训练数据,但真正的挑战在于泛化,而不是拟合

机器学习的目的当然是得到良好的泛化,但你无法控制泛化,只能基于训练数据调节模型

  • 训练开始时,优化和泛化是相关的:训练数据上的损失越小,测试数据上的损失也越小。这时的模型是欠拟合(underfit)的,即仍有改进的空间,网络还没有对训练数据中所有相关模式建模
  • 但在训练数据上迭代一定次数之后,泛化不再提高,验证指标先是不变,然后开始变差,即模型开始过拟合。这时模型开始学习仅和训练数据有关的模式,但这种模式对新数据来说是错误的或无关紧要的
  • Overfit 过拟合,效果如最右图所示
    在这里插入图片描述
    常见应对方案如下:
    • 增大数据集入手:More data or data argumentation (用 ImageDataGenerator 可快速部署)
    • 简化模型参数入手:Constraint model complexity (shallow model, regularization) or dropout
      • dropout: torch.nn.Dropout(0.1) 加一层 dropout 层, 设 dropout_prob = 0.1
      • 注意 1) 区别和 tensorflow 中 tf.nn.dropout(keep_prob) 设置的相反; 2) 只在 train 的时候 dropout,测试的时候要 model.eval() 切换评估模式无 dropout
    • 减少训练时间入手:early stopping (用 validation set 做提前的训练终止),是一个 trick

  • Regularization / weight decay : 使
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值