文章结构

  1. 损失函数在神经网络中的位置
  2. 常用的损失函数(结构:解释,公式,缺点,适用于,pytorch 函数)
    1. MAE/L1 Loss
    2. MSE/L2 Loss
    3. Huber Loss
    4. 对信息量、熵的解释
    5. relative entropy 相对熵/ Kullback-Leibler KL Loss
    6. Cross Entropy Loss 交叉熵(包含对softmax 层的解释)
      • 相对熵、熵、和交叉熵的关系
    7. Hinge Loss

损失函数在神经网络中的位置

forward → loss → backward

常用的损失函数

信息量

由香农引入,可以理解为对事件X发生概率的估计。一件事越经常发生,就越容易预测,它所包含的信息量就越小。

公式:

其中,  表示信息量,表示事件X中的一个种类, 表示该种类的概率分布。

取对数  是为了方便计算,接下来都用简写代替。

每个种类的发生概率与信息量的乘积和,表示一个系统不确定性或混乱程度。

对于系统的不确定性可以理解为,由概率分布计算得到的信息量越大,表示越不容易预测,同时意味着并不遵循一定的规律,越混乱/不确定。

公式:

其中 ,表示熵,求和上标表示事件X的种类/分类的个数(举例,掷硬币这一事件的种类有正、反2种), 表示第i种类的概率分布。

relative entropy 相对熵/ Kullback-Leibler KL Loss 

 为 事件X 中取值的两个概率分布, 对 的相对熵(≥ 0 ):

公式引用自:http://t.csdnimg.cn/hRb5X

这里的两个概率分布可以是(由标签/target 计算得到的)真实概率和模型预测概率

在pytorch 官方文档中 KLDivLoss — PyTorch 2.3 documentation 解释为

pytorch 函数:

Cross Entropy Loss 交叉熵

公式:

表示 真实概率和预测概率的差距。

公式引用自详解机器学习中的熵、条件熵、相对熵和交叉熵 - 遍地胡说 - 博客园 (cnblogs.com)

其中, 在实际运用中,由 softmax 层 计算得到 。

Softmax 层输出的是每个分类的概率分布,将数字转化为概率。

引用:http://t.csdnimg.cn/hRb5X

在pytorch 官方文档中,其中 是一个1D 的张量,为每个类别分配权重,C 为事件的分类总数,相当于上文中的n。

为softmax的输出。

适用于:分类;样本分布不平衡的训练集

pytorch 函数:

其中,官方文档解释,input不需要normalize。

常用损失函数 LossFunction的更多相关文章

  1. 【深度学习】一文读懂机器学习常用损失函数(Loss Function)

    最近太忙已经好久没有写博客了,今天整理分享一篇关于损失函数的文章吧,以前对损失函数的理解不够深入,没有真正理解每个损失函数的特点以及应用范围,如果文中有任何错误,请各位朋友指教,谢谢~ 损失函数(lo ...

  2. pytorch常用损失函数

    损失函数的基本用法: criterion = LossCriterion() #构造函数有自己的参数 loss = criterion(x, y) #调用标准时也有参数 得到的loss结果已经对min ...

  3. 损失函数 hinge loss vs softmax loss

    1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f(x) 与真实值 Y 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x)) 来表示. 损失函数越小,模型的鲁 ...

  4. [AI]神经网络章3 损失函数

    损失函数 作用 在有监督的学习中,需要衡量神经网络输出和所预期的输出之间的差异大小.这种误差函数需要能够反映出当前网络输出和实际结果之间一种量化之后的不一致程度,也就是说函数值越大,反映出模型预测的结 ...

  5. 机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)

    https://blog.csdn.net/u010976453/article/details/78488279 1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f( ...

  6. 对于分类问题的神经网络最后一层的函数:sigmoid、softmax与损失函数

    对于分类问题的神经网络最后一层的函数做如下知识点总结: sigmoid和softmax一般用作神经网络的最后一层做分类函数(备注:sigmoid也用作中间层做激活函数): 对于类别数量大于2的分类问题 ...

  7. [ch03-00] 损失函数

    系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 第3章 损失函数 3.0 损失函数概论 3.0.1 概念 ...

  8. [PyTorch 学习笔记] 4.2 损失函数

    本章代码: https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson4/loss_function_1.py https:// ...

  9. Tensorflow 2.0 深度学习实战 —— 详细介绍损失函数、优化器、激活函数、多层感知机的实现原理

    前言 AI 人工智能包含了机器学习与深度学习,在前几篇文章曾经介绍过机器学习的基础知识,包括了监督学习和无监督学习,有兴趣的朋友可以阅读< Python 机器学习实战 >.而深度学习开始只 ...

  10. 深度学习常见的优化方法(Optimizer)总结:Adam,SGD,Momentum,AdaGard等

    机器学习的常见优化方法在最近的学习中经常遇到,但是还是不够精通.将自己的学习记录下来,以备不时之需 基础知识: 机器学习几乎所有的算法都要利用损失函数 lossfunction 来检验算法模型的优劣, ...

随机推荐

  1. Qt数据库应用18-横向纵向排版

    一.前言 近期用户提了个需求,需要打印一个文档,要求其中部分页横向排版部分页面纵向排版,这个在之前的通用打印导出pdf类中是不具备的,通用的打印导出pdf只能统一设置一个排版方式,要么横向要么纵向,而 ...

  2. JSON字符串反序列化 动态泛型

    需求:定时任务扫描,反射调用目标对象,但是,方法的传参不是固定的. 方案一:将方法参数存成JSON字符串,然后JSON反序列化成对象,然后反射调用 目标方法时这样的: CommandResp send ...

  3. KMS for Office 2024

    I. 镜像下载 官方镜像下载地址: Office 2024 专业增强版: https://officecdn.microsoft.com/db/492350f6-3a01-4f97-b9c0-c7c6 ...

  4. Docker Desktop 使用笔记

    一.Docker Desktop是什么? Docker Desktop是适用于Windows的Docker桌面,是Docker设计用于在Windows 10上运行.它是一个本地 Windows 应用程 ...

  5. 「V 曲闲谈」《hello&bye,days》——记这周

      这周破事儿浓度真的,情绪渗透压巨大失调.   完全没有曲析啊喂,顶多当个阅读时 BGM.() 两度失眠   "砰--"   朦胧之中看见斜上方的室友起身.   "砰- ...

  6. shell脚本检查192.168.1网段ip是否在用

    要检查 192.168.1 网段中哪些 IP 地址正在使用,可以使用 Shell 脚本结合 ping 命令来扫描整个网段.以下是实现这一功能的完整脚本: 脚本:检查 192.168.1 网段 IP 是 ...

  7. Java版的对象关系映射实现

    在前面的几篇文章中,实现了获得基本类型的默认值,基本数据类型的转换等,主要的目标就是实现一个Java版的对象关系映射程序. 思路如下: 1: 对象必须是一个Java Bean. 2: 遍历对象的所有以 ...

  8. .NET周刊【1月第1期 2025-01-05】

    国内文章 3款.NET开源.功能强大的通讯调试工具,效率提升利器! https://www.cnblogs.com/Can-daydayup/p/18631410 本文介绍了三款功能强大的.NET开源 ...

  9. oracle11gRAC升级到19C

    升级oracle11g集群到19.3 前述环境检查: [root@qhdb1 ~]# crsctl status res -t ------------------------------------ ...

  10. java中的文件流File

    数据 + 流(转)操作 IO I表示的是:输入Input O表示的是:Output Stream表示流转 java中的管道不止一个.并且管道有可能不是一样的. 有的管道粗有的管道细 File的常用方法 ...