如何减少过拟合?
框架
模型层面
- 模型大,数据少:降低模型复杂度
- 集成多个模型
- 加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正则化更倾向于让参数整体更小,更通用
Dropout
在训练阶段动态的让一些节点失效
-
避免节点之间学到复杂的耦合关系
-
也相当于将一个网络变成多个网络的累加
early stop
在验证集上的loss开始上升时就停止训练,通常会指定patience,还可以忽略一定阈值内的loss的波动
数据增强(Data Augmentation)
扩充现有数据,提升泛化能力
关于nlp任务中的数据增强方式,具体请看nlp中的数据增强方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?