深度学习之损失函数小结

开篇

损失函数在深度学习中的作用相当于引领模型学习的方式,其重要程度不言而喻;

下图为一些损失函数的关系:

Sigmoid和Softmax损失

Sigmoid公式:S(x)=11+e−xS(x)=\frac{1}{1+e^{-x}}S(x)=1+e−x1​

Softmax公式:S(xj)=exj∑k=1Kexk,j=1,2,…,KS\left(x_{j}\right)=\frac{e^{x_{j}}}{\sum_{k=1}^{K} e^{x_{k}}}, j=1,2, \ldots, KS(xj​)=∑k=1K​exk​exj​​,j=1,2,…,K

二者的区别:

  • sigmoid作用于输出为非互斥类别,且可以同时选择多个类别;

  • Softmax作用于输出为互斥类别,且只能选择一个类别;

交叉熵损失函数

Binary Cross Entropy,最基本的交叉熵损失函数形式(二分类交叉熵)

公式:L=−∑c=1Myclog⁡(pc)L=-\sum_{c=1}^{M} y_{c} \log \left(p_{c}\right)L=−∑c=1M​yc​log(pc​)

但由于任务的数据往往不均衡,可采用加权交叉熵损失或者平衡交叉熵损失的方式;

Focal Loss

也是一种交叉熵损失函数的变形

其中有两个超参数,都是为了解决一定问题;

α:正负样本不均衡的问题,相当于加了权重;

γ:解决困难样本,相当于加重对困难样本的惩罚;

L1 Loss和L2 Loss

均方误差MSE(L2 Loss)计算公式:MSE=∑i=1n(fxi−yi)2nM S E=\frac{\sum_{i=1}^{n}\left(f_{x i}-y_{i}\right)^{2}}{n}MSE=n∑i=1n​(fxi​−yi​)2​

存在问题:

1、容易受离群点影响;

2、由于梯度没有上限,容易产生梯度爆炸;

平均绝对误差MAE(L1 Loss)计算公式: MAE=∑n=1n∣f(xi)−yi∣nM A E=\frac{\sum_{n=1}^{n}\left|f\left(x_{i}\right)-y_{i}\right|}{n}MAE=n∑n=1n​∣f(xi​)−yi​∣​

存在问题:虽然受离群点的影响较少,但梯度一直不变,不利于模型收敛

L1 Loss的改进版:Smooth L1 Loss:

计算公式:

说明:在【-1,1】这个区间内,和L2 Loss是很接近的,在其余区域和L1 Loss接近;也就是结合二者的优点,一开始收敛较快,后续又能慢慢收敛;

为什么分类问题损失函数用交叉熵而不是MSE

首先从损失函数的梯度上理解:

可以看出,MSE会出现梯度消失的情况,在过小和过大的值时;

而且,分类问题只关注置信度最大的类别,对于其他类别并不关心,而MSE损失会优化所有输出;

Dice Loss

首先看一下Dice系数的计算公式,实际上和IOU很相似

转换公式可以写成:IoU = Dice / 2 - Dice

IOU即其变种

在目标检测中,往往不采用L1 Loss和L2 Loss,而是使用IOU Loss,其目的是考虑目标的几何含义;
下面看一个案例:

说明:
从图中可以看出,几个目标框和检测框的L2 Loss是相同的,但很明显IOU的评价指标更好;并且IOU Loss跟图像大小没有关系,对于图像大小有更好的鲁棒性;
优点:
1、IOU可以作为距离,loss=1-IOU,当两个物体不相交时不回传数据;
2、IOU对尺度变化具有不变性,即不受两个无图尺度大小的影响;
缺点:
无法判断两个框的距离以及位置信息;

如上图可以看出两种情况下IOU都是一致的,从位置上第一种情况会好一些;

GIOU

计算公式,实际上就是在IOU后面加多一项:

说明:
通过计算最小包络和减去并集的部分,将这部分作为损失;
优点:
1、即使在不相交的情况下,也可以计算其损失值;
2、可以更好的反应相交的情况,也就是框和框之间的位置关系;

DIOU

如果预测框都在真实框里面,则IOU和GIOU的值都是一致的,如下图:

目的:考虑预测框和真是框中心点关系,用来解决包含关系时候无法评价的问题;
计算公式:

其中分子也就是d²;
优点:
1、当与目标框为包含关系时,也可以为预测框提供移动方向(向中心点)
2、可以最小化两个目标框的距离,收敛的会更快一些,位置也会更准确;

CIOU

说明:考虑到预测框的宽高比;


待补充

深度学习之损失函数小结相关推荐

  1. 深度学习培训班当天小结1

    宁波深度学习培训当日小结1 来了宁波参加一个深度学习的培训班,虽然大部分的内容其实是之前自学的时候都有了了解,但还是借此机会做个总结. 传统机器学习 深度学习简介 环境设置 传统机器学习 在这个简单的 ...

  2. 深度学习之激活函数小结

    深度学习之激活函数小结 激活函数的作用和意义:引入非线性,增加网络表达能力: 基本激活函数介绍 首先看一下一些常见的激活函数: Sigmoid: 总结:第一个出现的激活函数,存在以下问题,所以后面基本 ...

  3. 多分类svm的hinge loss公式推导_损失函数—深度学习常见损失函数总结【图像分类|下】...

    点击蓝字关注我们 AI研习图书馆,发现不一样的精彩世界 学习 笔记 常见损失函数总结-图像分类下篇 一.前言 在深度学习中,损失函数扮演着至关重要的角色.通过最小化损失函数,使模型达到收敛状态,减少模 ...

  4. 深度学习常用损失函数总览:基本形式、原理、特点

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:王桂波,来源:极市平台 机器学习中的监督学习本质上是给定一系列训练 ...

  5. 六个深度学习常用损失函数总览:基本形式、原理、特点

    来源:极市平台 本文共4500字,建议阅读8分钟本文将介绍机器学习.深度学习中分类与回归常用的几种损失函数. 机器学习中的监督学习本质上是给定一系列训练样本  ,尝试学习  的映射关系,使得给定一个  ...

  6. display函数怎么使用_损失函数—深度学习常见损失函数总结【图像分类|上】

    点击蓝字关注我们 AI研习图书馆,发现不一样的精彩世界 学习 笔记 常见损失函数总结-图像分类篇[上] 一.前言在深度学习中,损失函数扮演着至关重要的角色.通过最小化损失函数,使模型达到收敛状态,减少 ...

  7. 【深度学习】损失函数详解

    损失函数 什么是损失函数? 损失函数的分类 回归损失 L1 Loss L2 Loss Smooth L1 Loss IoU Loss IoU Loss vs Lx Loss GIoU Loss DIo ...

  8. 深度学习基础-损失函数详解

    一,损失函数概述 大多数深度学习算法都会涉及某种形式的优化,所谓优化指的是改变 x x x 以最小化或最大化某个函数 f ( x ) f(x) f(x

  9. 深度学习之——损失函数(loss)

    深度学习中的所有学习算法都必须有一个 最小化或最大化一个函数,称之为损失函数(loss function),或"目标函数"."代价函数".损失函数是衡量模型的效 ...

最新文章

  1. 第3课:SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错...
  2. 澳洲服务器拳头账号怎么注册,lol手游东南亚服拳头账号注册教程 东南亚服怎么注册拳头账号[多图]...
  3. mysql display size_mysql integer size 大小
  4. 关系和纽带:六度分割理论【存疑2处】
  5. 清空list_3. Python3轻食丨一个故事看懂List所有用法:1年级1班的班级生活
  6. 一次线上redis报障处理过程
  7. C语言编译器有哪些?
  8. 【Qt】QModbusRtuSerialSlave类
  9. SAP Spartacus 默认的 pwa,处于关闭状态还是打开状态?
  10. 第四十二期:Linux转正日常办公电脑到底行不行
  11. 三、mongodb数据库系列——mongodb和python交互 总结
  12. Infographic Modern Graphs Mac(现代信息图表动画fcpx插件)
  13. Java基础学习总结(95)——Java反射主要用来干什么?
  14. 解决Eclipse自动补全变量名的问题
  15. 陈后金信号与系统matlab习题答案,陈后金信号与系统第2版课后习题答案解析
  16. 海湾汉字编码表全部_汉字编码对照表
  17. 视频字幕制作软件:iSubtitle for mac中文版
  18. 快递面单打印报错:“print selected is not valid” 解决方案
  19. 在线支付功能实现代码
  20. 通过简单脚本批量取消新浪微博的关注

热门文章

  1. 计算机会计试题原型法的优缺点,《计算机会计学》1..doc
  2. 选定区域着色html,PS怎么填充颜色到选中区域?PS填充颜色到选中区域的方法
  3. 用Dijkstra算法找到图上两点之间的最短路径
  4. java求最短距离_计算多点之间的最短距离
  5. 灰狼优化算法(GWO)附代码
  6. java base64转字图片、图片转base64字符串
  7. 最新云智推任务提交版拉新任务分销系统源码+功能强大
  8. 萌新python爬虫初学
  9. xtu1395 字符频度
  10. win10去掉快捷方式小箭头(win10桌面快捷方式小箭头怎么去掉)