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

  • Overfit 过拟合,效果如最右图所示
    在这里插入图片描述
    常见应对方案如下:
    • 增大数据集入手:More data or data argumentation
    • 简化模型参数入手: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 : 使得在保持很好的 performance 的情况下用尽可能小的 weights
    • L1-regularization: Loss + = λ ∑ ∣ θ i ∣ \text{Loss} += \lambda\sum|\theta_i| Loss+=λθi
    • L2-regularization: Loss + = 1 2 λ ∑ θ i 2 \text{Loss} +=\frac{1}{2}\lambda\sum\theta_i^2 Loss+=21λθi2,最常用,代码具体实现:给优化器 optimizer 设置 weight decay= λ \lambda λ: 如 optim.SGD(net.parameters(), lr=learning_rate, weight_decay=0.01)
    • 注:如果没有 overfitting 但是设置了 weight decay 可能会导致性能下降,要先判断清楚是否要使用

在这里插入图片描述


相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 02:18:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 02:18:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 02:18:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 02:18:01       18 阅读

热门阅读

  1. 1.提交一个bug需要包括什么内容

    2024-06-14 02:18:01       8 阅读
  2. StarkNet架构之L1-L2消息传递机制

    2024-06-14 02:18:01       11 阅读
  3. ubuntu22.04远程控制桌面的工具

    2024-06-14 02:18:01       10 阅读
  4. STM32串口不定长接收空闲中断

    2024-06-14 02:18:01       7 阅读
  5. Aspose将doc,ppt转成pdf

    2024-06-14 02:18:01       9 阅读
  6. 【Linux】事件处理模式

    2024-06-14 02:18:01       6 阅读
  7. PHP表单的多方面应用与实践

    2024-06-14 02:18:01       8 阅读
  8. 记住用户登录状态的方法:从基础到高级

    2024-06-14 02:18:01       8 阅读
  9. React-Native Modal组件中无法按返回键隐藏

    2024-06-14 02:18:01       10 阅读
  10. 【QT】QSettings读取中文乱码

    2024-06-14 02:18:01       8 阅读
  11. Llama2微调

    2024-06-14 02:18:01       6 阅读
  12. Python记忆组合透明度语言模型

    2024-06-14 02:18:01       8 阅读
  13. screenrecord

    2024-06-14 02:18:01       7 阅读