L1和L2正则化的三种不同角度的理解

news2025/7/27 19:23:36

观看B站视频后写的笔记,链接

降低模型复杂度>=正则化>=减小模型参数个数

0. 前言

正则化是一个专有名词,和正则表达式中的正则没有任何关系。L1和L2正则化就是用L1范数和L2范数来规范模型参数的这么一种方法,Dropout也叫正则化,但这两种方法天差地别。在花书中正则化的定义为凡是可以减少泛化误差而不是减少训练误差的方法都可以称作是正则化方法,即凡是能减少过拟合的方法都能被称作是正则化方法。

范数把空间中两点的距离这个概念进行了扩充。权重w可以理解为是一个高维的向量,也可以理解为在高维空间中的一个点,这个点到原点的距离如果是欧氏距离的话,那就是L2范数,如果把L2范数相同的点画出来就是一个圆,半径就为L2范数。L1范数也是类似。正则化一般只用到L1和L2范数,但范数按照定义有很多种类,如Lp范数,p可以取0到1之间的一个数(得到的集合为非凸集),也可以取大于等于1的一个数(此时构成的集合是一个凸集)。可行域是凸集的话就是一个凸优化问题。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1. 从拉格朗日乘数法的角度进行理解

在神经网络里,针对参数的正则化,就是针对权重w(w决定了模型曲线形状,b只会改变模型的平移偏置)的正则化。在神经网络的训练中,当收敛到损失函数的最小值时,w和b绝对值的大小不一定,所以会出现 当用训练集训练出一组较大的w和b后,图像中误差和噪声也被放大 的问题。所以就需要对权重w约束一个可行域范围,在这个范围内求最值,即拉格朗日乘数法的角度。
如下图所示,红色的线是损失函数的等高线,绿色的线是可行域范围,坐标轴分别表示w1和w2(更高维的w表示有更多的轴),在我们能找到在约束条件下的最值点。其中式子里的 λ C \lambda C λC 项对求最值点时的w不影响,因为求梯度时此项为0,但是此项决定了可行域范围即绿色线范围的大小。

在这里插入图片描述

拉格朗日函数中的拉格朗日乘子 λ \lambda λ作用是调节约束条件的梯度的大小,让他的大小和损失函数梯度J的大小相同方向相反。每一个不同交点的最值就能确定不同的 λ \lambda λ,反过来也是一样。另一方面也可以说其实只是引入了一个超参数C,只要确定了C,就可以计算出对应的 λ \lambda λ。当没有C时,就把 λ \lambda λ作为超参数进行调节。
在这里插入图片描述
L2正则化的极值点一般都在相切的圆上面,L1正则化的极值点一般都在坐标轴上(此时某些权重w为0,可以带来稀疏性和选择特征性,即某些特征起作用 或 特征之间去耦合 或 解决过拟合)
在这里插入图片描述
问题(存疑):正则化对权重进行了一个约束,在约束范围内即绿线范围内,会不会导致求出极值点时的偏差过大?
作者认为不会。因为min J(W, b)= min J(k·W, k·b),所以权重存在一个线性解空间,在下述二维空间的图中用红色的虚线来表示,那么此时偏差就可以表示成极值点和线性解空间之间的距离即垂直距离。所以并不是说可行域范围的框框越小偏差越大。

在这里插入图片描述

2. 从权重衰减的角度进行理解

上面拉格朗日乘数法就是去控制权重到原点之间的距离,通过这样的方式去约束权重的取值。
损失函数: J ( W , b ) J(W,b) J(W,b)
权重更新: W = W − η ⋅ ∇ W J ( W ) W=W-\eta·{\nabla_W} J(W) W=WηWJ(W)
正则化后的损失函数: J ^ ( W ) = J ( W ) + λ ∣ ∣ W ∣ ∣ 2 = J ( W ) + α 2 W T W \hat{J}(W)=J(W)+\lambda||W||_2=J(W)+\frac{\alpha}{2}W^TW J^(W)=J(W)+λW2=J(W)+2αWTW
正则化后的权重更新: W = W − η ⋅ ∇ W J ^ ( W ) = ( 1 − η ⋅ α ) W − η ⋅ ∇ W J ( W ) W=W-\eta·{\nabla_W} \hat{J}(W)=(1-\eta·\alpha)W-\eta·{\nabla_W} J(W) W=WηWJ^(W)=(1ηα)WηWJ(W)

从公式中可以看出,权重w前面的系数 η \eta η α \alpha α两个超参数相乘小于1大于0的时候,每一次权重更新后权重都要进行一些缩小。所以权重衰减就衰减在W前面的系数上,相当于增加了一个惩罚项,每一次学习都惩罚一点让权重取值不至于太大。如果对模型要拟合的数据曲线进行泰勒展开后,W变小会使高次项的某个系数 f ( n ) ( a 0 ) → 0 f^{(n)}(a_0)→0 f(n)(a0)0。并且只惩罚大于1次的高次项,因为0次项和一次项的自变量权重系数减小并不会对拟合曲线的形状产生变化。
在这里插入图片描述

3. 从贝叶斯的角度进行理解

从模型复杂度的角度理解正则化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]SSM计算机毕业设计中小型便民药店管理论文JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Linux17 --- 消息队列

一、IPC进程间通信:消息队列 消息队列是在两个进程之间传递二进制块数据的一种简单有效的方式。每个数据块都有一个特定的类型,接收方可以根据类型来有选择地接收数据,而不一定像管道和命名管道那样必须以先进先出的方式接收数据。 Linux消…

BootStrap响应式项目实战之世界杯网页设计

BootStrap实战 目标 响应式布局复习 HTML5的复习 CSS3的复习 了解BootStrap 一.复习 响应式布局:页面可以随着设备的变化而动态改变。 ​ 淘宝:pc端一套页面:不能随着屏幕的缩小而变化; ​ 移动端:另外一套页面&am…

Java中的::

今天在练习SpringBoot的时候,看到了以下这种写法: //实体类: Data public class Book {private Integer id;private String type;private String name;private String description; }//测试类 //实现功能:关键字查询 Test void t…

PCB设计---深入浅出的反弹图

作者:一博科技高速先生成员 孙小兵 众所周知,信号的反射与互连线的阻抗密切相关,可以说互连线中阻抗突变是产生信号反射的最直接原因。但究竟为什么会发生反射,反射对信号的影响是什么样的,信号反射的过程又是如何呢&…

MySql死锁

MySql死锁产生的原因?[面试7.0] 高并发情况下,事务之间对资源的访问顺序交替会导致死锁 加锁失败且出现环时触发死锁 事务1事务2begin;select *from testlock where id1 for update;begin;select *from testlock where id2 for update;select *from testlock where id2 for…

安卓系统的启动

Init.rc启动 创建和挂在启动所需的文件目录初始化和启动属性服务解析init.rc配置文件并启动Ztgote进程 Zygote进程 创建一个Server端的Socket预加载类和资源启动SystemServer进程等待AMS请求创建新的应用程序进程 SystemServer进程 启动Binder线程池,这样就可以…

环保数采仪 VOCs|污染源|水质污染源|烟气排放在线监测

计讯物联环保数采仪,丰富接口,符合环保行业规约标准,具备采集、无线传输、控制、告警等功能,广泛应用于Vocs在线监测、水污染大气污染远程监测、烟气排放在线监控等场景,数据全方位多角度实时采集、自动上报、远程在线…

汽车倒车防碰撞报警系统的设计

目 录 1 绪论 1 1.1 背景 1 1.2 国外研究情况 1 1.3 超声波测距的优势 2 2 基本原理 3 2.1 超声波简介 3 2.2 超声波基本特性 4 2.3 超声波模块简介 5 2.4 超声波传感器原理 6 2.5 超声波的测距原理 6 3 总体方案 8 4 硬件实现 9 4.1 电路 9 4.1.1 主控制最小系统电路 10 4.1.…

面试24K字节测试开发岗被血虐,到底具有怎样的技术才算高级水平?

前几天我朋友跟我吐苦水,这波面试又把他打击到了,做了6年软件测试。。。 下面这条招聘是在腾讯招聘官网截图下来的,首先我们对高级水平下一个定义吧,那它应该是对标这个职级该有的能力 什么样的工程师才能算高级?至少…

《数据库的原理与应用》--用两种方法实现S-T数据库创建

一、实验目的 复习数据库的定义,用两种方法实现S-T数据库创建;用两种方法创建数据库表,最后为数据库中的三个表增加数据;分离数据库和备份数据库。数据库表为: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept…

Django ORM 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询

Django model ORM数据表相关操作 分析思路,创建数据表 对于表操作,表之间的关联关系,必须理解他们之间的关系,对于编程很重要。可以看看映射关系、外键和relationship查询 ,至少明白外键相关基本知识。 &#xff08…

App Languages 批量导入管理Android多语言文案

AppLanguages支持安卓的多语言文案管理啦,支持批量的检测,批量导入,批量删除,批量替换,批量导出。 操作界面 批量导入 1)需要选择res文件夹的路径,方便创建和寻找本地的多语言文件 2&#xff…

ui界面的介绍

创建一个项目时默认选择带有ui界面,ui界面的作用是方便设计者设计功能。 ui界面常见的功能: 方便对象的创建,拖入到窗口中即可方便布局,可以直接使用布局对控件进行修饰方便制作信号,通过转到槽的机制,快速…

Cesium 入门(一)无服务 Cesium 环境

Cesium 入门(一)无服务环境 一、无服务环境下的 Cesium 无网络环境下的静态 cesium 地图服务,cesium 1.98.1 已经支持无 token 情况下的地图显示,默认 token 可用来展示 3d 地图,老版本 cesium,需自行前往…

Golang入门笔记(15)—— 数组

编程的世界中,或许是因为一次一次的定义变量,维护管理起来都太费劲了,所以推出了数组,将数据用数组的形式管理起来。 参考代码: package mainimport "fmt"func main() {var scores [5]intscores[0] 90sco…

RabbitMQ基础

文章目录一. Hello World二. Work Queues三. 消息应答1. 自动应答2. 手动应答3. 批量应答4. 消息自动重新入队四. 持久化1. 实现队列持久化2. 实现消息持久化五. 消息不公平分发1. 配置不公平分发2. 预取值六. 发布确认1. 发布确认原理2. 开启发布确认3. 单个发布确认4. 批量发…

DOM介绍及DOM获取元素的方式

1、DOM介绍 DOM(Document Object Model):文档对象模型其实就是操作html中的标签的一些能力我们可以操作哪些内容○ 获取一个元素 ○ 移除一个元素 ○ 创建一个元素 ○ 向页面里面添加一个元素 ○ 给元素绑定一些事件 ○ 获取元素的属性 ○ …

Hive集群部署实验

目录一、实验介绍1.1 实验内容1.2 实验知识点1.3 实验环境1.4 实验资源1.5 实验步骤清单二、实训架构三、实验环境准备四、实验步骤4.1 Hive部署4.1.1 安装Hive4.1.3 修改hive配置文件4.1.4 创建Hadoop测试目录4.1.5 初始化hive元数据库4.2 Hive测试4.2.1 启动Hive4.2.2 创建测…

pytorch的gpu版本安装以及cpu版本的卸载

目录 前言 一、安装显卡驱动 二、安装Visual Studio 2019 三、安装CUDA 四、安装cudnn 五、安装anaconda 六、安装PyTorch 前言 因为最近需要导师的指导,我开始了unet的学习,虽然之前也学习过机器学习,但是只是浅尝辄止,没…