如何减少过拟合?

框架

模型层面

  • 模型大,数据少:降低模型复杂度
  • 集成多个模型
  • 加norm,L0,L1,L2
  • 加dropout(本质也是bagging多个简单模型)

数据层面

  • 增大数据量
  • 增加噪声

训练层面

  • early stop

解决方案

  • 正则化

    • L0,L1,L2

    • dropout

    • early stop

  • 数据增强

正则化

正则化是一类通过限制模型复杂度,从而避免过拟合,提高泛化能力的方法,包括引入一些约束规则,增加先验、提前停止等。

L0,L1,L2正则化

指给目标函数增加关于模型权重的L0,L1,L2范数,来约束模型的复杂程度

  • L0范数:向量中的非零个数

    • 难以优化,通常不用
  • L1范数:向量中各元素绝对值之和

    • L1正则化(lasso回归): $Costfuncation=Loss+\lambda\sum \left | w \right | $
  • L2范数:向量中各元素平方之和

    • L2正则化(ridge回归): \(Costfuncation=Loss+\lambda\sum \left \| w \right \|^2\)

下图可视化可以发现:

  • L1正则化更倾向于让一些维度的参数减少到0,适用于模型压缩,特征选择

  • L2正则化更倾向于让参数整体更小,更通用

image

Dropout

在训练阶段动态的让一些节点失效

  • 避免节点之间学到复杂的耦合关系

  • 也相当于将一个网络变成多个网络的累加

early stop

在验证集上的loss开始上升时就停止训练,通常会指定patience,还可以忽略一定阈值内的loss的波动

数据增强(Data Augmentation)

扩充现有数据,提升泛化能力

关于nlp任务中的数据增强方式,具体请看nlp中的数据增强方法

posted @   shiiiilong  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示