损失函数和正则化

2023-11-16

参考:

https://www.cnblogs.com/LXP-Never/p/10918704.html
https://blog.csdn.net/Heitao5200/article/details/83030465
https://zhuanlan.zhihu.com/p/35893078
https://zhuanlan.zhihu.com/p/36794078
 

https://zhuanlan.zhihu.com/p/147579819  (PyTorch 12.正则化)

L2 正则化通过 weight decay 参数来控制

作为损失函数

L1范数损失函数

  L1范数损失函数,也被称之为平均绝对值误差(MAE)。总的来说,它把目标值y(n)y(n)与估计值y^(n)y^(n)的绝对差值的总和最小化。

LossMAE=1N∑n=1N|y(n)−y^(n)|LossMAE=1N∑n=1N|y(n)−y^(n)|

# tensorflow
tf.reduce_mean(tf.abs(logits - labels))
# numpy
np.sum(np.abs(logits-labels))

L2范数损失函数

  L2范数损失函数,也被称为均方误差MSE, mean squared error),总的来说,它把目标值YiYi与估计值f(xi)f(xi)的差值的平方和最小化。

LossMSE=1N∑n=1N(y(n)−y^(n))2LossMSE=1N∑n=1N(y(n)−y^(n))2

L1损失函数 L2损失函数
鲁棒 不是很鲁棒
不稳定性 稳定解
可能多个解 总是一个解

  总结一下:L2范数loss将误差平均化(如果误差大于1,则误差会放大很多),模型的误差会比L1范数来得大,因此模型会对样本更加敏感,这就需要调整模型来最小化误差。如果有个样本是一个异常值,模型就需要调整以适应单个的异常值,这会牺牲许多其他正常的样本,因为这些正常的样本的误差比这单个的异常值的误差小。

复制代码

# ----- tensorflow ----- #
tf.reduce_mean((labels-logits) ** 2)
# 或者使用 mean_squared_error 函数
tf.losses.mean_squared_error(labels, logits)
# ----- numpy ----- #
np.sum(np.square(y_true-y_pre))

复制代码

RMSE损失函数

  RMSE损失函数也称为均方根误差(Root Mean Square Error,RMSE),RMSE 能综合MSE和MAE的优缺点,对对特大或特小误差非常敏感,能使得模型趋于最优。

LossRMSE==1N∑n=1N(y(n)−y^(n))2−−−−−−−−−−−−−−−−−⎷LossRMSE==1N∑n=1N(y(n)−y^(n))2

作为正则化

  我们经常会看见损失函数后面添加一个额外项,一般为L1-norm,L2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2函数。

  L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。防止模型过拟合而加在损失函数后面的一项。

L1正规化

  L1范数符合拉普拉斯分布,是不完全可微的。表现在图像上会有很多角出现。这些角和目标函数的接触机会远大于其他部分。就会造成最优值出现在坐标轴上,因此就会导致某一维的权重为0 ,产生稀疏权重矩阵,进而防止过拟合。

最小平方损失函数的L1正则化

L1正则化是指权值向量ww中各个元素的绝对值之和

L2正规化

  L2范数符合高斯分布,是完全可微的。和L1相比,图像上的棱角被圆滑了很多。一般最优值不会在坐标轴上出现。在最小化正则项时,可以是参数不断趋向于0,最后活的很小的参数。

  在机器学习中,正规化是防止过拟合的一种重要技巧。从数学上讲,它会增加一个正则项,防止系数拟合得过好以至于过拟合。L1与L2的区别只在于,L2是权重的平方和,而L1就是权重的和。如下:

最小平方损失函数的L2正则化

L2正则化是指权值向量ww中各个元素的平方和然后再求平方根

作用

L1正则化

  • 优点:输出具有稀疏性,即产生一个稀疏模型,进而可以用于特征选择;一定程度上,L1也可以防止过拟合
  • 缺点:但在非稀疏情况下计算效率低

L2正则化

  • 优点:计算效率高(因为存在解析解);可以防止模型过拟合(overfitting)
  • 缺点:非稀疏输出;无特征选择

稀疏模型和特征选择:稀疏性我在这篇文章有详细讲解,如果特征符合稀疏性,说明特征矩阵很多元素为0,只有少数元素是非零的矩阵,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。

文献[1]解释了为什么L1正则化可以产生稀疏模型(L1是怎么样系数等于0的),以及为什么L2正则化可以防止过拟合,由于涉及到很多公式,想要详细了解的同学,请移步

区别

1、L1正则化是模型各个参数的绝对值之和

  L2正则化是模型各个参数的平方和的开方值

2、L1会趋向于产生少量的特征,而其他的特征都是0,产生稀疏权重矩阵。

  L2会选择更多的特征,这些特征都会接近于0

再讨论几个问题

1.为什么参数越小代表模型越简单?

  越是复杂的模型,越是尝试对所有样本进行拟合,包括异常点。这就会造成在较小的区间中产生较大的波动,这个较大的波动也会反映在这个区间的导数比较大。

  只有越大的参数才可能产生较大的导数。因此参数越小,模型就越简单。

2.实现参数的稀疏有什么好处?

  因为参数的稀疏,在一定程度上实现了特征的选择。一般而言,大部分特征对模型是没有贡献的。这些没有用的特征虽然可以减少训练集上的误差,但是对测试集的样本,反而会产生干扰。稀疏参数的引入,可以将那些无用的特征的权重置为0.

3.L1范数和L2范数为什么可以避免过拟合?

  加入正则化项就是在原来目标函数的基础上加入了约束。当目标函数的等高线和L1,L2范数函数第一次相交时,得到最优解。

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

损失函数和正则化 的相关文章

  • 【阅读论文方法总结】

    1 快速浏览摘要 看是否有自己需要的东西 2 如果需要 github上查找相关论文代码 对照着论文进行阅读 这样效率高 能够快速理解
  • 图像识别中,目标分割、目标识别、目标检测和目标跟踪这几个方面区别是什么?+资料列表

    目标识别 深度学习进行目标识别的资源列表 转 https zhuanlan zhihu com p 26076489 以下转自 https www zhihu com question 36500536 作者 知乎用户 链接 https w
  • 【GPU】GPU状态显示和部分指标含义

    首先打开C盘 找到NVSMI文件夹 找到nvidia smi exe 打开cmd 将其exe拖到命令提示符窗口 回车后显示GPU信息 相应的指标信息如下 GPU GPU 编号 Name GPU 型号 Persistence M 持续模式的状
  • 笔记︱几款多模态向量检索引擎:Faiss 、milvus、Proxima、vearch、Jina等

    转自 https zhuanlan zhihu com p 364923722 引用文章 7 的开篇 来表示什么是 向量化搜索 人工智能算法可以对物理世界的人 物 场景所产生各种非结构化数据 如语音 图片 视频 语言文字 行为等 进行抽象
  • DOTA: A Large-scale Dataset for Object Detection in Aerial Images 翻译

    DOTA 用于航空图像中目标检测的大规模数据集 原文 https arxiv org pdf 1711 10398 pdf 官网 https captain whu github io DOTA dataset https captain
  • tiny-cnn执行过程分析(MNIST)

    在http blog csdn net fengbingchun article details 50573841中以MNIST为例对tiny cnn的使用进行了介绍 下面对其执行过程进行分析 支持两种损失函数 1 mean squared
  • word2vector学习笔记(一)

    word2vector学习笔记 一 最近研究了一下google的开源项目word2vector http code google com p word2vec 其实这玩意算是神经网络在文本挖掘的一项成功应用 本文是看了论文 Distribu
  • 图神经网络(1):图卷积神经网络GCN ICLR 2017

    图卷积神经网络GCN ICLR 2017 是曾经在美国加州大学UCI教授 现在荷兰阿姆斯特丹大学教授 Max Welling团队的大作 Max是图灵奖获得者Hinton的弟子 第一作者T N Kipf已经成为这个领域有名的学者和工程师 如果
  • 深度神经网络中的Inception模块介绍

    深度神经网络 Deep Neural Networks DNN 或深度卷积网络中的Inception模块是由Google的Christian Szegedy等人提出 包括Inception v1 Inception v2 Inception
  • 联邦学习 深度学习对抗攻击

    联邦学习本身 联邦学习 实际上是一种加密的分布式机器学习技术 参与各方可以在不披露底层数据和底层数据的加密 混淆 形态的前提下共建模型 如果机构之间的数据无法互通 一家企业一家机构数据量有限 或者是少数巨头公司垄断大量数据 而小公司很难获得
  • CrossEntropyloss function

    这里写目录标题 两部分 Part One 绕绕 可以不看 Part Two 清晰易懂 一定要看 两部分 Part One 绕绕 可以不看 Cross entropy loss function又称交叉熵损失 是基于one hot编码的 举个
  • PyTorch torch.optim.lr_scheduler 学习率设置 调参-- CyclicLR

    torch optim lr scheduler 学习率设置 CyclicLR 学习率的参数调整是深度学习中一个非常重要的一项 Andrew NG 吴恩达 认为一般如果想调参数 第一个一般就是学习率 作者初步学习者 有错误直接提出 热烈欢迎
  • 几乎最全的中文NLP资源库

    NLP民工的乐园 The Most Powerful NLP Weapon Arsenal NLP民工的乐园 几乎最全的中文NLP资源库 词库 工具包 学习资料 在入门到熟悉NLP的过程中 用到了很多github上的包 遂整理了一下 分享在
  • Softmax分类和两层神经网络以及反向传播的代码推导

    发现草稿箱里还有一篇很早之前的学习笔记 希望可以帮助到有需要的童鞋 目录 序 Softmax分类器 反向传播 数据构建以及网络训练 交叉验证参数优化 序 原来都是用的c 学习的传统图像分割算法 主要学习聚类分割 水平集 图割 欢迎一起讨论学
  • Pointpillars for object detection

    博客参考 pointpillars代码阅读 prep pointcloud篇 Little sky jty的博客 CSDN博客Brief这一篇内容主要是对函数prep pointcloud进行debug和记录 这里也是dataloader的
  • 深度学习中的优化算法之Adam

    之前在https blog csdn net fengbingchun article details 124909910 介绍过深度学习中的优化算法Adadelta 这里介绍下深度学习的另一种优化算法Adam 论文名字为 ADAM A M
  • 谈一谈关于NLP的落地场景和商业价值

    欢迎大家关注微信公众号 baihuaML 白话机器学习 在这里 我们一起分享AI的故事 您可以在后台留言 关于机器学习 深度学习的问题 我们会选择其中的优质问题进行回答 本期的问题 你好 请问下nlp在现在的市场主要应用在哪些方面 什么是N
  • 深度学习中的优化算法之RMSProp

    之前在https blog csdn net fengbingchun article details 124766283 中介绍过深度学习中的优化算法AdaGrad 这里介绍下深度学习的另一种优化算法RMSProp RMSProp全称为R
  • - UnitBox An Advanced Object Detection Network,arxiv 16.08

    UnitBox An Advanced Object Detection Network arxiv 16 08 download 该论文提出了一种新的loss function IoU loss 这点比较有意思 也容易复现 论文分析了fa
  • 【直观详解】什么是正则化

    转自 https charlesliuyx github io 2017 10 03 E3 80 90 E7 9B B4 E8 A7 82 E8 AF A6 E8 A7 A3 E3 80 91 E4 BB 80 E4 B9 88 E6 98

随机推荐

  • mysql 重复下单_你的项目是如何处理重复请求/并发请求的?

    你的项目是如何处理重复请求 并发请求的 对于一些用户请求 在某些情况下是可能重复发送的 如果是查询类操作并无大碍 但其中有些是涉及写入操作的 一旦重复了 可能会导致很严重的后果 例如交易的接口如果重复请求可能会重复下单 重复的场景有可能是
  • GD32,在电源电路VDD VDDA VREF+/-参考设计

    GD32 在电源电路参考设计 https bbs 21ic com icview 2568876 1 9 html 资料来源于微信公众号 life and family 更多相关资料可以关注下该公众号 对于GD32 在电源电路设计方面的一些
  • C语言中volatile关键字,简单说明

    C语言中volatile关键字 如 define GPIO1 DR volatile unsigned int 0x0209C000 数据寄存器 每一位代表一个GPIO的0或1 一句话 使用volatile修饰后 会强制你每次引用GPIO寄
  • epoll移植到windows的可行性研究

    1 各有千秋 linux作为高效稳定的操作系统 部署在大量的服务器上 epoll在linux下 一个高性能的网络IO模型 在服务端领域发挥着重要的作用 但在开发效率上 windows以及visual studio系列因其良好的用户体验而更受
  • rabbitmq 添加用户和设置最大权限,也是解决mq报socket关闭异常

    此方式也是解决整合mq后 自己添加用户后 mq报socket关闭异常 1 安装完可视化mq后台后 直接http localhost 15672 进入 2 默认帐号密码 guest guest 3 首先添加用户 tags设置为admin 最大
  • OpenGL纹理贴图相关基本概念

    1 纹理贴图之所以复杂是因为矩形的纹理数据需要被合理地映射到非矩形的区域上面 纹理就是数据的数组 例如颜色数据亮度数据alpha数据等 纹理的单个数据值 被叫做纹理元素 英文叫做texual 初学者会本能地把纹理当成二维图像 但是纹理也可以
  • JavaScript的外部引入方式

    document writeln hello world
  • 聊聊数据库中的 savepoint

    从全局二级索引讲起 故事要从全局二级索引开始讲起 当我们构建了一个全局二级索引之后 一条逻辑上的数据插入 就会变成两条物理上的数据插入 一条插入到主表 另一条插入到索引表 为了保证主表和索引表数据的一致性 我们往往需要开启分布式事务 再并行
  • keil5 Device Database 灰色问题

    使用 keil5 安装 GD 软件包后打开工程依然无法搜索到对应的芯片型号 GD32F450 The Project references device files or libraries that are not installed D
  • 一个类的实例是另一个类的属性python_Python 的类其实是一个特殊的对象

    Python 中的类是一个特殊的对象 Python 中一切皆对象 class AAA 定义的类属于类对象 obj1 AAA 属于实例对象 在程序运行时 类同样会被加载到内存 类是一个特殊的对象 类对象 类对象在内存中只有一份 使用一个类可以
  • 60-200-072-使用-命令-MySQL使用mysqldumpslow分析慢查询日志文件

    1 概述 因为直接分析日志文件是个体力活 因此mysql为我们提供了相关工具mysqldumpslow来对慢查询日志文件进行分析 2 mysqldumpslow命令 访问次数最多的10条sql语句 usr local mysql bin m
  • fedora18 从文本模式启动而不是图形界面启动

    在之前的linux版本中 如果想要启动操作系统后直接进入文本模式 那就要修改 etc inittab这个文件 把其中的5改成3即可 可是 linux2 6 貌似是 内核之后 这个文件就改了 它不再控制着系统的默认启动模式了 如果在fedor
  • vant-weapp 组件 样式的覆盖(一)

    最近在小程序开发中使用到 vant weapp 组件 但有些样式不符合自己的项目要求 需要对样式进行覆盖 以DropdownMenu组件为例 需求是用户选择菜单项 菜单文字变成 橙色 样式的修改 就是以权重高的 覆盖权重低的
  • “Docker Content Trust + 镜像签名”,打造安全的 Kubernetes 供应链!

    出品丨Docker公司 ID docker cn 编译丨小东 每周一 三 五晚6点10分 与您不见不散 说在前面 两周前 我们分享了一篇名为 镜像扫描 基于策略的镜像提升 打造安全的 Kubernetes 供应链 的文章 它主要介绍了 Do
  • 利用BaseMultiItemQuickAdapter打造二、三级级菜单

    去网上找了下资料 然后自己整理了下二级 三级菜单的实现 直接上代码 Recyclerview记得要导包 implementation com android support recyclerview v7 28 0 0 一 首先在app下的
  • AI赋能的判定机制的倾向性

    最近忙着论文的事情 没有时间写一些技术博客 而且CSDN的图床经常出现问题 也懒得整理了 今天也是说些闲话 讨论下对未来AI赋能的判定机制的一些思考 什么是AI赋能的判定机制 主要其实就是 基于机器智能的技术手段 来代替人类评判事情 可以举
  • 最全的整理:毫米波雷达在检测、分割、深度估计等多个方向的近期工作及简要介绍

    前情回顾 在之前 我已经有介绍过毫米波雷达在2D视觉任务上的一些经典网络 自动驾驶中雷达与相机融合的目标检测工作 多模态目标检测 整理 Naca yu的文章 知乎 总结概括而言 其本质上都是对视觉任务的一种提升和辅助 主要的工作在于如何较好
  • 一些官方的github地址

    阿里巴巴开源github地址 https github com alibaba 腾讯开源github地址 https github com Tencent 奇虎360github地址 https github com Qihoo360 小米
  • xss的绕过方式

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 xss的类型以及常用标签 二 xss常用绕过 总结 前言 xss cross site scripting 中文 跨站脚本攻击 常年位于owasp top
  • 损失函数和正则化

    参考 https www cnblogs com LXP Never p 10918704 html https blog csdn net Heitao5200 article details 83030465 https zhuanla