设计企业的网站广州网络公司网络推广

当前位置: 首页 > news >正文

设计企业的网站,广州网络公司网络推广,淘宝网店怎么运营起来,品牌网站建设黑白H狼文章目录 前言一、均方误差二、交叉熵损失三、二元交叉熵损失四、Smooth L1 Loss五、IOU系列的loss 前言 损失函数是度量模型的预测输出与真实标签之间的差异或误差#xff0c;在深度学习算法中起着重要作用。具体作用#xff1a; 1、目标优化#xff1a;损失函数是优化算法… 文章目录 前言一、均方误差二、交叉熵损失三、二元交叉熵损失四、Smooth L1 Loss五、IOU系列的loss 前言 损失函数是度量模型的预测输出与真实标签之间的差异或误差在深度学习算法中起着重要作用。具体作用 1、目标优化损失函数是优化算法的目标函数通过最小化损失函数模型的参数可以使得预测值接近真实值。训练过程的目标就是找到使损失函数最小化的参数。 2、模型评估损失函数也可用于评估模型的性能。 3、指导学习过程通过损失函数模型可以学习如何调整权重和偏置以最小化预测实际标签之间的差异。这是通过梯度下降等优化算法来实现这些算法使用损失函数的梯度来指导参数的更新。 深度学习损失函数在训练和评估深度学习模型中发挥关键作用直接影响模型的性能和泛化能力。选择合适的损失函数是深度学习模型设计中的一个重要决策。 一、均方误差 均方误差Mean Squared ErrorMSE是一种用于回归问题的损失函数它度量模型的预测值与实际标签之间的平方差的平均值。通常用在具有连续输出的回归问题中使用结合梯度下降等优化算法最小化模型的预测误差。 优点由于平方的存在能对大误差给予更大的惩罚。缺点对离群值异常值非常敏感单个异常值可能对整体损失较大影响。 在pytroch的API参考文档 torch.nn.MSELoss(reduction‘mean’) reduction (str, optional) – Specifies the reduction to apply to the output: ‘none’ | ‘mean’ | ‘sum’. ‘none’: no reduction will be applied, ‘mean’: the sum of the output will be divided by the number of elements in the output, ‘sum’: the output will be summed. Note: size_average and reduce are in the process of being deprecated, and in the meantime, specifying either of those two args will override reduction. Default: ‘mean’ 代码示例 import torch import torch.nn as nntorch.random.manual_seed(0)if name main:mse nn.MSELoss(reductionsum)inputs torch.randn(3, 5, requires_gradTrue)outputs torch.randn(3, 5)loss mse(inputs, outputs)在cv中常用在以下几个领域 图像配准模板匹配MSE用于衡量两个图像之间的差异。通过比较配准后的图像与目标之间的像素评估二者之间的差异。回归任务在图像属性预测等任务中MSE是一种常见的损失函数。目标检测在目标检测中当模型需要回归目标边界框的坐标时MSE度量预测框与真实框之间的位置差异。如yolov1等。自监督学习生成的目标通常是通过对原始数据应用某种变换而获得的。MSE可以用于度量模型生成的结果与变换后的原始数据之间的差异。生成对抗网络GAN 在 GAN 中生成器的输出与真实图像之间的差异通常可以通过 MSE 来度量。然而对抗性损失例如二元交叉熵通常更为常见因为它更好地促使生成器生成逼真的图像。 二、交叉熵损失 CrossEntropyLoss交叉熵损失是在多分类问题中常用的损失函数用于衡量模型输出的概率分布与真实标签的差异。 Y代表真实值 Y-head表示预测值 交叉熵损失通过比较模型对每个类别的预测概率与真实标签的概率分布惩罚模型对正确类别的不确定性越大的情况。在优化过程中模型的目标是最小化交叉熵损失以使得模型对每个样本的预测更接近真实的标签分布。参考文档 在PyTorch等深度学习框架中CrossEntropyLoss通常与Softmax激活函数结合使用。Softmax函数能够将模型的原始输出转换成表示概率分布的形式而CrossEntropyLoss则基于这些概率计算损失。 代码示例 import torch import torch.nn as nn# Example of target with class indices loss nn.CrossEntropyLoss() input torch.randn(3, 5, requiresgradTrue) target torch.empty(3, dtypetorch.long).random(5) output loss(input, target) output.backward()

Example of target with class probabilities

input torch.randn(3, 5, requires_gradTrue) target torch.randn(3, 5).softmax(dim1) output loss(input, target) output.backward()在cv领域交叉熵损失常用在图像多分类的场景中。 三、二元交叉熵损失 BCELoss是交叉熵损失在二分类问题上的一个特例。在深度学习中会使用二元交叉熵损失函数来衡量二分类模型的性能。与一般的交叉熵损失相比二元交叉熵只涉及两个类别因此简化了损失函数的形式。优化算法如梯度下降通过最小化BCELoss来调整模型参数使得模型在二分类任务中更准确。 表达式如下 在pytorch的API torch.nn.BCELoss(weightNone, reduction‘mean’) reduction (str, optional) – Specifies the reduction to apply to the output: ‘none’ | ‘mean’ | ‘sum’. ‘none’: no reduction will be applied, ‘mean’: the sum of the output will be divided by the number of elements in the output, ‘sum’: the output will be summed. Note: size_average and reduce are in the process of being deprecated, and in the meantime, specifying either of those two args will override reduction. Default: ‘mean’ 在PyTorch等深度学习框架中BCELoss通常与Sigmoid激活函数一起使用因为Sigmoid函数可以将模型输出映射到[0, 1]范围内的概率值。这两者的结合通常用于最后一层的模型输出。 代码示例 import torch import torch.nn as nnm nn.Sigmoid() loss nn.BCELoss() input torch.randn(3, 2, requires_gradTrue) target torch.rand(3, 2, requires_gradFalse) output loss(m(input), target) output.backward()四、Smooth L1 Loss Smooth L1 Loss也称为 Huber Loss是一种损失函数通常用于回归问题。它的特点是相对于均方误差MSE在预测接近目标值时损失函数的增长更缓慢这使得它对离群值outliers更加鲁棒。 beta一般等于1。 优点 鲁棒性Smooth L1 Loss相对于均方误差MSE对离群值更具鲁棒性。这使得它在处理包含噪声或异常值的数据时表现更好尤其在回归任务中其中存在离群值的可能性较大。平滑性 在 (|x| 1) 的情况下Smooth L1 Loss使用平方项使得损失在预测接近目标值时增长缓慢。这种平滑性有助于训练过程的稳定性。对于大误差的抑制效果 对于大误差Smooth L1 Loss的增长速率较慢相对于MSE它在对大误差的处理上更加温和。 缺点对小误差不敏感 对于小误差Smooth L1 Loss的损失增长速率较快这可能使得在某些情况下对小误差不够敏感。这也可能导致模型对于较小的误差调整得过于激烈。非唯一性 对于某些相同的误差Smooth L1 Loss可能有多个最小值。这使得损失函数的形状在某些情况下变得复杂可能对优化过程产生一定的影响。 在pytorch中的API torch.nn.SmoothL1Loss(reduction‘mean’, beta1.0) 在cv领域中smooth L1 loss常用来代替MSE用于边界框回归相比较MSEsmooth L1 loss更抗干扰。 五、IOU系列的loss IOU Loss用于衡量目标检测模型性能的损失函数。用于监督模型在生成边界框预测时与真实边界框之间的重叠程度。 总共有四种IOU相关的LossIOU Loss、GIOU Loss、DIOU Loss、CIOU Loss 1IOU Loss衡量预测框与真实框的IOU的大小IOU越大损失越少。 优点能够更好反应重合程度具有尺度不变性 缺点当二者不相交时Loss为0导致损失没办法继续传播。 2、GIOU Loss GIOULoss针对IOULoss的缺点引入了Ac和u改善了部分IOULoss的缺陷。 Ac表示蓝色矩形框的面积u表示预测框与真实框的并集。 GIOULoss表达式 GIOU Loss 1 - GIOU 缺点是两个边界框在同一水平线上时Ac等于u退化成IOU。收敛慢收敛精度低。 3DIOU Loss DIOU Loss在IOU的基础上考虑了预测框与边界框中心的距离及最大矩形框的对角线距离。 DIOULoss 1 - DIou DIOULoss极大加快了收敛速度和收敛精度。 4CIOU Loss CIOU Loss在DIOU Loss的基础上还考虑长宽比。