[深度学习] 名词解释--正则化

news2024/10/7 14:24:57

正则化

花书的定义:凡是可以减少泛化误差(过拟合)而不是减少训练误差的方法,都叫正则化方法。

目的:拟合训练数据,防止模型过拟合,通常使用L2正则化.用各种方法规范模型参数的方法.

什么是神经网络的过拟合:

在最小化损失函数的前提下,最优的一组w和b并不是唯一的。最后的最优的w和b是什么很依赖你输入的初始w和b。若初始过大,则最优的也相对较大。

所以,如何我们只在训练集里使用我们的神经网络,则w和b是大是小都没有太大关系,但要在一个新的测试集里使用我们的神经网络,那新数据在和这个较大的参数相乘后会得到一个比较大的数值。如果没有误差,没有噪声,这一切看起来也没有问题,但这是不可能的,所以这个误差和噪声在经过大的权重相乘后也会被放大,这就很容易对判断结果造成影响。

所以我们的目的是控制参数范围,不让它过大(正则化的目的):

我们重点约束w就行,因为最后的模型过拟合还是不过拟合,重点还是在w身上,所以正则化重点考虑w。更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀)  

L1正则化

L1损失函数如下,首先,L1是通过稀疏参数(减少参数的数量)来降低复杂度 :

在这里插入图片描述

 

 上式可知,当w大于0时,更新的参数w变小;当w小于0时,更新的参数w变大;所以,L1正则化容易使参数变为0,即特征稀疏化

L2正则化

L2正则化的损失函数为:

在这里插入图片描述

由上式可知,正则化的更新参数相比于未含正则项的更新参数多了 项,当w趋向于0时,参数减小的非常缓慢,因此L2正则化使参数减小到很小的范围,但不为0。

Lp范数:

所以从这里可以看出,当p>1时,才是个凸函数,其可行域都是凸集,所以也才是一个凸优化问题。

L0和L1之间的区别

L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。

个人理解一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以尽管L1范数和L0范数都可以实现稀疏,但L1因具有比L0更好的优化求解特性而被广泛应用。

L1和L2之间的区别及适用场景

L1在优化的时候,w在更新的时候,更偏向于收敛到0。也就是L1会趋向于产生少量的特征,而其他的特征都是0,使用L1可以得到稀疏的权值;所以L1适用于特征之间有关联的情况。 而L2在收敛的时候更偏向于收敛到到很小的参数,但一般不会是0。也就是L2会选择更多的特征,这些特征都会接近于0,使用L2可以得到平滑的权值;所以L2适用于特征之间没有关联的情况。 这个是什么缘由呢?其实就是,L2的求导后为一阶函数,对于大的w参数,惩罚作用大,对于小的w参数,惩罚作用小,很难惩罚到0,实际上起到了把大参数和小参数趋向于平均的作用;L1求导后为常数,无论对于大小参数,其惩罚作用一样,所以可以把小参数惩罚到0。

从拉格朗日对偶角度理解正则化:

这里J表示损失函数, 

 

 

其中绿色是可行域范围,红色是损失函数等高线。

 L1范数和L2范数的可行域都是凸集,所以这也是一个凸优化问题。

到这还不是我们经常看到的正则表达式的格式我们还需要将上式展开,以L2为例:

 

 红色的梯度是损失函数J的梯度,绿色的是约束条件的对应可行域范围,也就是后面那一项的梯度。两者的梯度应该是方向相反的。\lambda就是用来控制两者的半径寻找切点,也就是我们的极值点的。

 

 这里L1的极值点更多的分布在坐标轴上也就证明了为什么L1正则化更会造成w矩阵稀疏性的原因。

从权重衰减角度理解正则化:

什么是梯度下降法:梯度下降法其实就是对损失函数求梯度,得到的梯度乘以学习率,然后对原来的系数进行更新,更新之后得到新的权重参数值。

原来的权重更新的表达式和正则化后权重更新的表达式对比,n代表学习率:

 

 区别就是前面w的系数变了,

从这可以看到,每一步权重的更新,W的值都会先进行一定程度的缩小,再减去本来应该学习的梯度值

所以,权重衰减就衰减到了W的系数上了。

权重衰减就是增加了一个惩罚项,每一次权重更新对权重W都惩罚一点,从而使权重不会太大

可是为什么加了惩罚项之后就可以避免过拟合呢?

神经网络的本质就是感知机的叠加去拟合各种曲线,

 

这样看着其实就过拟合了。

 

这样的可能才是刚刚好,泛化能力更好。 这个图是不是可以理解为:W越小,泰勒展开式的高阶导数越趋于0,那右边函数的曲线越光滑,也就是越不容易过拟合!

 所以我们的目的是减少神经网络里面过多的弯弯绕绕,防止过拟合。

我们将曲线的函数表达式泰勒展开,高次项越多证明越弯曲,所以我们应该尽可能减少高次项对函数的影响。即控制高次项的系数。其实当我们控制了w不要太大,也就控制了高次项的系数越小。但是,经过正则化后的损失函数和原损失函数会存在一定的误差。

 

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

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

相关文章

408 | 【2012年】计算机统考真题 自用回顾知识点整理

选择题 T2:后缀表达式(逆波兰表达式)—— 注意 操作数的顺序! 中缀转后缀 运算顺序不唯一,因此对应的后缀表达式也不唯一“左优先”原则:只要左边的运算符能先计算,就优先算左边的用栈实现中缀…

JS(DOM)第十五课

Dom的全称是Document Object Model DOM 定义了访问 HTML 和 XML 文档的标准 Dom的定义 DOM 文档对象模型 DOM是针对XML的基于树的API。描述了处理网页内容的方法和接口,是HTML和XML的API,DOM把整个页面规划成由节点层级构成的文档。 DOM本身是与语言无…

基于simulink的超级电容,电池及DC motor充放电系统仿真

目录 一、理论基础 二、核心程序 三、测试结果 作者ID :fpga和matlab CSDN主页:https://blog.csdn.net/ccsss22?typeblog 擅长技术: 1.无线基带,无线图传,编解码 2.机器视觉,图像处理,三维重建 3.人工智能,深度学习 4.智能控制,智能优…

【C ++基础】迭代器(iterator)在string里面的简单使用

【C 基础】迭代器(iterator)在string里面的简单使用 前言 本文是为了扫清后面学习的难点,而特意写的文章,只是介绍迭代器如何在string中使用。 迭代器的详细解释请看这里: [点击跳转(这里还没有写哦)] C专栏主页&am…

【Node.JS】事件的绑定与触发

往期文章 【Node.JS】写入文件内容 【Node.JS】读取文件内容 目录 简介 绑定事件 on() addListener() once() 监听事件emit() 传参 删除事件 removeListener(&am…

【无人机】基于蚁群算法的无人机航路规划研究附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

【笔试题】【day14】

目录 第一题(哪些成员变量需要在初始化列表初始化) 第二题(多态的条件) 第三题(多态的条件(通过父类对象调用的全部都是父类的方法)) 第四题(菱形继承,虚…

猴子也能学会的jQuery第一期——什么是jQuery

#1024程序员节|用代码,改变世界 📚系列文章—目录🔥 猴子也能学会的jQuery第一期——什么是jQuery 猴子也能学会的jQuery第二期——引入jQuery 未完待续 目录 📚系列文章—目录🔥 📄需要具备的…

【最佳实践】瀚高数据库 Windows企业版v6.0.4 的安装

Windows7、Windows10 一、安装 解压缩文件“hgdb6.0.4-enterprise-windows10-x86-64-20220127.zip”,以【管理员】身份运行 setup.exe。 安装过程基本上是下一步下一步即可,注意步骤如下。 1.1 安装主目录 注意安装路径,不要包含中文&am…

【创作中心】自定义模板的使用

个人主页:天寒雨落的博客_CSDN博客-初学者入门C语言,数据库,python领域博主 💬 刷题网站:一款立志于C语言的题库网站蓝桥杯ACM训练系统 - C语言网 (dotcpp.com) 特别标注:该博主将长期更新c语言内容,初学c语言的友友们…

2022年12月1日起,OCS将停止接受GOTS的原料投入

【2022年12月1日起,OCS将停止接受GOTS的原料投入】 GOTS介绍; 全球有机纺织品标准,Global Organic Textile Standard, 简称GOTS。该标准由国际天然纺织品协会(IVN)、日本有机棉协会(JOCA)&#…

数字化智慧梁场管理系统解决方案

系统介绍 数字化智慧梁场管理系统实现对预制构件生产的全周期智慧化管理。系统以BIM为基础,搭建完整数字孪生模型,依据生产工序智能排程;围绕生产工序,生产任务智能传递,协同工作;依据生产工序,…

Python实战:获取bing必应壁纸首页的每日一图(仅做学习用)

目录需求网站分析代码实现进一步接口获取其他资源需求 老板:微软必应https://cn.bing.com/ 首页的每日一图看着不错,能不能自动获取 我:我试试 网站分析 我们查看网页元素,不难发现背景图就在类名为.img_cont 的标签下 可是搜…

Vitepress搭建组件库文档(下)—— 组件 Demo

上文 《Vitepress搭建组件库文档(上)—— 基本配置》已经讨论了 vitepress 搭建组件库文档的基本配置,包括站点 Logo、名称、首页 home 布局、顶部导航、左侧导航等。本文进入最重要的部分 —— 如何像 Element Plus 那样一遍代码就可以展示组…

面试查漏补缺--java基础-容器源码解读

前言: 本文主要是通过源码来解读一些自己还不懂的地方,一些数据结构上的东西,不做过多的解读。 文章目录一、容器体系二、List容器2.1 ArrayList源码2.2 Vector 源码2.3 LinkedList三、Set容器3.1 HashSet一、容器体系 容器总的来说分为两大…

小小博客项目(servlet实战演练)

目录 MVC模式简介 项目概述 🍑Model(模型层) 🍑View(视图层) 🍑Controller(控制器层) 项目实战 上面pom.xml代码参考 一、模型层 🌰User代码:对应数据…

什么是NFS?NFS挂载

文章目录1、NFS服务2、RPC服务与NFS3、NFS的优缺点4、NFS服务端的搭建与配置5、小结1、NFS服务 NFS,全称Network File System,即网络文件系统。最大的功能是通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 😉 更直白…

Go语言开发k8s-05-ConfigMap操作

文章目录1. 结构体1.1 ConfigMapList1.2 ConfigMap1.3 TypeMeta1.4 ObjectMeta1.7 对照yml文件示例1.5 Immutable1.6 Data1.7 BinaryData2. Create configMap语法完整示例3. Get ConfigMapList语法完整示例4. Get ConfigMap语法完整示例5. Update ConfigMap语法完整示例6. Dele…

【网络篇】第二篇——IP协议与MAC地址详解

IP协议 理解源IP地址和目的IP地址 网段划分 IP地址的数量限制 私有IP地址和公网IP地址 路由 NAT(网络地址转换) ​编辑NAT IP转换过程 NAPT MAC地址 理解源MAC地址和目的MAC地址 对比理解MAC地址和IP地址 只有一个MAC地址,可以传输数据嘛? 为什么有了…

网络原理——网络层与数据链路层

JavaEE传送门JavaEE 网络原理——No.3 传输层_TCP的滑动窗口, 流量控制与拥塞控制 网络原理——No.4 传输层_TCP协议中的延迟应答, 捎带应答, 面向字节流与TCP的异常处理 目录网络层IP 协议IP 地址路由选择数据链路层以太网网络层 网络层做的工作, 就是两点之间, 规划出一个合…