bceloss 十九种损失函数 你能认识几个

栏目:民生 2021-10-09 20:22:08
分享到:

重干货,第一时间送达

本文转自|视觉算法

19损失函数

1.L1范数损失L1Loss

计算输出和目标之间差值的绝对值。

参数:

还原-三个值,无:不使用还原;均值:返回损失总和的平均值;Sum:返回损失的总和。默认:均值。

2均方误差损失毫秒损失

计算输出和目标之间差值的均方误差。

参数:

还原-三个值,无:不使用还原;均值:返回损失总和的平均值;Sum:返回损失的总和。默认:均值。

3个交叉韧带交叉韧带

当存在c类分类问题时,非常有效。可选参数权重必须是一维张量,权重将分配给每个类别。对于不平衡的训练集非常有效。

在多分类任务中,经常使用softmax激活函数+交叉熵损失函数,因为交叉熵描述的是两种概率分布的差异,但神经网络的输出是向量,不是概率分布的形式。因此,需要使用softmax激活函数将一个向量“归一化”为概率分布的形式,然后使用交叉熵损失函数来计算损失。

参数:

重量–每个类别的用户定义重量。它必须是长度为c的张量

ignore _ index–设置一个目标值,该值将被忽略,并且不会影响输入的渐变。

还原-三个值,无:不使用还原;均值:返回损失总和的平均值;Sum:返回损失的总和。默认:均值。

4 KL发散损失KL发散

计算输入和目标之间的KL散度。KL散度可以用来度量不同连续分布之间的距离,对于连续输出分布的空之间的直接回归非常有效。

参数:

还原-三个值,无:不使用还原;均值:返回损失总和的平均值;Sum:返回损失的总和。默认:均值。

5二元交叉熵损失

任务分类时交叉熵的计算函数。用于测量重构误差,如自动编码器。注意,目标值t的范围从0到1。

参数:

重量–用户定义的每个批次元素的损失重量。它必须是长度为“nbatch”的张量

6 BCEWithLogitsLoss

BCEWithLogitsLoss损失函数将Sigmoid层集成到BCELoss类中。这个版本比使用简单的Sigmoid层和BCELoss在数值上更稳定,因为在将这两个操作组合成一个层之后,可以使用log-sum-exp技术来实现数值稳定性。

参数:

重量–用户定义的每个批次元素的损失重量。它一定是一个长度为“nbatch”的张量

7页边空白

小批量中每个实例的损失函数如下:

参数:

边距:默认值为0

8铰链嵌入损耗

小批量中每个实例的损失函数如下:

参数:

边距:默认值为1

9多标签分类丢失多标签边缘丢失

对于小批量的每个样品,根据以下公式计算损失:

10平滑版L1损失平滑1损失

也称为Huber损失函数。

其间

物流损失11 2分类软余量损失

12个多标签单范思哲全损多标签软余量损耗

13余弦损失共同嵌入损失

参数:

边距:默认值为0

14铰链损失的多类别分类

参数:

P=1或2默认值:1

边距:默认值为1

15次三倍亏损三倍亏损

类似孪生网,具体例子:先给a,再给b和c,看看谁更像a。

其中:

16连接定时分类丢失CTCLoss

CTC连接时序分类丢失,可以自动对齐未对齐的数据,主要用于训练序列化数据,无需事先对齐。比如语音识别、ocr识别等等。

参数:

还原-三个值,无:不使用还原;均值:返回损失总和的平均值;Sum:返回损失的总和。默认:均值。

17负对数似然损失

负对数似然损失。用来训练C类的分类问题。

参数:

重量–每个类别的用户定义重量。它必须是长度为c的张量

ignore _ index–设置一个目标值,该值将被忽略,并且不会影响输入的渐变。

18 NLLLoss2d

对于图像输入的负对数似然损失,计算每个像素的负对数似然损失。

参数:

重量–每个类别的用户定义重量。它必须是长度为c的张量

还原-三个值,无:不使用还原;均值:返回损失总和的平均值;Sum:返回损失的总和。默认:均值。

19例中毒死亡

目标值是泊松分布的负对数似然损失

参数:

log _ input–如果设置为True,将根据公式exp-target * input计算损失;如果设置为False,将根据输入-目标*日志计算损失。

full–是否计算所有损失,即加上斯特林近似项目标* log-target+0.5 * log。

EPS–默认值:1e-8

参考文献:

pytorch损耗函数概述

http://www.voidcn.com/article/p-rtzqgqkz-bpg.html

下载1:中文版教程1:OpenCV-Contrib扩展模块

下载2:第2讲:Python可视化实用项目52

下载3:第20讲,共3讲:OpenCV实践项目

交换组