深度学习损失函数之——L1 L2 SmoothL1(范数、损失函数、正则化)

2023-11-07

L1,L2以及Smooth L1是深度学习中常见的3种损失函数,这3个损失函数有各自的优缺点和适用场景。

首先给出各个损失函数的数学定义,假设 x x x 为预测值与Ground Truth之间的差值:

  • L1 loss表示预测值和真实值之差的绝对值;也被称为最小绝对值偏差(LAD),绝对值损失函数(LAE)。总的说来,它是把目标值 y i y_i yi 与估计值 f ( x i ) f(x_i) f(xi) 的绝对差值的总和最小化。
    在这里插入图片描述

  • L2 loss表示与测值和真实值之差的平方;L2范数损失函数,也被称为最小平方误差(LSE)。它是把目标值 y i y_i yi 与估计值 f ( x i ) f(x_i) f(xi) 的差值的平方和最小化。一般回归问题会使用此损失,离群点对次损失影响较大。
    在这里插入图片描述

  • SmoothL1与L1类似,但在预测值与真实值差异非常小时,调整为 0.5 x 2 0.5x^2 0.5x2

但是,L1和L2有各自的缺点不足,而SmoothL1综合了二者的优点:

  • L2损失函数相比于L1损失函数的鲁棒性更好。因为L2范数将误差平方化(如果误差大于1,则误差会放大很多),模型的误差会比L1范数大的多,因此模型会对这种类型的样本更加敏感,这就需要调整模型来最小化误差。但是很大可能这种类型的样本是一个异常值,模型就需要调整以适应这种异常值,那么就导致训练模型的方向偏离目标了。
  • L2对离群点非常敏感,会出现与真实值差异较大的预测值主导loss的情况,最终造成梯度爆炸;
  • L1对离群点相对鲁棒 ,但其导数为常数,且在0处不可导;这会导致训练后期预测值与真实值差异很小时,L1难以继续收敛;
  • SmoothL1结合了L2和L1的优点,对噪声鲁棒,在0处可导可以收敛到更高的精度;

从3个损失函数各自的导数也能看出其特征:

  • 对于L2损失函数,其导数与 x x x成正比;这就导致训练初期,预测值与真实值差异过大时,损失函数的梯度非常大,梯度爆炸导致训练不稳定;
  • 对于L1损失函数,其导数为常数;这就导致训练后期,预测值与真是差异很小时,损失函数的导数绝对值仍然为1,而如果learning rate不变,损失函数将在稳定值附近波动,难以继续收敛达到更高精度;
  • 对于SmoothL1损失函数,在 x x x较小时对梯度会变小,而在 x x x很大时其梯度的绝对值达到上限1,梯度不会爆炸。可以说,SmoothL1避开了L1和L2损失的缺陷,因此SmoothL1用的也比较广泛。
    最后,3种损失函数的图像如下:
    在这里插入图片描述
什么是正则化

在机器学习中,我们非常关心模型的预测能力,即模型在新数据上的表现,而不希望过拟合现象的的发生,我们通常使用正则化(regularization)技术来防止过拟合情况。正则化是机器学习中通过显式的控制模型复杂度来避免模型过拟合、确保泛化能力的一种有效方式。如果将模型原始的假设空间比作“天空”,那么天空飞翔的“鸟”就是模型可能收敛到的一个个最优解。在施加了模型正则化后,就好比将原假设空间(“天空”)缩小到一定的空间范围(“笼子”),这样一来,可能得到的最优解能搜索的假设空间也变得相对有限。有限空间自然对应复杂度不太高的模型,也自然对应了有限的模型表达能力。这就是“正则化有效防止模型过拟合的”一种直观解析。
在这里插入图片描述

L2正则化

在深度学习中,用的比较多的正则化技术是L2正则化,其形式是在原先的损失函数后边再加多一项: 1 / 2 λ θ i 2 1/2λθ^2_i 1/2λθi2 ,那加上L2正则项的损失函数就可以表示为: L ( θ ) = L ( θ ) + λ ∑ i n θ i 2 L(θ)=L(θ)+λ∑^n_i θ^2_i L(θ)=L(θ)+λinθi2,其中θ就是网络层的待学习的参数,λ则控制正则项的大小,较大的取值将较大程度约束模型复杂度,反之亦然。

L2约束通常对稀疏的有尖峰的权重向量施加大的惩罚,而偏好于均匀的参数。这样的效果是鼓励神经单元利用上层的所有输入,而不是部分输入。所以L2正则项加入之后,权重的绝对值大小就会整体倾向于减少,尤其不会出现特别大的值(比如噪声),即网络偏向于学习比较小的权重。所以L2正则化在深度学习中还有个名字叫做“权重衰减”(weight decay),也有一种理解这种衰减是对权值的一种惩罚,所以有些书里把L2正则化的这一项叫做惩罚项(penalty)。

我们通过一个例子形象理解一下L2正则化的作用,考虑一个只有两个参数 w 1 w_1 w1 w 2 w_2 w2的模型,其损失函数曲面如下图所示。从a可以看出,最小值所在是一条线,整个曲面看起来就像是一个山脊。那么这样的山脊曲面就会对应无数个参数组合,单纯使用梯度下降法难以得到确定解。但是这样的目标函数若加上一项 0.1 × ( w 1 2 + w 2 2 ) 0.1×(w^2_1+w^2_2) 0.1×(w12+w22),则曲面就会变成b图的曲面,最小值所在的位置就会从一条山岭变成一个山谷了,此时我们搜索该目标函数的最小值就比先前容易了,所以L2正则化在机器学习中也叫做“岭回归”(ridge regression)。
在这里插入图片描述

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

深度学习损失函数之——L1 L2 SmoothL1(范数、损失函数、正则化) 的相关文章

随机推荐

  • hadoop的DFSOutputStream

    当我们用命令 hadoop fs copyFromLocal localfile hdfs 将本地文件复制到HDFS时 其背后的复制过程是怎样的 本地文件通过什么方式传输到datanode上的呢 这里面很显然的是 1 文件在多个电脑之间进行
  • 基于clickhouse做用户画像,标签圈选

    clickhouse在做用户画像标签时 怎么去做圈选 表结构应该是怎么样的 我们应该怎么去处理 能够使其高性能的圈选 尽可能缩小其占用的存储空间 这个问题 我通过代码给大家做下的演示 先在hive中对数据预处理 最初表结构 create t
  • python/pta 7-42 纵横

    7 42 纵横 莫大侠练成纵横剑法 走上了杀怪路 每次仅出一招 这次 他遇到了一个正方形区域 由n n个格子构成 每个格子 行号 列号都从1开始编号 中有若干个怪 莫大侠施展幻影步 抢占了一个格子 使出绝招 横扫四方 就把他上 下 左 右四
  • 眼底图像血管增强与分割--(4)基于自适应对比度增强算法实现

    在 http blog csdn net piaoxuezhong article details 78385517 中介绍的自适应对比度增强算法 其基本原理是将图像分为低频背景和高频细节两部分 算法选择高频部分进行增益放大 这样就增强了细
  • 修复“net::err_cert_authority_invalid”错误

    1 背景 在请求接口时接口报错net err cert authority invalid 当您的浏览器无法验证您网站的SSL证书的有效性时 就会出现此问题 如果您尚未设置证书或为您的网站使用HTTP 不推荐 则不应遇到此错误 2 解决办法
  • 利用Python子进程关闭Excel自动化过程出现的弹窗

    利用Python进行Excel自动化操作的过程中 尤其是涉及VBA时 可能遇到消息框 弹窗 MsgBox 此时需要人为响应 否则代码卡死直至超时 1 2 根本的解决方法是VBA代码中不要出现类似弹窗 但有时我们无权修改被操作的Excel文件
  • python多线程编程: 使用互斥锁同步线程

    由于每个线程互相独立 相互之间没有任何关系 你干你的 我干我的 互相不干扰 如果要几个线程同时干一件事怎么办 由于互相不走动 如果一个线程已经做过了 另一个线程再去做 不就重复了吗 很容易乱套 现在假设这样一个例子 有一个全局的计数num
  • 如何在windows使用valgrind_如何在windows下使用f2py

    什么是f2py f2py是一个将fortran或者c程序转化成python可以调用的库的工具 它几乎和numpy同时出现 使用也相对比较方便 因此一直在numpy包中 在早期 f2py起到的作用类似于numba 你可以将程序的主要逻辑交给p
  • 从在线字典网站获取词汇释义:一个Python爬虫实战案例

    目录 目录 1 准备工作 2 分析网页结构 3 编写爬虫 4 提取单词信息 5 输出结果
  • css 渐变实现loading

    div class loading div
  • 基于FPGA的MCP4725驱动程序

    基于FPGA的MCP4725驱动程序 芯片资料 MCP4725是低功耗 高精度 单通道的12位缓冲电压输出数模转换器 Digital to Analog Convertor DAC 具有非易失性存储器 EEPROM 用户可以使用I2C接口命
  • 【机器学习】逻辑回归

    1 逻辑回归基础理论 逻辑回归 Logistic regression 又叫对数几率回归 是一个分类模型 主要进行二分类 在线性回归的基础上进行一个sigmoid变换 于是得到逻辑回归模型 逻辑回归输出值在 0 1 之间 直观含义是y 1的
  • js中事件绑定3种方法以及事件委托

    事件绑定 首先 我先来介绍我们平时绑定事件的三种方法 1 嵌入dom
  • JavaScript图片转base64格式

    function changeBase64 var imgSrc share png 图片本地路劲 写自己本地图片地址 var image new Image image setAttribute crossOrigin anonymous
  • Docker Compose:Docker Compose部署nacos初始化MySQL

    Docker Compose Docker Compose部署nacos初始化MySQL 找初始化sql文件 nacos初始化mysql schema sql文件内容 docker compose yml 上传到挂载目录 运行docker
  • java常用工具类总结

    1 Java自带工具方法 1 1 List集合拼接成以逗号分隔的字符串 如何把list集合拼接成以逗号分隔的字符串 a b c List
  • 不安装oracle客户端,用plsql连接oracle

    首先安装32位和64位的Oracle客户端 在很多Oracle安装介绍中 都有提到设置2点 一 e 1 环境变量 NLS LANG SIMPLIFIED CHINESE CHINA ZHS16GBK 2 TNS ADMIN D app pr
  • 跨域问题Response to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Origin

    场景 前端跟后台联合开发的时候 在局域网内 浏览器访问别人的地址可以获取数据 但是通过接口请求 就会跨域 解决方法 现在是vue项目 用axios请求 前端这边单独解决这个问题 不需要后端处理 第一 找到config index js 设置
  • 蓝牙Mesh开发四 TLSR8258 ble mesh通信测评

    前言 TLSR是由泰凌微电子设计的一款低功耗蓝牙芯片 8258芯片方案已经支持SigMesh协议栈 符合BLE5 0协议规范 跑下Demo来做下SIG Mesh的测试 如有异议 欢迎留言指正 特性 32 Bit RISC V 处理器 最高主
  • 深度学习损失函数之——L1 L2 SmoothL1(范数、损失函数、正则化)

    L1 L2以及Smooth L1是深度学习中常见的3种损失函数 这3个损失函数有各自的优缺点和适用场景 首先给出各个损失函数的数学定义 假设 x x x 为预测值与Ground Truth之间的差值 L1 loss表示预测值和真实值之差的绝