【AI知识点】负对数似然损失函数(Negative Log-Likelihood Loss,NLL)

负对数似然损失函数(Negative Log-Likelihood Loss,NLL) 是机器学习,尤其是分类问题中常用的一种损失函数。它用于衡量模型预测的概率分布与真实标签之间的差异。负对数似然损失函数的目标是最大化正确类别的预测概率,同时最小化错误类别的预测概率。

基本概念

我们从对数似然(log-likelihood) 开始理解。假设模型的输出是一个概率分布,用于预测某个样本属于不同类别的概率。对于每个样本,真实标签表示其所属的正确类别。对数似然计算的是模型给正确类别分配的概率。如果模型给正确类别分配的概率越高,则模型的预测越好。

然而,我们不希望最大化似然,而是最小化损失。为此,我们使用负对数似然,通过将对数似然加上负号,使得模型最大化正确类别的概率时,负对数似然损失最小。

数学表达

假设我们有一个分类问题,输入的样本 x x x 属于类别 y y y,且模型的输出是对不同类别的概率预测。对于样本 x x x,模型的输出概率分布记为 P ( y ∣ x ) P(y|x) P(yx),即给定样本 x x x,预测其属于类别 y y y 的概率。

模型的目标是尽量给真实标签(即类别 y y y)赋予高的概率。负对数似然损失的数学表达如下:

L = − log ⁡ P ( y ∣ x ) L = - \log P(y|x) L=logP(yx)

其中:

  • P ( y ∣ x ) P(y|x) P(yx) 是模型预测的样本 x x x 属于类别 y y y 的概率。
  • − log ⁡ P ( y ∣ x ) -\log P(y|x) logP(yx) 是该概率的负对数。

当模型给出正确的高概率时, P ( y ∣ x ) P(y|x) P(yx) 接近1,此时 − log ⁡ P ( y ∣ x ) -\log P(y|x) logP(yx) 接近0,意味着损失较小;而如果模型给出的概率较低, P ( y ∣ x ) P(y|x) P(yx) 接近0, − log ⁡ P ( y ∣ x ) -\log P(y|x) logP(yx) 会趋向于无穷大,意味着损失非常大。

多分类场景下的负对数似然

在多分类问题中,模型的输出是一组概率分布,这组概率分布表示每个类别的预测概率。假设有 C C C 个类别,模型的输出为每个类别的预测概率 P ( y i ∣ x ) P(y_i|x) P(yix),其中 i = 1 , 2 , … , C i=1,2,\dots,C i=1,2,,C。对于多分类问题,负对数似然损失函数可以写为:

L = − ∑ i = 1 C y i log ⁡ P ( y i ∣ x ) L = - \sum_{i=1}^{C} y_i \log P(y_i|x) L=i=1CyilogP(yix)

其中:

  • y i y_i yi 是真实类别的指示变量(one-hot encoding),如果样本 x x x 属于类别 i i i,则 y i = 1 y_i = 1 yi=1,否则 y i = 0 y_i = 0 yi=0
  • P ( y i ∣ x ) P(y_i|x) P(yix) 是模型预测样本 x x x 属于类别 i i i 的概率。

因为在真实标签下,只有对应的 y i y_i yi 为1,其它类别的 y i y_i yi 都为0,所以最终损失只依赖于正确类别的预测概率,即:

L = − log ⁡ P ( y true ∣ x ) L = - \log P(y_{\text{true}}|x) L=logP(ytruex)

这意味着,我们只关心模型对真实类别的预测概率,并通过最小化这个损失来训练模型。

用通俗的语言解释

假设你在玩一个猜谜游戏,问题是“苹果是什么颜色?”,而你有三个选项:“红色”、“蓝色”、“绿色”。你的任务是尽可能准确地猜出答案(显然答案是“红色”)。

在训练模型时,系统会给每个选项分配一个概率值,表示模型认为这个选项为正确答案的概率。假设模型的输出是这样的概率分布:

  • 红色:0.7
  • 蓝色:0.2
  • 绿色:0.1

这个时候,系统希望最大化“红色”这一选项的概率,因为“红色”是正确答案。如果模型给正确答案“红色”分配的概率很高,系统就很开心,认为模型表现很好。这时损失函数的值会很低。

而负对数似然损失函数的工作方式是:当模型给“红色”(正确答案)分配高概率时,它会惩罚得少(损失小);但如果模型把高概率分配给错误答案,比如给“蓝色”分配了0.7,而给“红色”分配了0.2,那损失就会很大,表示模型犯了大错误。

应用举例:在DPR中的应用

在DPR(Dense Passage Retriever 稠密段落检索)中,负对数似然损失函数被用来优化模型的检索性能。对于每一个问题,DPR希望模型能找到与问题最相关的正样本段落,同时排除那些不相关的负样本。损失函数的目标就是让模型尽量提高正样本的相似度分数,并降低负样本的相似度分数。

具体地,DPR会计算问题与所有段落的相似性分数,其中:

  • 正样本的相似度分数应尽量高;
  • 负样本的相似度分数应尽量低。

具体损失函数为:

L ( q i , p i + , p i , 1 − , … , p i , n − ) = − log ⁡ e s i m ( q i , p i + ) e s i m ( q i , p i + ) + ∑ j = 1 n e s i m ( q i , p i , j − ) L(q_i, p_i^+, p_{i,1}^-, \dots, p_{i,n}^-) = - \log \frac{e^{sim(q_i, p_i^+)}}{e^{sim(q_i, p_i^+)} + \sum_{j=1}^{n} e^{sim(q_i, p_{i,j}^-)}} L(qi,pi+,pi,1,,pi,n)=logesim(qi,pi+)+j=1nesim(qi,pi,j)esim(qi,pi+)

这里:

  • s i m ( q i , p i + ) sim(q_i, p_i^+) sim(qi,pi+) 表示问题 q i q_i qi 与正样本段落 p i + p_i^+ pi+ 的相似度。
  • s i m ( q i , p i , j − ) sim(q_i, p_{i,j}^-) sim(qi,pi,j) 表示问题 q i q_i qi 与负样本段落 p i , j − p_{i,j}^- pi,j 的相似度。

负对数似然损失函数通过对正样本的相似性进行负对数运算,迫使模型在训练过程中学会区分正负样本。这样,模型在面对新问题时,能够更有效地找到与问题最相关的段落。

总结

负对数似然损失函数是分类任务中的常用损失函数,目标是最大化模型对正确类别的预测概率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1552362.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C# 无边框窗体,加阴影效果、多组件拖动、改变大小等功能完美实现优化版效果体验

一、预览效果 国庆节第一天,祝祖国繁荣昌盛! 1.1 效果图 (WinForm无边框窗体,F11可全屏) 拖动窗体时半透明效果(拖动时参考窗体后面释放位置) 说明:本功能的实现基于网友的原型完善而来,更多代码可以参考他的文章 h

html+css+js实现step进度条效果

实现效果 代码实现 HTML部分 <div class"box"><ul class"step"><li class"circle actives ">1</li><li class"circle">2</li><li class"circle">3</li><li class&quo…

“2024光明多多垂直农业挑战赛”决赛启动成功举办

由光明食品集团所属上花集团的光明花博邨基地&#xff0c;与拼多多携手&#xff0c;联合中国农业大学、浙江大学等共同举办的“2024光明多多垂直农业挑战赛暨第四届多多农研科技大赛”于9月20-21日正式启动决赛。来自上海交大、中国农大、上海农科院、国家农业智能装备工程技术…

【成神之路】Ambari实战-014-代码生命周期-metainfo-cardinality详解

1.Redis 集群 metainfo.xml 示例 <?xml version"1.0"?> <metainfo><schemaVersion>2.0</schemaVersion><services><service><!-- Redis 集群服务的基本信息 --><name>REDIS</name><displayName>Redi…

C# HttpClient请求URL重定向后丢失Authorization认证头

搜查官方文档后发现&#xff1a; HttpWebRequest.AllowAutoRedirect Property (System.Net) | Microsoft Learn 微软提供的http类库HttpClient &#xff08;HttpWebRequest\WebClient已不推荐使用&#xff0c;用HttpClient代替&#xff09;有备注提醒&#xff1a;当使用自动重…

vite 快速入门指南

相关链接 演示地址源码地址vite 官网地址 Vite 是什么 Vite 是由 Evan You&#xff08;Vue.js 创始人&#xff09;开发的现代前端构建工具&#xff0c;专为提升开发体验而设计。它通过创新的开发模式和高效的构建流程&#xff0c;极大提高了开发效率&#xff0c;尤其在处理大…

2024年健康经济与大数据研讨会(HEBD 2024)2024 Seminar on Health Economics and Big Data

在线投稿&#xff1a;学术会议-学术交流征稿-学术会议在线-艾思科蓝 2024年经济决策与人工智能国际学术会议 &#xff08;EDAI 2024&#xff09;将在2024年11月08-10日在广东省广州市隆重举行。大会邀请来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师…

spring框架2 DI入门

每次创建maven项目时都要点击设置看一眼配置&#xff0c;需要修改就改一下&#xff0c;改成所存放的位置地址 属性生成&#xff1a;bean值之间的关系 写了一个私有属性 写private BookDao bookDao右键生成&#xff0c;通过setter方法注入一下 点击 确定 DI入门 DI&#xff1a…

插槽slot在vue中的使用

介绍 在 Vue.js 中&#xff0c;插槽&#xff08;slot&#xff09;是一种用于实现组件内容分发的功能。通过插槽&#xff0c;可以让父组件在使用子组件时自定义子组件内部的内容。插槽提供了一种灵活的方式来组合和复用组件。 项目中有很多地方需要调用一个组件&#xff0c;比…

使用Qt实现实时数据动态绘制的折线图示例

基于Qt的 QChartView 和定时器来动态绘制折线图。它通过动画的方式逐步将数据点添加到图表上&#xff0c;并动态更新坐标轴的范围&#xff0c;提供了一个可以实时更新数据的折线图应用。以下是对代码的详细介绍及其功能解析&#xff1a; 代码概述 该程序使用Qt的 QChartView…

时变电磁场(矢量除了是xyz还是t的函数)的麦克斯韦方程

静电场场的磁场方程与电荷守恒定律的矛盾的根本原因在于电荷守恒定律是时空的函数&#xff0c;静磁场的方程是特殊的空间的函数不含t&#xff0c;让其成为时空的函数就对应上了

【GESP】C++一级练习BCQM3017、BCQM3018,输入后输出

接触输入后&#xff0c;两道简单的读取输入后&#xff0c;按要求输出的变量值的题。基本语法的应用&#xff0c;没什么难度。 题解详见&#xff1a;https://www.coderli.com/gesp-1-bcqm3017-3018/ 【GESP】C一级练习BCQM3017、BCQM3018&#xff0c;输入后输出 | OneCoder接触…

数字化那点事:一文读懂数字孪生

一、数字孪生的定义 数字孪生&#xff08;Digital Twin&#xff09;是指通过数字技术构建的物理实体的虚拟模型&#xff0c;能够对该实体进行全方位、动态跟踪和仿真预测。简单来说&#xff0c;数字孪生就是在一个设备或系统的基础上创造一个数字版的“克隆体”&#xff0c;这…

Agr_Reader 1.7.11 极简优美的RSS阅读器,无广告

Agr Reader是一款简洁、优美、符合Material You风格的RSS阅读器。它不仅提供了强大的全文解析功能&#xff0c;默认支持离线阅读&#xff0c;还具备桌面小组件、自定义样式设置等功能。此外&#xff0c;它支持接入FreshRSS、Tiny Tiny RSS等多种RSS服务&#xff0c;并提供沉浸式…

计算机网络:计算机网络概述 —— 初识计算机网络

文章目录 计算机网络组成部分网络架构协议与标准网络设备网络类型作用实际应用案例 计算机网络 计算机网络是指将多台计算机通过通信设备和通信链路连接起来&#xff0c;以实现数据和信息的交换和共享的技术和系统。它是现代信息社会的基础设施之一&#xff0c;也是互联网的基…

【Spine】引入PhotoshopToSpine脚本

引入 右键Photoshop图标&#xff0c;选择属性 打开文件所在位置 找到目录下的\Presets\Scripts文件夹。 找到Spine目录下的\scripts\photoshop文件夹下的PhotoshopToSpine.jsx 复制它&#xff0c;丢到Photoshop刚才找的那个目录下。 使用 打开.psd文件&#xff0c;检查不要…

(Kafka源码五)Kafka服务端处理消息

Kafka 服务端&#xff08;Broker&#xff09;采用 Reactor 的架构思想&#xff0c;通过1 个 Acceptor&#xff0c;N 个 Processor(N默认为3)&#xff0c;M 个 KafkaRequestHandler&#xff08;M默认为8&#xff09;&#xff0c;来处理客户端请求&#xff0c;这种模式结合了多线…

Android Camera2 与 Camera API技术探究和RAW数据采集

Android Camera2 Android Camera2 是 Android 系统中用于相机操作的一套高级应用程序接口&#xff08;API&#xff09;&#xff0c;它取代了之前的 Camera API。以下是关于 Android Camera2 的一些主要信息&#xff1a; 主要特点&#xff1a; 强大的控制能力&#xff1a;提供…

关于Mac管理员root权限的一些问题总结

&#x1f389; 前言 最近在学习Vue CLI的时候&#xff0c;发现在Vscode里面想要修改文件或者保存文件都会显示“permission denied”&#xff0c;即权限不足。于是想了一些解决方法&#xff0c;记录在此。 &#x1f389; 检查当前用户权限 打开终端&#xff0c;输入以下指令…

好玩的水表电表

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>水表电表</title><style>* {margin:…