一句话终极定义
正则项 = 给模型加的「紧箍咒 / 惩罚项」目的:防止模型死记硬背(过拟合),强迫它学真正的规律,让它能举一反三。
先回顾你已经懂的:过拟合
模型(学生)训练集(作业)测试集(考试)
过拟合 = 学生把作业原题、甚至错题都背下来,作业全对,考试一塌糊涂。
正则项到底是干嘛的?
就是在训练时,给模型添点 “麻烦”、加个限制,不让它学得太 “刁钻”、太 “死记硬背”。
简单说:原本模型只关心:怎么把训练误差降到最低(背题)加了正则项后:模型要同时满足两个要求
- 尽量把训练误差降低(学会知识)
- 不能把参数学得太夸张、太极端(不许死记硬背)
谁来管第二条?就是正则项!
超通俗比喻(终身不忘)
🧑⚕️模型 = 学徒医生📚训练数据 = 看病案例✅目标 = 学会看病,而不是背案例
没有正则项(不管教)学徒把100 个案例的细节全背下来,比如 “病人穿红衣服 = 感冒”,换个病人就不会看。→过拟合
加了正则项(师傅管着)师傅说:不准记无关细节!只能记核心症状(发烧、咳嗽)学徒只能学通用规律,不能钻牛角尖。→不背题、会看病、泛化能力强
正则项 = 师傅的规矩
深度学习里最常见的 2 种正则(你都见过!)
1. 权重衰减(L2 正则)—— 最常用
就是你在优化器里看到的weight_decay(权重衰减)。作用:不让权重变得太大、太极端。
- 权重太大 = 模型太钻牛角尖
- 权重小一点 = 模型更平稳、不死记硬背
代码里长这样(你见过):
python
运行
trainer = torch.optim.SGD(net.parameters(), lr=0.1, weight_decay=0.001)weight_decay就是正则项的强度!
2. Dropout —— 你刚学的!
作用:训练时随机关掉一些神经元,不让模型依赖某些神经元,强迫它学通用特征。这也是一种正则化!
数学上超简单理解(不吓人)
原本损失函数:损失 = 预测误差
加了正则项后:总损失 = 预测误差 + 正则项(惩罚)
模型想让总损失变小,就必须:
- 误差尽量小(学得准)
- 惩罚尽量小(不许乱学)
→ 两边平衡,模型就不会过拟合了!
和你之前知识串联(复习神器)
- 过拟合:模型太自由,死记硬背
- 正则项:给模型加限制,收住它
- 权重衰减、Dropout:都是正则化的具体方法
- 目标只有一个:让模型学会规律,而不是背题
终极口诀(新手必背)
正则项,是紧箍咒;防过拟合,不背题;权重小,随机丢;模型稳,考得好!
总结(最精简)
正则化 = 防止过拟合的所有方法总称正则项 = 加在损失里的惩罚,约束模型不要太极端