深度解析:损失函数与代价函数的全貌

server/2025/3/25 13:17:22/

深度解析:损失函数与代价函数的全貌

  • 常见的损失函数和代价函数
    • 1 均方误差损失函数(Mean Squared Error,MSE)
    • 2.交叉熵损失函数
    • 3.对数损失函数
    • 4.KL 散度损失函数
    • 总结
      • 说明
    • 代价函数

常见的损失函数和代价函数

代价函数的定义:代价函数是一个衡量整个数据集的预测值与实际值之间差异的函数。它通常是对所有样本的损失函数值进行平均或求和后的结果。

损失函数的定义:损失函数是一个衡量单个样本的预测值与实际值之间差异的函数。它通常用于评估模型在单个样本上的性能。

1 均方误差损失函数(Mean Squared Error,MSE)

均方误差损失函数(Mean Squared Error,MSE)是一种常用的损失函数,用于衡量模型预测值与实际值之间的差异。它的计算公式如下:

MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

其中:

  • n n n是样本数量。
  • y i y_i yi是第 i i i个样本的实际值。
  • y ^ i \hat{y}_i y^i是第 i i i个样本的预测值。

均方误差损失函数的计算步骤如下:

  1. 对于每个样本,计算实际值 y i y_i yi与预测值 y ^ i \hat{y}_i y^i之间的差值。
  2. 将差值平方,即 ( y i − y ^ i ) 2 (y_i - \hat{y}_i)^2 (yiy^i)2
  3. 对所有样本的平方差求和,即 ∑ i = 1 n ( y i − y ^ i ) 2 \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 i=1n(yiy^i)2
  4. 将求和结果除以样本数量 n n n,得到均方误差。

均方误差损失函数的特点是:

  • 它是二次函数,因此对于较大的误差,惩罚更大。
  • 它是可微的,因此可以使用梯度下降等优化算法来最小化损失。
  • 它的值总是非负的,且当预测值与实际值完全相同时,MSE 为 0。

该损失函数的值越小,表示模型的预测结果越接近真实值。。

2.交叉熵损失函数

交叉熵损失函数(Cross-Entropy,CE)是一种常用的损失函数,用于衡量模型预测的概率分布与实际的概率分布之间的差异。它在分类问题中非常常见,尤其是多分类问题。交叉熵损失函数的计算公式如下:

CE = − 1 n ∑ i = 1 n ∑ j = 1 k y i j log ⁡ ( y ^ i j ) \text{CE} = -\frac{1}{n} \sum_{i=1}^{n} \sum_{j=1}^{k} y_{ij} \log(\hat{y}_{ij}) CE=n1i=1nj=1kyijlog(y^ij)

其中:

  • n n n是样本数量。
  • k k k是类别数量。
  • y i j y_{ij} yij是第 i i i个样本属于第 j j j个类别的实际概率(通常为 0 或 1,表示样本是否属于该类别)。
  • y ^ i j \hat{y}_{ij} y^ij是第 i i i个样本属于第 j j j个类别的预测概率。

交叉熵损失函数的计算步骤如下:

  1. 对于每个样本和每个类别,计算实际概率 y i j y_{ij} yij与预测概率 y ^ i j \hat{y}_{ij} y^ij的乘积。
  2. 对乘积取对数,即 y i j log ⁡ ( y ^ i j ) y_{ij} \log(\hat{y}_{ij}) yijlog(y^ij)
  3. 对所有样本和所有类别的对数乘积求和,即 ∑ i = 1 n ∑ j = 1 k y i j log ⁡ ( y ^ i j ) \sum_{i=1}^{n} \sum_{j=1}^{k} y_{ij} \log(\hat{y}_{ij}) i=1nj=1kyijlog(y^ij)
  4. 将求和结果取负号,并除以样本数量 n n n,得到交叉熵损失。

交叉熵损失函数的特点是:

  • 它衡量了两个概率分布之间的差异,因此对于分类问题非常适用。
  • 它是可微的,因此可以使用梯度下降等优化算法来最小化损失。
  • 它的值总是非负的,且当预测概率分布与实际概率分布完全相同时,CE 为 0。

通过最小化交叉熵损失,可以找到最佳的模型参数,使得模型的预测概率分布尽可能接近实际的概率分布。这在多分类问题中尤为重要,因为多分类问题的输出是一个概率分布,而不是一个单一的类别标签。

3.对数损失函数

对数损失函数(Logarithmic Loss),也称为对数似然损失(Log Likelihood Loss)或交叉熵损失(Cross-Entropy Loss),是一种用于评估分类模型的损失函数。它特别适用于二分类问题,但也可以扩展到多分类问题。对数损失函数的计算公式如下:

对于二分类问题:
Log Loss = − 1 n ∑ i = 1 n [ y i log ⁡ ( y ^ i ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] \text{Log Loss} = -\frac{1}{n} \sum_{i=1}^{n} \left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right] Log Loss=n1i=1n[yilog(y^i)+(1yi)log(1y^i)]

其中:

  • n n n是样本数量。
  • y i y_i yi是第 i i i个样本的实际标签(0 或 1)。
  • y ^ i \hat{y}_i y^i是第 i i i个样本的预测概率(介于 0 和 1 之间)。

对于多分类问题:
Log Loss = − 1 n ∑ i = 1 n ∑ j = 1 k y i j log ⁡ ( y ^ i j ) \text{Log Loss} = -\frac{1}{n} \sum_{i=1}^{n} \sum_{j=1}^{k} y_{ij} \log(\hat{y}_{ij}) Log Loss=n1i=1nj=1kyijlog(y^ij)

其中:

  • n n n是样本数量。
  • k k k是类别数量。
  • y i j y_{ij} yij是第 i i i个样本属于第 j j j个类别的实际概率(通常为 0 或 1)。
  • y ^ i j \hat{y}_{ij} y^ij是第 i i i个样本属于第 j j j个类别的预测概率。

对数损失函数的计算步骤如下:

  1. 对于每个样本,计算实际标签与预测概率的乘积的对数,以及实际标签的补与预测概率的补的乘积的对数。
  2. 将这两个对数求和。
  3. 对所有样本的求和结果取负号,并除以样本数量 n n n,得到对数损失。

对数损失函数的特点是:

  • 它衡量了模型预测概率与实际标签之间的差异,因此对于分类问题非常适用。
  • 它是可微的,因此可以使用梯度下降等优化算法来最小化损失。
  • 它的值总是非负的,且当预测概率与实际标签完全相同时,对数损失为 0。

通过最小化对数损失,可以找到最佳的模型参数,使得模型的预测概率尽可能接近实际的标签。这在分类问题中尤为重要,因为分类问题的输出是一个概率,而不是一个单一的类别标签。

4.KL 散度损失函数

KL 散度损失函数(Kullback–Leibler Divergence,KLD)是一种衡量两个概率分布之间差异的损失函数。它在机器学习中常用于训练生成模型,如变分自编码器(Variational Autoencoders,VAEs)和生成对抗网络(Generative Adversarial Networks,GANs)。KL 散度的计算公式如下:

KLD = ∑ i = 1 n p i log ⁡ ( p i q i ) \text{KLD} = \sum_{i=1}^{n} p_i \log \left( \frac{p_i}{q_i} \right) KLD=i=1npilog(qipi)

其中:

  • p i p_i pi是实际概率分布中的第 i i i个概率值。
  • q i q_i qi是预测概率分布中的第 i i i个概率值。
  • n n n是概率分布中的元素数量。

KL 散度的计算步骤如下:

  1. 对于每个概率值,计算实际概率与预测概率的比值的对数,即 log ⁡ ( p i q i ) \log \left( \frac{p_i}{q_i} \right) log(qipi)
  2. 将实际概率与上述对数相乘,即 p i log ⁡ ( p i q i ) p_i \log \left( \frac{p_i}{q_i} \right) pilog(qipi)
  3. 对所有概率值的乘积求和,得到 KL 散度。

KL 散度的特点是:

  • 它衡量了两个概率分布之间的差异,因此对于生成模型非常适用。
  • 它是可微的,因此可以使用梯度下降等优化算法来最小化损失。
  • 它的值总是非负的,且当两个概率分布完全相同时,KL 散度为 0。

通过最小化 KL 散度,可以找到最佳的模型参数,使得模型的预测概率分布尽可能接近实际的概率分布。这在生成模型中尤为重要,因为生成模型的目标是生成与真实数据分布相似的数据。

总结

以下是一个表格,用于比较均方误差(MSE)、交叉熵(CE)、对数损失(Log Loss)和KL散度(KLD)这四种损失函数的特点:

损失函数公式适用场景输出类型是否可微最小值特点
均方误差(MSE)(\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2)回归问题连续值0对较大误差惩罚更大,计算简单,对异常值敏感
交叉熵(CE)(-\frac{1}{n} \sum_{i=1}^{n} \sum_{j=1}^{k} y_{ij} \log(\hat{y}_{ij}))多分类问题概率分布0适合概率分布的比较,对小概率值的误差惩罚更大
对数损失(Log Loss)(-\frac{1}{n} \sum_{i=1}^{n} \left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right])二分类问题概率值0适合二分类概率预测,对小概率值的误差惩罚更大
KL散度(KLD)(\sum_{i=1}^{n} p_i \log \left( \frac{p_i}{q_i} \right))概率分布比较(如生成模型)概率分布0衡量两个概率分布的差异,对分布的相似性要求更高

说明

  1. 适用场景

    • MSE:主要用于回归问题,目标是预测连续值。
    • CE:主要用于多分类问题,目标是预测类别概率分布。
    • Log Loss:主要用于二分类问题,目标是预测单个类别的概率。
    • KLD:用于比较两个概率分布的差异,常用于生成模型(如VAE、GAN)。
  2. 输出类型

    • MSE:预测值为连续值。
    • CELog Loss:预测值为概率值(介于0和1之间)。
    • KLD:输入为两个概率分布。
  3. 是否可微

    • 所有这些损失函数都是可微的,因此可以使用梯度下降等优化算法来最小化损失。
  4. 最小值

    • 当预测值与实际值完全一致时,这些损失函数的值均为0。
  5. 特点

    • MSE:对较大误差的惩罚更大,对异常值敏感。
    • CELog Loss:对小概率值的误差惩罚更大,适合概率预测。
    • KLD:衡量两个概率分布的差异,对分布的相似性要求更高。

通过这个表格,可以更直观地了解不同损失函数的适用场景和特点,从而在实际问题中选择合适的损失函数。

代价函数

代价函数(Cost Function)是机器学习和优化问题中用来评估模型预测值与实际值之间差异的函数。它的目的是量化模型的错误程度,以便通过最小化代价函数来找到模型的最佳参数。代价函数也被称为损失函数(Loss Function)或误差函数(Error Function)。

  1. 均方误差(Mean Squared Error,MSE)
    MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2
    适用于回归问题,其中 y i y_i yi是实际值, y ^ i \hat{y}_i y^i是预测值。

  2. 交叉熵(Cross-Entropy)
    CE = − 1 n ∑ i = 1 n ∑ j = 1 k y i j log ⁡ ( y ^ i j ) \text{CE} = -\frac{1}{n} \sum_{i=1}^{n} \sum_{j=1}^{k} y_{ij} \log(\hat{y}_{ij}) CE=n1i=1nj=1kyijlog(y^ij)
    适用于分类问题,其中 y i j y_{ij} yij是实际概率分布, y ^ i j \hat{y}_{ij} y^ij是预测概率分布。

  3. 对数损失(Logarithmic Loss)
    Log Loss = − 1 n ∑ i = 1 n [ y i log ⁡ ( y ^ i ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] \text{Log Loss} = -\frac{1}{n} \sum_{i=1}^{n} \left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right] Log Loss=n1i=1n[yilog(y^i)+(1yi)log(1y^i)]
    适用于二分类问题,其中 y i y_i yi是实际标签, y ^ i \hat{y}_i y^i是预测概率。

  4. KL散度(Kullback–Leibler Divergence)
    KLD = ∑ i = 1 n p i log ⁡ ( p i q i ) \text{KLD} = \sum_{i=1}^{n} p_i \log \left( \frac{p_i}{q_i} \right) KLD=i=1npilog(qipi)
    用于比较两个概率分布的差异,其中 p i p_i pi是实际概率分布, q i q_i qi是预测概率分布。

  5. 绝对误差(Mean Absolute Error,MAE)
    MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1i=1nyiy^i
    适用于回归问题,对异常值不敏感。

  6. hinge 损失(Hinge Loss

    Hinge Loss = 1 n ∑ i = 1 n max ⁡ ( 0 , 1 − y i ⋅ y ^ i ) \text{Hinge Loss} = \frac{1}{n} \sum_{i=1}^{n} \max(0, 1 - y_i \cdot \hat{y}_i) Hinge Loss=n1i=1nmax(0,1yiy^i)
    适用于支持向量机(SVM)等分类问题,其中 y i y_i yi是实际标签, y ^ i \hat{y}_i y^i是预测值。

选择合适的代价函数取决于具体的问题类型和模型的目标。通过最小化代价函数,可以找到模型的最佳参数,从而提高模型的预测性能。


http://www.ppmy.cn/server/178640.html

相关文章

GPT与Bert,预训练语言模型

1.GPT侧重预测,生成。只用了decoder,由于添加了mask attention,不能注意下文,只根据上文进行生成。Autoregression,AR模型。 2.Bert(双向编码表征trans)侧重事实理解,考虑全局信息&…

清晰易懂的 Swift 安装与配置教程

初学者也能看懂的 Swift 安装与配置教程 本教程将手把手教你如何在 macOS 系统上安装 Swift,配置依赖包缓存位置,并指出新手容易踩坑的细节。即使你是零基础小白,也能快速上手! 一、安装 Swift(macOS 环境&#xff09…

Liunx系统Microsoft SQL Server数据库还原

1.确认Linux系统已安装SQLServer服务并启动 2.在Windows中使用SSMS连接原数据库与Linux远程数据库服务 3.备份 成功备份如下 4.上传bak文件到远程Linux服务器 登陆Linux服务并创建数据库文件夹 退出Linux服务

浅谈Qt事件子系统——以可拖动的通用Widget为例子

浅谈Qt事件子系统——以可拖动的通用Widget为例子 这一篇文章是一个通过实现可拖动的通用Widget为引子简单介绍一下我们的事件对象子系统的事情 代码和所有的文档 1:Qt侧的API介绍和说明 ​ 这个是每一个小项目的惯例,我会介绍大部分Qt程序中使用到的…

零、ubuntu20.04 安装 anaconda

1.anaconda下载 地址:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 选择:Anaconda3-2023.07-2-Linux-x86_64.sh 2.anaconda安装 选择下载目录,选在在终端中打开,然后在终端输入安装命…

CTF【WEB】学习笔记1号刊

Kali的小工具箱 curl www.xxx.com:查看服务器响应返回的信息 curl -I www.xxx.com:查看响应的文件头 一、cmd执行命令 ipconfig:ip地址配置等; 二、 Kali操作 1.sudo su; 2.msfconsole 3.search ms17_010 永恒之蓝&#xff…

从汽车 BCM 方案看国产 MCU 芯片的突围与挑战

摘要 :汽车车身控制模块(BCM)作为汽车电子系统的核心控制单元,其性能高度依赖于微控制单元(MCU)芯片。随着汽车智能化与电动化的发展,国产 MCU 芯片在 BCM 领域的应用逐渐扩大。本文结合行业数据…

《概率论与数理统计》期末复习笔记_上

目录 第1章 随机事件与概率 1.1 随机事件 1.2 事件的关系与运算 1.3 概率的定义与性质 1.4 古典概型_重点 1.5 几何概型 1.6 条件概率与乘法公式 1.7 全概率公式与贝叶斯公式_重点 1.8 事件的独立性_重点 1.9 伯努利概型_重难点 第2章 随机变量及其分布 2.1 随机变…