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正则化主要用于缓解过拟合,可以将模型的权重设得比较平滑,从而达到缓解过拟合的目的。

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

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

相关文章

  • 分类、目标检测、语义分割、实例分割的区别

    计算机视觉的任务很多,有图像分类、目标检测、语义分割、实例分割和全景分割等,那它们的区别是什么呢? 1、Image Classification(图像分类) 图像分类(下图左)就是对图像判断出所属的分类,比如在学习分类中数据集有人(person)、羊(sheep)、狗(dog)和猫(cat)四种,图像分类要求给定一个图片输出图片里含有哪些分类,比如下图的例子…

    2023年4月6日
    00
  • 手写数字识别(keras)

    数据准备 课程中获取数据的方法是从库中直接load_data from keras.datasets import mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() 我尝试了一下,报这样的错误:[WinError 10054] 远程主机强迫关闭了一个现有的连接。so,我就直接去官网下…

    2023年4月8日
    00
  • 四、循环神经网络

    1.1 循环神经网络与应用 1.2 循环神经网络模型 1.3 BPTT算法 1.4 图像描述 1.5 LSTM(Long Short Time Memory) 1.6 LSTM为什么不会比RNN更容易出现梯度消失 1.7 LSTM的变体 1.7.1 让门层也接收细胞状态的输入 1.7.2 通过使用couple忘记和输入门 1.7.3 GRU(Gated Re…

    循环神经网络 2023年4月7日
    00
  • 权重对生成对抗网络GAN性能的影响

    本文制作了一个生成对抗网络GAN网络,并通过调节权重的初始化方法来观察权重对网络性能的影响。 生成网络的结构是784*300*784,对抗网络的结构是784*300*1.生成网络的输入是一个28*28的二维数组, double []z=new double[28*28]; for(int n=0 ;n<28;n++){ for(int m=0 ;m&l…

    GAN生成对抗网络 2023年4月7日
    00
  • AI科学家带你从零开始学习:循环神经网络 !

    前面的教程里我们使用的网络都属于前馈神经网络。为什么叫前馈是整个网络是一条链(回想下gluon.nn.Sequential),每一层的结果都是反馈给下一层。这一节我们介绍循环神经网络,这里每一层不仅输出给下一层,同时还输出一个隐藏状态,给当前层在处理下一个样本时使用。下图展示这两种网络的区别。 循环神经网络的这种结构使得它适合处理前后有依赖关系的样本。我们拿…

    2023年4月8日
    00
  • ubuntu 安装 caffe 解决://home/xiaojie/anaconda/lib/libpng16.so.16:对‘inflateValidate@ZLIB_1.2.9’未定义的引用

    1. 当运行命令”make runtest -j8″ 时出现上述问题,有两种解决方案:   1)GitHub上的解决方案,链接:https://github.com/BVLC/caffe/issues/6139      可以看出,是可以解决问题的!!!   2)执行命令: 1 git clone https://github.com/madler/zlib…

    2023年4月6日
    00
  • Keras学习笔记三:一个图像去噪训练并离线测试的例子,基于mnist

    训练模型需要的数据文件有: MNIST_data文件夹下的mnist_train、mnist_test、noisy_train、noisy_test。train文件夹下60000个图片,test下10000个图片 noisy_train、noisy_test下的图片加了椒盐噪声与原图序号对应 离线测试需要的数据文件有: MNIST_data文件夹下的my_m…

    Keras 2023年4月8日
    00
  • Caffe之初见:跑跑mnist,cifar10

    操作系统:win8.1编译环境:Caffe+CUDA+cuDNN显卡:Nvidia GeForce GT 730(计算能力只有2.1,带不动cuDNN,但不影响使用)环境安装参考:Caffe环境布置 一、Minst训练 开始训练mnist。 第一步:我的目录是E:Caffe-Masterexamplesmnist获取leveldb格式的数据集不能FQ的,就到…

    2023年4月5日
    00
合作推广
合作推广
分享本页
返回顶部