7种正则化方法

L1正则化(Lasso)

L2正则化(Ridge)

弹性网络正则化

Dropout正则化

早停法

数据增强

目录

1. 什么是正则化

2. 正则化实现方式

3. 正则化为何有用

4. L1和L2正则化介绍  

5. 弹性网络正则化(Elastic Net)

6. Dropout正则化

7. 早停法

8. 数据增强


1. 什么是正则化

正则化是一种降低机器学习模型过拟合风险的技术

2. 正则化实现方式

损失函数中添加一个正则项来实现。

正则项:基于模型参数而构建;

例如L1正则项:由所有特征权重(参数)的绝对值之和组成: \sum_{i=1}^{n} |w _i|, w是模型参数;

3. 正则化为何有用

通过限制模型参数的数量或幅度来限制模型的复杂度;

过拟合的模型的复杂度较高,引入正则化后可以避免过拟合。

例如L1正则项:模型参数的绝对值之和作为正则项。它倾向于使一些参数变为零,约束参数的大小,防止因参数过大而导致误差和噪声被放大而出现误判的问题。

4. L1和L2正则化介绍  

L1正则化公式: Loss = Original Loss + \lambda \sum_{i=1}^{n} |w_i|

L2正则化公式:Loss = OriginalLoss + \lambda \sum_{i=1}^{n}||w_i||_2

L1正则化实际上就是L1范数,L1简单示意图:

 L2正则化实际是L2范数,L2简单示意图:

从上面两图可以看出L1和L2正则化函数是凸函数,可行域是凸集,对应的问题是一个凸优化问题 -- 简单问题 

使用L1和L2正则化的原因:(可以看王木头学科学的视频,我这里介绍的不清楚: “L1和L2正则化”直观理解(之一),从拉格朗日乘数法角度进行理解_哔哩哔哩_bilibili

        产生过拟合的一个原因:学习到的函数很好的拟合了训练集,但在测试集效果不好,表现为其损失值取得最小,但在测试集损失值较大;

                然而损失值取最小可能对应多种W和b, 但是当得到一个较大的权重值时对测试集的效果可能会变差,这是因为参数过大会导致误差和噪声被放大而出现误判的问题。

因此消除过拟合可以将学习到的需要设置好权重参数的范围,不能太大也不能太小,因此希望规范权重参数的范围

这就有了:

        对于L1约束:  L(W, \lambda) = OriginalLoss + \lambda (||W||_1 - C) \ \ \ \ s.t. ||W||_1 \leq C, \lambda \geq 0

        对于L2 约束:L(W, \lambda) = OriginalLoss + \lambda (||W||_2 - C) \ \ \ \ s.t. ||W||_2 \leq C, \lambda \geq 0

        即,我们希望权重参数值被框在了C这个范围内,可视化图:

然而上述公式与正则化公式不同:L(W, \lambda) = OriginalLoss + \lambda ||W||_2,多了个C,但实际上求导后是等价的:即我们希望求出的权重参数是相同的

因此现在的正则化公式被表示为L(W, \lambda) = OriginalLoss + \lambda ||W||_2

L1正则化的特点: 可能会产生稀疏解,即部分权重参数会为0,如图:坐标轴上的参数,表示有些维度的值为0(只关注某些维度的特征),将无用特征的系数设为零

L2正则化的特点: 鼓励权重系数更平滑,即权重系数值不会相差太大(会同时考虑多个特征), 防止在特征高度相关时模型不稳定

5. 弹性网络正则化(Elastic Net)

        结合了L1正则化和L2正则化的特点,弹性网络正则化可以综合利用L1和L2正则化的优势

        公式: Loss = OriginalLoss + \lambda_1 ||W||_1 + \lambda_2 ||W||_2

        结合L1和L2的优点, 使得弹性网络正则化即考虑特征选择又考虑特征之间的相互影响

6. Dropout正则化

        在训练过程中随机将一部分神经元的输出设置为零,防止神经元之间过度依赖, 从而减少神经网络中的过拟合现象.

例如:某一层的输出向量为: [0.2, 0.5, 1.3, 0.8, 1.1]

        Dropout 概率 p=0.3 随机选择丢弃部分参数(设为0)。这意味着 70% 的参数将被保留,30% 的参数将被丢弃。比如,假设得到以下输出向量:[0, 0.5, 0, 0.8, 0]

        剩余的参数需要进行按比例放大,以确保输出的期望值一致:

                这是因为丢弃了一部分参数,剩余的参数需要补偿这些丢失的部分,否则就要在推理的时候做补偿;

        按照 p=0.3,剩余的参数将乘以 1 / (1 - p) = 1 / 0.7 ≈ 1.4286,最后得到:[0, 0.7143, 0, 1.1429, 0]

        在测试阶段,不再进行丢弃操作.

7. 早停法

        在训练过程中监测验证误差,并根据验证误差的变化来确定何时停止训练模型,以避免过拟合。

8. 数据增强

        通过对训练数据进行随机变换或扩充来增加数据集的多样性。这种方法可以帮助模型更好地泛化,并减轻过拟合问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值