【python机器学习】——正则化

这里写目录标题

  • 正则化 regularization
    • 正则化的目的
      • 过拟合和欠拟合
    • L1正则项与L2正则项
    • L1稀疏,L2平滑
  • 总结

正则化 regularization

正则化的目的

正则化是机器学习中的一种技术,主要用于减少模型的复杂度,防止过拟合,提高模型的泛化能力。过拟合是指模型在训练数据上学习得非常好,但在未知数据上表现不佳。为了避免这种情况,我们可以通过正则化来惩罚模型的参数,使得模型变得更简单。

正则化的目的主要有以下几点:

1.防止过拟合:通过限制模型的复杂度,正则化有助于防止模型在训练数据上过度拟合,从而提高模型在未知数据上的表现。

2.提高泛化能力:正则化可以使得模型在训练数据和测试数据之间取得更好的平衡,从而提高模型的泛化能力。

3.减少模型参数:正则化会使得部分参数的值变得更小,从而减少模型的参数数量,使得模型更简单。

4.加速模型训练:正则化可以减少模型的参数数量,从而加速模型的训练过程。

过拟合和欠拟合

(1) under fit:还没有拟合到位,训练集和测试集的准确率都还没有到达最高。
(2) over fit:拟合过度,训练集的准确率升高的同时,测试集的准确率反而降低。学的过
度了,做过的卷子都能再次答对,考试碰到新的没见过的题就考不好。
(3) just right:过拟合前训练集和测试集准确率都达到最高时刻。学习并不需要花费很多
时间,理解的很好,考试的时候可以很好的把知识举一反三。真正工作中我们是奔着过
拟合的状态去调的,但是最后要的模型肯定是没有过拟合的。

如下图所示:
在这里插入图片描述正则化就是防止过拟合,增加模型的鲁棒性 robust,鲁棒是 Robust 的音译,也就是强壮的意思。鲁棒性调优就是让模型拥有更好的鲁棒性,也就是让模型的泛化能力和推广能力更加的强大。
正则化(鲁棒性调优)的本质就是牺牲模型在训练集上的正确率来提高推广能力,W 在数值上越小越好,这样能抵抗数值的扰动。同时**为了保证模型的正确率 W 又不能极小。**故而人们将原来的损失函数加上一个惩罚项,这里面损失函数就是原来固有的损失函数,比如回归的话通常是 MSE,分类的话通常是 cross entropy 交叉熵,然后在加上一部分惩罚项来使得计算出来的模型 W 相对小一些来带来泛化能力。

L1正则项与L2正则项

做回归,则loss = MSE+L1/L2(/为或的意思),分类则为:loss = CE+L1/L2(/为或的意思)
其实 L1 和 L2 正则的公式数学里面的意义就是范数,代表空间中向量到原点的距离
常见的惩罚项有 L1 正则项或者 L2 正则项:
在这里插入图片描述
使用曼哈顿距离则为L1,使用欧式距离则为L2。
当我们把多元线性回归损失函数加上 L2 正则的时候,就诞生了 Ridge 岭回归。当我们把多元线性回归损失函数加上 L1 正则的时候,就孕育出来了 Lasso 回归。其实 L1 和 L2 正则项惩罚项可以加到任何算法的损失函数上面去提高计算出来模型的泛化能力的。
在这里插入图片描述上图中蓝色指MSE,红色的分别为L2、L1。

L1稀疏,L2平滑

L1稀疏(L1 Sparsity)和L2平滑(L2 Smoothness)是两种常用的正则化技术,在机器学习和优化问题中经常用来防止模型过拟合,即模型在训练数据上表现很好,但在未知数据上表现不佳。

L1稀疏:
1.L1正则化,也被称为Lasso正则化,它是通过在损失函数中增加L1范数(元素的绝对值之和)来惩罚模型的权重。
2. 这种正则化倾向于产生稀疏解,即大部分权重变为0,从而使得模型更加简单。
3. 在特征选择的场景中,L1正则化可以自动进行特征选择,那些不重要的特征(对应权重为0)会被自动剔除。
4.L1正则化能够给出更强的稀疏性,因为它倾向于将系数压缩到0,而L2正则化则不太可能做到这一点。

L2平滑:
1. L2正则化,也被称为Ridge正则化,通过在损失函数中增加L2范数(权重的平方和)来惩罚模型。
2.与L1正则化不同的是,L2正则化倾向于减少权重的绝对值,但不会让它们变为0,因此模型不会那么稀疏。
3. L2正则化可以稳定模型的斜率,使得模型的输出更加平滑,从而在训练数据上产生较为连续和平滑的预测结果。
4.相对于L1正则化,L2正则化在数值上更稳定,更容易求解,因为它不会导致权重变为0,保持了权重的连续性。
在这里插入图片描述
上式中λ是正则项系数,λ越大,说明我们算法工程师越看重模型的泛化能力,经验值是设置 0.4,也可以看成是保障正确率的 base loss 的权值是 1,保障泛化能力的正则项权值是0.4。
以下公式就是 L1 或者 L2 的导函数,也就是每次梯度下降会多走的幅度,我们可以看
到如果是 L1 每次会多走η*1 的幅度,我们知道η学习率一开始设置一个常数那么每次多走
的幅度对应不同的维度来说是一样的一个常数,学习率是 0.5 的话,比如θ1 多走 0.5,θ2
也是多走 0.5。
在这里插入图片描述为了提高模型泛化能力,更常用的也是L2。通常我们为了去提高模型的泛化能力 L1 和 L2 都可以使用。L1 的稀疏性在做机器学习的时候,还有一个副产品就是可以帮忙去做特征的选择。

总结

本文介绍了正则化 基本概念及常见的L1与L2范数是什么,后续将继续介绍机器学习相关内容,下一节介绍Lasso回归、Ridge回归、多项式回归及保险花销预测实战案例。

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值