【机器学习2】正则化regularizaiton(降低模型过拟合)
1 正则化定义
正则化是指通过对模型添加一个惩罚项,降低模型的复杂度,以此解决模型的过拟合问题。
2 常见的正则化方法
2.1 L1正则化(Lasso回归)
L1范式:所有参数的绝对值之和。
a r g m i n ∑ i = 1 N ( y t r u e − ( b + w i x i ) ) + λ ∑ i = 1 N ∣ w i ∣ argmin \sum_{i=1}^N (y_{true}-(b+w_ix_i))+ \lambda \sum_{i=1}^N |w_i| argmini=1∑N(ytrue−(b+wixi))+λi=1∑N∣wi∣
优化过程中,模型不仅要最小化预测值与真实之间的距离,还要最小化所有参数之间的和.
2.2 L2正则化(Ridge回归)
L2范式:
L2 正则化在反向传播就是对每个权重加一个线性衰减梯度,始终把权重拉向 0,但不会稀疏化到 0。
2.3 Elastic Net
L1正则实现
l1_reg = torch.norm(model.parameters(), 1)
loss = loss + lambda1 * l1_reg
Elastic Net
l1_reg = sum(torch.norm(p, 1) for p in model.parameters())
l2_reg = sum(torch.norm(p, 2)**2 for p in model.parameters())
loss = loss + lambda1 * l1_reg + lambda2 * l2_reg
3 其它降低模型拟合的方法
3.1 Dropout
定义:在训练阶段,随机选择某组神经元进行忽略,忽略是指在特定的前向或者后向传播过程中不考虑这些神经元。
训练阶段:对于每个隐藏层,对于每个训练样本,对于每次迭代,忽略(清零)节点(和相应的激活)的随机分数 p
但在测试阶段如何处理呢?
dropout和神经剪枝的区别
3.2 数据增强
数据增强(Data Augmentation) 是指在 不采集额外真实数据的情况下,通过对现有训练数据进行随机变换,生成更多多样化的训练样本,从而:
✅ 扩充训练集规模
✅ 增加数据多样性
✅ 减少过拟合
✅ 提升模型泛化能力
3.3 早停
当验证集损失在连续若干个 epoch 内不再下降(或指标不再提升)时,就停止训练并恢复到验证集性能最佳时的参数。
3.4 最大范数约束
最大范数约束是一种正则化方法,用于防止神经网络中过拟合和梯度爆炸,通过限制每个神经元的权重向量的范数不超过设定的最大值 c。
对于某一层中与单个神经元相连的权重向量 w(例如全连接层中某一行权重):
这保证了权重向量长度不会超过阈值 c,稳定网络训练
for param in model.parameters():if param is weight:norm = param.norm(2)if norm > c:param *= c / norm