L1和L2正则化之间的区别

L1和L2正则化是在机器学习中用于处理过拟合问题的常用技术。它们的主要区别在于对于罚项的处理方式不同。

  1. L1正则化

L1正则化是将所有参数的绝对值加起来,并乘以一个正则化系数λ,将其加在优化函数的目标函数中,即

$$
L1=\lambda\sum\limits_{i=1}^{n} \left| w \right|
$$

其中,$w$ 表示模型的权重,$n$ 表示权重的个数,$\lambda$ 是正则化强度的超参数。L1正则化的主要作用是将一些不重要的参数的权重降为0,从而达到特征选择的效果。

以线性回归为例,假设有以下的目标函数:

$$
f(w)=\sum\limits_{i=1}^{m} (y_i - w \cdot x_i)^2
$$

加上L1正则化的惩罚项后,我们得到新的目标函数:

$$
f(w)=\sum\limits_{i=1}^{m} (y_i - w \cdot x_i)^2 + \lambda \sum\limits_{i=1}^{n} |w_i|
$$

假设现在有一组样本 $X=\begin{bmatrix}1 & 1 \ 2 & 2\end{bmatrix}$ 和 $Y=\begin{bmatrix}2 \ 3\end{bmatrix}$ ,使用sklearn的LinearRegression模型来拟合此数据集,代码如下:

from sklearn.linear_model import LinearRegression

X = [[1, 1], [2, 2]]
Y = [2, 3]

reg = LinearRegression()
reg.fit(X, Y)

print(reg.coef_)
print(reg.intercept_)

输出结果为:

[0.5 0.5]
1.0

可以看到,模型对于每个特征都有相同的权重。接下来,我们对模型加入L1正则化来看看它的效果。代码如下:

from sklearn.linear_model import Lasso

X = [[1, 1], [2, 2]]
Y = [2, 3]

reg = Lasso(alpha=0.1)
reg.fit(X, Y)

print(reg.coef_)
print(reg.intercept_)

输出结果为:

[0.7 0. ]
1.2

可以看到,当我们使用L1正则化时,某些特征的权重被降为了0。这就是L1正则化的特性,它可以有效地减少特征的数量。

  1. L2正则化

L2正则化的惩罚项是所有权重的平方和(不包括偏置项),并乘以一个正则化系数λ,将其加在优化函数的目标函数中,即

$$
L2=\lambda\sum\limits_{i=1}^{n} w^2
$$

L2正则化对于不同的参数值有不同的惩罚程度,而L1正则化则对所有参数值有相同的惩罚程度。L2正则化主要作用是缓解过拟合现象,它可以使得模型的权重比较平滑,不会有太大的波动。

使用线性回归的例子来举例,假设有以下的目标函数:

$$
f(w)=\sum\limits_{i=1}^{m} (y_i - w \cdot x_i)^2
$$

加上L2正则化后的目标函数为:

$$
f(w)=\sum\limits_{i=1}^{m} (y_i - w \cdot x_i)^2 + \lambda \sum\limits_{i=1}^{n} w_i^2
$$

同样以线性回归为例,假设现在有一组样本 $X=\begin{bmatrix}1 & 1 \ 2 & 2\end{bmatrix}$ 和 $Y=\begin{bmatrix}2 \ 3\end{bmatrix}$ ,使用sklearn的LinearRegression模型来拟合此数据集,代码如下:

from sklearn.linear_model import LinearRegression

X = [[1, 1], [2, 2]]
Y = [2, 3]

reg = LinearRegression()
reg.fit(X, Y)

print(reg.coef_)
print(reg.intercept_)

输出结果为:

[0.5 0.5]
1.0

同样地,接下来我们对模型加入L2正则化来看看它的效果。代码如下:

from sklearn.linear_model import Ridge

X = [[1, 1], [2, 2]]
Y = [2, 3]

reg = Ridge(alpha=0.1)
reg.fit(X, Y)

print(reg.coef_)
print(reg.intercept_)

输出结果为:

[0.56 0.56]
0.85

由于加入了L2正则化,模型的权重比以前更平滑了,这可以帮助我们缓解过拟合的现象。

综上所述,L1和L2正则化的主要区别在于对罚项的处理方式不同。L1正则化主要用于特征选择,可以将一些不重要的特征的权重设为0,从而达到特征选择的目的。L2正则化主要用于缓解过拟合,可以将模型的权重设得比较平滑,从而达到缓解过拟合的目的。

阅读剩余 65%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:L1和L2正则化之间的区别 - Python技术站

(0)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • 关于caffe-windows中 compute_image_mean.exe出现的问题

    这两天有兴致装了下caffe。感受下这个框架。 可是在这个过程中遇到非常多问题。我把碰到的问题和解决方式写下,便于后人高速上手。 compute_image_mean.exe 编译出来后。运行数据变换时。出现下图的情况。 随后。迅速到网上查找相关信息。 看到了以下这篇博客。关于leveldb 的 http://blog.csdn.net/cywosp/art…

    2023年4月6日
    00
  • keras 保存训练的最佳模型

    转自:https://anifacc.github.io/deeplearning/machinelearning/python/2017/08/30/dlwp-ch14-keep-best-model-checkpoint/,感谢分享 深度学习模型花费时间大多很长, 如果一次训练过程意外中断, 那么后续时间再跑就浪费很多时间. 这一次练习中, 我们利用 K…

    Keras 2023年4月8日
    00
  • 遥感目标检测数据集汇总

    文章目录 1. 光学数据集 1.1 DIOR 1.2 LEVIR 1.3 DOTA 1.4 RSOD 1.5 NWPU VHR-10 1.6 VEDAI 1.7 COWC 1.8 ITCVD 1.9 DIUx xView 2018 1.10 HRSC2016 1.11 TAS 1.12 SZTAKI‐INRIA 1.13 UCAS AOD 1.14 DLR …

    2023年4月8日
    00
  • 【机器学习入门与实践】数据挖掘-二手车价格交易预测(含EDA探索、特征工程、特征优化、模型融合等)

    【机器学习入门与实践】数据挖掘-二手车价格交易预测(含EDA探索、特征工程、特征优化、模型融合等) 【机器学习入门与实践】数据挖掘-二手车价格交易预测(含EDA探索、特征工程、特征优化、模型融合等) note:项目链接以及码源见文末 1.赛题简介 了解赛题 赛题概况 数据概况 预测指标 分析赛题 数据读取pandas 分类指标评价计算示例 回归指标评价计算示…

    机器学习 2023年4月14日
    00
  • (二)目标检测算法之R-CNN

      系列博客链接: (一)目标检测概述 https://www.cnblogs.com/kongweisi/p/10894415.html   概述: 1、目标检测-Overfeat模型 2、目标检测-R-CNN模型   2.1 完整R-CNN结构(R-CNN的完整步骤)   2.2 R-CNN训练过程   2.3 R-CNN测试过程   2.4 总结(缺点…

    2023年4月7日
    00
  • 将模型转为NNIE框架支持的wk模型第一步:tensorflow->caffe

    摘要:本系列文章旨在分享tensorflow->onnx->Caffe->wk模型转换流程,主要针对的是HI3516CV500, Hi3519AV100 支持NNIE推理框架的海思芯片的算法工程落地。 本文分享自华为云社区《将模型转为NNIE框架支持的wk模型——以tensorflow框架为例(一)》,原文作者:wwwyx_*^▽^*  。…

    2023年4月8日
    00
  • GAN 生成对抗模型详解

    Goodfellow 等人提出来的 GAN 是通过对抗过程估计生成模型的新框架。在这种框架下,我们需要同时训练两个模型,即一个能捕获数据分布的生成模型 G 和一个能估计数据来源于真实样本概率的判别模型 D。生成器 G 的训练过程是最大化判别器犯错误的概率,即判别器误以为数据是真实样本而不是生成器生成的假样本。因此,这一框架就对应于两个参与者的极小极大博弈(m…

    2023年4月6日
    00
  • 82、TensorFlow教你如何构造卷积层

    ”’ Created on 2017年4月22日 @author: weizhen ”’ import tensorflow as tf #通过tf.get_variable的方式创建过滤器的权重变量和偏置变量,上面介绍了卷积层 #的参数个数只和过滤器的尺寸、深度以及当前层节点矩阵的深度有关,所以这里声明的参数变量 #是一个四维矩阵,前面两个维度代表了过…

    卷积神经网络 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部