一文看懂L1、L2正则化的区别

2023-11-17

正则化是一种为了减小测试误差的行为(有时候会增加训练误差)。我们在构造机器学习模型时,最终目的是让模型在面对新数据的时候,可以有很好的表现。当你用比较复杂的模型比如神经网络,去拟合数据时,很容易出现过拟合现象(训练集表现很好,测试集表现较差),这会导致模型的泛化能力下降,这时候,我们就需要使用正则化,降低模型的复杂度。

1 向量范数

对于向量 x = [ x 1 , x 2 , … , x m ] x=\left[x_{1}, x_{2}, \ldots, x_{m}\right] x=[x1,x2,,xm],常用的范数包括:

1.1 1-范数

∥ x ∥ 1 = ∑ i = 1 m ∣ x i ∣ \|x\|_ {1}=\sum_{i=1}^{m}\left|x_{i}\right| x1=i=1mxi
即向量元素绝对值之和, x x x到零点的曼哈顿距离。

1.2 2-范数

∥ x ∥ 1 = ∑ i = 1 m x i 2 \|x\|_ {1}=\sqrt{\sum_{i=1}^{m} x_{i}^{2}} x1=i=1mxi2
2-范数也称为Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方,表示 x x x到零点的欧式距离。

1.3 p-范数

∥ x ∥ p = ( ∑ i = 1 m ∣ x i ∣ p ) 1 p \|x\|_ {p}=\left(\sum_{i=1}^{m}\left|x_{i}\right|^{p}\right)^{\frac{1}{p}} xp=(i=1mxip)p1
即向量元素绝对值的p次方和的1/p次幂,表示 x x x到零点的p阶闵氏距离。

1.4 ∞ {\infty} -范数

∥ x ∥ ∞ = max ⁡ i ∣ x i ∣ \|x\|_ {\infty}=\max _ {i}\left|x_{i}\right| x=imaxxi
当p趋向于正无穷时,即所有向量元素绝对值中的最大值。

1.5 向量范数效果

不同的范数

2 正则化

当统计模型把随机误差和噪声也考虑进去而不仅仅是考虑数据的基础关联时,就会出现过过拟合。正则化通过添加参数的惩罚项,防止模型对数据过拟合。
min ⁡ θ 1 N ∑ i = 1 N L ( y i , f θ ( x i ) ) + λ Ω ( θ ) \min _ {\theta} \frac{1}{N} \sum_{i=1}^{N} \mathcal{L}\left(y_{i}, f_{\theta}\left(x_{i}\right)\right)+\lambda \Omega(\theta) θminN1i=1NL(yi,fθ(xi))+λΩ(θ)

2.1 L 1 L1 L1正则化(套索LASSO)

L 1 L1 L1正则化时,对应惩罚项为 L 1 L1 L1范数:
Ω ( θ ) = ∣ ∣ θ ∣ ∣ 1 = ∑ m = 1 M ∣ θ m ∣ min ⁡ θ 1 N ∑ i = 1 N L ( y i , f θ ( x i ) ) + λ ∥ θ ∥ 1 \begin{aligned} &\Omega(\theta)=|| \theta||_ {1}=\sum_{m=1}^{M} | \theta_{m}| \newline &\min _ {\theta} \frac{1}{N} \sum_{i=1}^{N} \mathcal{L}\left(y_{i}, f_{\theta}\left(x_{i}\right)\right)+\lambda\|\theta\|_ {1} \end{aligned} Ω(θ)=θ1=m=1MθmθminN1i=1NL(yi,fθ(xi))+λθ1

2.2 L 2 L2 L2正则化(岭回归Ridge)

L 2 L2 L2正则化时,对应惩罚项为 L 2 L2 L2范数的平方:
Ω ( θ ) = ∣ ∣ θ ∣ ∣ 2 2 = ∑ m = 1 M θ m 2 min ⁡ θ 1 N ∑ i = 1 N L ( y i , f θ ( x i ) ) + λ ∥ θ ∥ 2 2 \begin{aligned} &\Omega(\theta)=|| \theta||_ {2}^{2}=\sum_{m=1}^{M} \theta_{m}^{2} \newline &\min _ {\theta} \frac{1}{N} \sum_{i=1}^{N} \mathcal{L}\left(y_{i}, f_{\theta}\left(x_{i}\right)\right)+\lambda\|\theta\|_ {2}^{2} \end{aligned} Ω(θ)=θ22=m=1Mθm2θminN1i=1NL(yi,fθ(xi))+λθ22

2.3 L 1 、 L 2 L1、L2 L1L2正则化的区别

在这里插入图片描述
红色的椭圆和蓝色的区域的切点就是目标函数的最优解,如果是圆,则很容易切到圆周的任意一点,但是很难切到坐标轴上,因此没有稀疏。但是如果是菱形或者多边形,则很容易切到坐标轴上,导致 W W W中许多项变成零,因此很容易产生稀疏的结果。

总结

  • L 1 L1 L1正则化:它的优良性质是能产生稀疏性,更适用于特征选择。稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性”。
  • L 2 L2 L2正则化:使得模型的解偏向于范数较小的 W W W,通过限制 W W W范数的大小实现了对模型空间的限制,从而在一定程度上避免了过拟合。并不具有产生稀疏解的能力,得到的系数仍然需要数据中的所有特征才能计算预测结果,从计算量上来说并没有得到改观。
  • 常用 L 1 、 L 2 L1、L2 L1L2正则化,当p<1时,模型进行稀疏性学习。

参考

https://www.jianshu.com/p/c9bb6f89cfcc  
https://blog.csdn.net/qq_25847123/article/details/90400678

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文看懂L1、L2正则化的区别 的相关文章

随机推荐

  • 读者-写者问题 (操作系统-进程)

    读者 写者问题 读进程优先算法 写者优先算法 问题描述 有读者和写者两组并发进程 共享一个文件 当两个或两个以上的读进程同时访问共享数据时不会产生副作用 但若某个写进程和其他进程 读进程或写进程 同时访问共享数据时则可能导致数据不一致的错误
  • 用vue3+elementplus做的一个滚动菜单栏的组件

    目录 起因 概览 设计及解决思路 1 滚动条竖起来 2 绑定菜单 3 吸附 优化 组件全部代码 起因 在elementplus中看到了滚动条绑定了slider 但是这个感觉很不实用 在底部 而且横向滚动 最常见的应该是那种固定在左上角的带着
  • 交叉编译适配mips架构的GDB

    交叉编译GDB 交叉编译GDB 1 下载GDB源码 2 解压并创建安装目录 3 编译安装 4 可能遇到的错误解决方法 1 下载termcap 2 将上面的编译安装gdb的脚本改一下 3 对于最后的权限不够无法删除PC机上termcap h文
  • 使用UE4(UnrealEngine)创建工程

    UE4系列文章目录 文章目录 UE4系列文章目录 前言 一 步骤 1 打开UE4软件 2 新建工程 3 选择游戏类型模板 4 项目设置 运行游戏 前言 使用UE4 UnrealEngine 创建工程 我这里的ue4版本是4 27 2 一 步
  • stm32循迹小车详细制作过程(附加完全版代码)

    stm32循迹小车详细制作过程 一 材料准备 1 主控板 Stm32f103c8t6 推荐 便宜够用 2 下载器 USB转TTL串口模块 3 电源 12v锂电池组 配套充电器 推荐下图这种 方便 好接线 12v 12v 12v 4 电机驱动
  • No module named ‘dateutil‘解决

    运行程序报错 无法直接pip install dateutil 需要pip install python dateutil
  • [非线性控制理论]6_滑模控制 (sliding mode control)

    非线性控制理论 1 Lyapunov直接方法 非线性控制理论 2 不变性原理 非线性控制理论 3 基础反馈稳定控制器设计 非线性控制理论 4 反馈线性化 反步法 非线性控制理论 5 自适应控制器 Adaptive controller 非线
  • CF 935E - Fafa and Ancient Mathematics

    CF 935E Fafa and Ancient Mathematics 题目描述 定义合法数学表达式 E E E 为一个数或两个合法数学表达式中间加上一个加或减运算符 并且在外面加上一对括号 给定一个合法数学表达式 将其中加减运算符用
  • QML Image内部缓存导致的问题

    QML Image BUG BUG描述 两个界面login qml 和 modify qml 页面 内部代码大致如下 Camera id camera imageProcessing whiteBalanceMode CameraImage
  • python实现vlookup_干货一:怎么在python里面实现vlookup

    vlookup应该是excel里用的比较多的功能 我刚接触excel的时候 反正觉得这个功能非常神奇 省了很多事 但是用久了以后就发现vlookup的限制太多了 第一大痛点 只能往右边 gt 找 如果要往左边找 最笨的办法就是把要找的col
  • rpm软件包解读

    一 linux应用程序与系统命令关系 二 典型应用程序的目录结构 三 常见的软件包封装类型 RPM包管理工具 RPM软件包管理器RED HAT PACKAGE MANAGER 由Red Hat公司提出 被众多linux发行版所采用 建立统一
  • 【机器学习】Q-Learning详细介绍

    Q learning Q learning 是一种机器学习方法 它使模型能够通过采取正确的操作来迭代学习和改进 Q learning属于强化学习的算法 通过强化学习 可以训练机器学习模型来模仿动物或儿童的学习方式 好的行为会得到奖励或加强
  • 如何从几何角度上理解方程组只有一个解_线性方程组的解集及其几何意义

    由于这三者之间的等价关系 我们解决现实问题时可以自由选取其中任意一个作为模型 我个人认为 线性方程组是最 质朴 的形式 向量方程则是与几何建立了关系 这将方便我们进行更直观的推理 矩阵方程则是向量方程的一种 封装 是向量方程的一种抽象 它将
  • Hotspot 垃圾回收之ConcurrentMarkSweepThread 源码解析

    目录 一 ConcurrentGCThread 二 SurrogateLockerThread 1 make 2 loop manipulatePLL 三 ConcurrentMarkSweepThread 1 定义 2 start和构造方
  • 微服务系列(六) 服务熔断与服务降级

    一 背景 分布式系统环境下 服务间类似依赖非常常见 一个业务调用通常依赖多个基础服务 如下图 对于同步调用 当库存服务不可用时 商品服务请求线程被阻塞 当有大批量请求调用库存服务时 最终可能导致整个商品服务资源耗尽 无法继续对外提供服务 并
  • element-ui表格列el-table-column如何根据数据不同显示不同的值,获取prop值

    方法一 格式化数据 在使用element ui的表格时 有时候后台给你的字段和你要显示在表格列里的内容不一致 例如后台给的字段是state 它的值为true或false 要求显示在表格里是 正确 或 错误 这时可以给el table col
  • FreeRTOS轻量级同步--任务通知

    1 简介 在FreeRTOS的配置参数中的configUSE TASK NOTIFICATIONS宏打开 一般RTOS会默认打开 如图1所示 图1 notify宏开关 RTOS在创建任务时 会创建一个32位的通知值ulNotifiedVal
  • C#中await Task.Run 返回值

    using System using System Text using System Collections Generic using System Threading using System Threading Tasks name
  • Cadence Allegro PCB设计88问解析(十一) 之 Allegro中文件自动保存时间设置

    一个学习信号完整性的layout工程师 大家在设计图纸或者编辑文档时 最常点击的应该就是保存图标了 谁也不想因为软件闪退 电脑断电等情况 我们的劳动成果就白白的消失了 在我们用Allegro进行PCB设计 就会有一个自动保存的功能 每隔一段
  • 一文看懂L1、L2正则化的区别

    正则化是一种为了减小测试误差的行为 有时候会增加训练误差 我们在构造机器学习模型时 最终目的是让模型在面对新数据的时候 可以有很好的表现 当你用比较复杂的模型比如神经网络 去拟合数据时 很容易出现过拟合现象 训练集表现很好 测试集表现较差