深度学习之损失函数小结
深度学习之损失函数小结
开篇
损失函数在深度学习中的作用相当于引领模型学习的方式,其重要程度不言而喻;
下图为一些损失函数的关系:
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=1Kexkexj,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=1Myclog(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 来了宁波参加一个深度学习的培训班,虽然大部分的内容其实是之前自学的时候都有了了解,但还是借此机会做个总结. 传统机器学习 深度学习简介 环境设置 传统机器学习 在这个简单的 ...
- 深度学习之激活函数小结
深度学习之激活函数小结 激活函数的作用和意义:引入非线性,增加网络表达能力: 基本激活函数介绍 首先看一下一些常见的激活函数: Sigmoid: 总结:第一个出现的激活函数,存在以下问题,所以后面基本 ...
- 多分类svm的hinge loss公式推导_损失函数—深度学习常见损失函数总结【图像分类|下】...
点击蓝字关注我们 AI研习图书馆,发现不一样的精彩世界 学习 笔记 常见损失函数总结-图像分类下篇 一.前言 在深度学习中,损失函数扮演着至关重要的角色.通过最小化损失函数,使模型达到收敛状态,减少模 ...
- 深度学习常用损失函数总览:基本形式、原理、特点
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:王桂波,来源:极市平台 机器学习中的监督学习本质上是给定一系列训练 ...
- 六个深度学习常用损失函数总览:基本形式、原理、特点
来源:极市平台 本文共4500字,建议阅读8分钟本文将介绍机器学习.深度学习中分类与回归常用的几种损失函数. 机器学习中的监督学习本质上是给定一系列训练样本 ,尝试学习 的映射关系,使得给定一个 ...
- display函数怎么使用_损失函数—深度学习常见损失函数总结【图像分类|上】
点击蓝字关注我们 AI研习图书馆,发现不一样的精彩世界 学习 笔记 常见损失函数总结-图像分类篇[上] 一.前言在深度学习中,损失函数扮演着至关重要的角色.通过最小化损失函数,使模型达到收敛状态,减少 ...
- 【深度学习】损失函数详解
损失函数 什么是损失函数? 损失函数的分类 回归损失 L1 Loss L2 Loss Smooth L1 Loss IoU Loss IoU Loss vs Lx Loss GIoU Loss DIo ...
- 深度学习基础-损失函数详解
一,损失函数概述 大多数深度学习算法都会涉及某种形式的优化,所谓优化指的是改变 x x x 以最小化或最大化某个函数 f ( x ) f(x) f(x
- 深度学习之——损失函数(loss)
深度学习中的所有学习算法都必须有一个 最小化或最大化一个函数,称之为损失函数(loss function),或"目标函数"."代价函数".损失函数是衡量模型的效 ...
最新文章
- 第3课:SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错...
- 澳洲服务器拳头账号怎么注册,lol手游东南亚服拳头账号注册教程 东南亚服怎么注册拳头账号[多图]...
- mysql display size_mysql integer size 大小
- 关系和纽带:六度分割理论【存疑2处】
- 清空list_3. Python3轻食丨一个故事看懂List所有用法:1年级1班的班级生活
- 一次线上redis报障处理过程
- C语言编译器有哪些?
- 【Qt】QModbusRtuSerialSlave类
- SAP Spartacus 默认的 pwa,处于关闭状态还是打开状态?
- 第四十二期:Linux转正日常办公电脑到底行不行
- 三、mongodb数据库系列——mongodb和python交互 总结
- Infographic Modern Graphs Mac(现代信息图表动画fcpx插件)
- Java基础学习总结(95)——Java反射主要用来干什么?
- 解决Eclipse自动补全变量名的问题
- 陈后金信号与系统matlab习题答案,陈后金信号与系统第2版课后习题答案解析
- 海湾汉字编码表全部_汉字编码对照表
- 视频字幕制作软件:iSubtitle for mac中文版
- 快递面单打印报错:“print selected is not valid” 解决方案
- 在线支付功能实现代码
- 通过简单脚本批量取消新浪微博的关注