CE、NCE、InfoNCE的演变过程
CE、NCE、InfoNCE的演变过程及数学推导和关系
在机器学习和深度学习中,交叉熵( C E CE CE)、噪声对比估计( N C E NCE NCE)和信息噪声对比估计( I n f o N C E InfoNCE InfoNCE)是三个紧密相关的损失函数,逐步演变以解决不同场景下的问题。以下是它们的演变过程、数学推导及关系分析。
1. 交叉熵(Cross-Entropy, CE)
背景
C E CE CE是分类任务的基础损失函数,衡量模型预测分布 q q q与真实分布 p p p的差异。
数学形式
对于真实标签的独热编码分布 p p p和模型预测分布 q q q,交叉熵定义为:
CE ( p , q ) = − ∑ i p i log q i \text{CE}(p, q) = -\sum_{i} p_i \log q_i CE(p,q)=−i∑pilogqi
在分类任务中( p p p是单点分布),简化为:
CE = − log q y \text{CE} = -\log q_y CE=−logqy
其中 q y q_y qy是模型对真实类别 y y y的预测概率。
应用
用于监督学习,直接优化模型输出与标签的匹配度。
2. 噪声对比估计(Noise-Contrastive Estimation, NCE)
背景
当模型输出未归一化(如语言模型中的logits)时,计算softmax的分母(配分函数)代价高昂。 N C E NCE NCE通过将概率密度估计转化为二分类问题,避免显式计算归一化项。
核心思想
- 将真实数据样本(分布 p d ( x ) p_d(x) pd(x))与噪声样本(分布 p n ( x ) p_n(x) pn(x))对比
- 模型学习密度比 p d ( x ) p n ( x ) \frac{p_d(x)}{p_n(x)} pn(x)pd(x)
数学推导
定义样本来自数据分布的概率:
p ( data = 1 ∣ x ) = p d ( x ) p d ( x ) + k p n ( x ) p(\text{data}=1 | x) = \frac{p_d(x)}{p_d(x) + k p_n(x)} p(data=1∣x)=pd(x)+kpn(x)pd(x)
其中 k k k是噪声样本比例。损失函数为二元交叉熵:
L NCE = − E x ∼ p d [ log p d ( x ) p d ( x ) + k p n ( x ) ] − k E x ∼ p n [ log k p n ( x ) p d ( x ) + k p n ( x ) ] \mathcal{L}_{\text{NCE}} = -\mathbb{E}_{x \sim p_d} \left[ \log \frac{p_d(x)}{p_d(x) + k p_n(x)} \right] - k \mathbb{E}_{x \sim p_n} \left[ \log \frac{k p_n(x)}{p_d(x) + k p_n(x)} \right] LNCE=−Ex∼pd[logpd(x)+kpn(x)pd(x)]−kEx∼pn[logpd(x)+kpn(x)kpn(x)]
应用
用于无监督学习(如语言模型),避免计算softmax分母。
3. 信息噪声对比估计(InfoNCE)
背景
在对比学习中,需要最大化同一数据不同视角的互信息 I ( q ; k + ) I(q; k^+) I(q;k+)。 I n f o N C E InfoNCE InfoNCE将 N C E NCE NCE扩展到多负样本场景。
核心思想
- 对查询 q q q,构造正样本 k + k^+ k+和负样本 { k − } \{k^-\} {k−}
- 目标:最大化 exp ( q ⋅ k + / τ ) ∑ exp ( q ⋅ k / τ ) \frac{\exp(q \cdot k^+/ \tau)}{\sum \exp(q \cdot k/ \tau)} ∑exp(q⋅k/τ)exp(q⋅k+/τ)
数学推导
损失函数形式:
L InfoNCE = − E [ log exp ( q ⋅ k + / τ ) exp ( q ⋅ k + / τ ) + ∑ k − exp ( q ⋅ k − / τ ) ] \mathcal{L}_{\text{InfoNCE}} = -\mathbb{E} \left[ \log \frac{\exp(q \cdot k^+ / \tau)}{\exp(q \cdot k^+ / \tau) + \sum_{k^-} \exp(q \cdot k^- / \tau)} \right] LInfoNCE=−E[logexp(q⋅k+/τ)+∑k−exp(q⋅k−/τ)exp(q⋅k+/τ)]
其中 τ \tau τ是温度系数。
理论意义
I n f o N C E InfoNCE InfoNCE是互信息的下界:
I ( q ; k + ) ≥ log N − L InfoNCE I(q; k^+) \geq \log N - \mathcal{L}_{\text{InfoNCE}} I(q;k+)≥logN−LInfoNCE
N N N为负样本数+1。
三者关系总结
方法 | 目标 | 数学形式 | 关键改进 |
---|---|---|---|
C E CE CE | 监督分类 | − log exp ( s y ) ∑ i exp ( s i ) -\log \frac{\exp(s_y)}{\sum_{i} \exp(s_i)} −log∑iexp(si)exp(sy) | 直接概率匹配 |
N C E NCE NCE | 无监督密度估计 | − log p d ( x ) p d ( x ) + k p n ( x ) − k log k p n ( x ) p d ( x ) + k p n ( x ) -\log \frac{p_d(x)}{p_d(x)+k p_n(x)} - k \log \frac{k p_n(x)}{p_d(x)+k p_n(x)} −logpd(x)+kpn(x)pd(x)−klogpd(x)+kpn(x)kpn(x) | 二分类替代配分函数计算 |
I n f o N C E InfoNCE InfoNCE | 对比学习/互信息最大化 | − log exp ( q ⋅ k + / τ ) ∑ exp ( q ⋅ k / τ ) -\log \frac{\exp(q \cdot k^+/ \tau)}{\sum \exp(q \cdot k/ \tau)} −log∑exp(q⋅k/τ)exp(q⋅k+/τ) | 多负样本扩展 |
演变逻辑
-
C E CE CE → N C E NCE NCE的演进:
针对高维输出空间中softmax归一化分母计算复杂度 O ( ∣ V ∣ ) O(|V|) O(∣V∣)过高的问题(其中 ∣ V ∣ |V| ∣V∣为类别数), N C E NCE NCE通过引入噪声对比的范式转变,将原始的多类概率估计问题重构为判别二分类问题。具体而言:- 构建噪声分布 p n ( x ) p_n(x) pn(x)与数据分布 p d ( x ) p_d(x) pd(x)的对抗框架
- 通过调节噪声样本比例 k k k控制计算复杂度,实现计算效率从 O ( ∣ V ∣ ) O(|V|) O(∣V∣)到 O ( k ) O(k) O(k)的优化
- 保持概率密度比 p d ( x ) p n ( x ) \frac{p_d(x)}{p_n(x)} pn(x)pd(x)的渐进一致性
-
N C E NCE NCE → I n f o N C E InfoNCE InfoNCE的演进:
基于表示学习的需求, I n f o N C E InfoNCE InfoNCE在 N C E NCE NCE的基础上进行了三个关键改进:- 样本构造:从显式噪声分布采样转为隐式负样本挖掘( N − 1 N-1 N−1个负例)
- 目标函数:从二元logistic损失扩展为基于温度系数 τ \tau τ的多类softmax交叉熵
- 理论保障:建立与互信息 I ( q ; k + ) I(q;k^+) I(q;k+)的显式关联,满足 lim N → ∞ I ( q ; k + ) ≥ log N − L InfoNCE \lim_{N \to \infty} I(q;k^+) \geq \log N - \mathcal{L}_{\text{InfoNCE}} limN→∞I(q;k+)≥logN−LInfoNCE
总结
- C E CE CE:监督学习的基础损失
- N C E NCE NCE:通过噪声对比避免配分函数计算
- I n f o N C E InfoNCE InfoNCE:成为对比学习的核心损失函数
三者的演变体现了从直接概率匹配到隐式表示学习的范式转变,核心是通过设计更高效的损失函数解决实际计算难题。
相关文章:
CE、NCE、InfoNCE的演变过程
CE、NCE、InfoNCE的演变过程及数学推导和关系 在机器学习和深度学习中,交叉熵( C E CE CE)、噪声对比估计( N C E NCE NCE)和信息噪声对比估计( I n f o N C E InfoNCE InfoNCE)是三个紧密相关…...
在Vue项目的引入meting-js音乐播放器插件
开源项目:https://github.com/swzaaaaaaa/NBlog 1、开源项目中音乐播放插件的使用流程 步骤1:下载meting-js相关文件 在MetingJS官方仓库或其他可靠的CDN获取meting-js的JavaScript文件以及相关依赖(如APlayer的文件)。将它们下…...
rapidocr 2.0 在线demo来了
引言 今日北京大风,大家都窝在家里,自己也趁着周末更新了RapidOCR在线demo,适配rapidocr2.0系列。 rapidocr2.0支持4个推理引擎(ONNRuntime、OpenVino、PaddlePaddle和PyTorch),且整理了文本检测和文本识…...
Compose笔记(十五)--进度条
这一节了解一下Compose中的进度条,有两种类型的进度条可供使用,分别是线性进度条(LinearProgressIndicator)和圆形进度条(CircularProgressIndicator),每种进度条又可分为确定模式和不确定模式。…...
图谱可视化的海洋生物信息查询网站的设计与实现(springboot+ssm+vue)含文档
图谱可视化的海洋生物信息查询网站的设计与实现(springbootssmvue)含文档 该系统是一个图谱可视化的海洋生物信息查询网站,主要功能包括海洋动物、海洋植物、生物图鉴、保护生物和海洋生物分布等模块;用户可以通过系统首页访问这些模块;在海…...
目标追踪Hyperspectral Adapter for Object Tracking based on Hyperspectral Video
论文作者:Long Gao,Yunhe Zhang,Langkun Chen,Yan Jiang,Weiying Xie,Yunsong Li 作者单位:Xidian University;the University of Sheffield 论文链接:http://arxiv.org/abs/2503.22199v1 内容简介: 1)方向&#x…...
【HD-RK3576-PI】Linux制作deb包的方法
1.什么是deb包 ? DEB包是Debian及其衍生Linux发行版(如Ubuntu、Linux Mint等)使用的软件包格式。DEB包主要用于简化软件的安装、更新和卸载过程。它实际上是一个归档文件,通常包含了两个主要部分: 数据压缩包…...
FileInputStream 详解与记忆方法
FileInputStream 详解与记忆方法 一、FileInputStream 核心概念 FileInputStream 是 Java 中用于从文件读取原始字节的类,继承自 InputStream 抽象类。 1. 核心特点 特性说明继承关系InputStream → FileInputStream数据单位字节(8bit)用…...
什么是回表?哪些数据库存在回表?
目录 一、什么是回表1. 回表的核心流程2. 示例说明3. 回表的性能问题4. 总结 二、哪些数据库会有回表1. MySQL(InnoDB)2. Oracle3. 其他数据库(如 SQL Server、PostgreSQL)4. 总结 三、非聚集索引与聚集索引的区别及产生原因1. 聚…...
跨平台开发的挑战与突破:Java开发工具的探索与实践!
全文目录: 开篇语前言摘要概述源码解析代码实例代码解析代码解析1. import java.io.File;2. public class CrossPlatformFileManager3. public static void main(String[] args)4. String filePath "example.txt";5. File file new File(filePath);6. *…...
JDK的卸载与安装
卸载JDK 删除java的1安装目录 卸载JAVA_HOME 删除path下关于java的路径 java -version查看 安装JDK 百度搜索JDK,找到下载地址 同意协议 下载电脑对应版本 双击安装 记住安装路径 配置环境变量 我的电脑–>右键–>属性–>高级系统设置 环境变…...
CyclicBarrier 基本用法
CyclicBarrier 基本用法 简介 CyclicBarrier 是 Java 并发包(java.util.concurrent)中的一个同步辅助类。它允许一组线程相互等待,直到到达某个公共屏障点(common barrier point)。只有当所有参与的线程都到达屏障点…...
限流、降级、熔断、隔离?
在微服务架构中,服务限流、降级、熔断和隔离是保障系统高可用性的核心手段,但它们解决的问题和应用场景不同。以下是它们的区别、解决方案和实际案例的详细说明: 一、服务限流(Rate Limiting) 定义:通过限…...
asm汇编源代码之-字库转换程序
将标准的16x16点阵汉字库(下载16x16汉字库)转换成适合VGA文本模式下显示的点阵汉字库 本程序需要调用file.asm中的子程序,所以连接时需要把file连接进来,如下 C:\> tlink chghzk file 调用参数描述如下 C:\> chghzk ; 无调用参数,转换标准库文件(SRC16.FNT)为适合VGA…...
深入浅出:信号灯与系统V信号灯的实现与应用
深入浅出:信号灯与系统V信号灯的实现与应用 信号灯(Semaphore)是一种同步机制,用于控制对共享资源的访问。在多线程或多进程环境下,信号灯能够帮助协调多个执行单元对共享资源的访问,确保数据一致性与程序…...
定时器介绍及简单应用
定时器介绍及简单应用 文章目录 定时器介绍及简单应用1.定时器基本介绍1.1MSP430的四种定时器: 2.定时器A(Timer_A)2.1特点2.2寄存器的命名2.3寄存器表格2.4计数器原理说明2.4.1时钟源、分频器、计数器、工作模式2.4.2计数器复位 2.5定时器中断2.5.1定时…...
运行一次性任务与定时任务
运行一次性任务与定时任务 文章目录 运行一次性任务与定时任务[toc]一、使用Job运行一次性任务1.创建一次性任务2.测试一次性任务3.删除Job 二、使用CronJob运行定时任务1.创建定时任务2.测试定时任务3.删除CronJob 一、使用Job运行一次性任务 1.创建一次性任务 (…...
TypeScript入门
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...
MySQL数据库备份与恢复详解
在数据库管理中,数据的备份与恢复是至关重要的一环。对于MySQL数据库,定期备份不仅能防止数据丢失,还能在发生故障时快速恢复数据库。本文将详细介绍MySQL数据库的备份与恢复方法,覆盖所有常用备份和恢复方式,帮助大家…...
【c语言】猜凶手
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。 以下为4个嫌疑犯的供词: A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信…...
Java学习打卡-Day25-注解和反射、Class类
注解(JDK5引入) 什么是注解? Java注解(Annotation),也叫元数据。一种代码级别的说明,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面…...
【愚公系列】《Python网络爬虫从入门到精通》048-验证码识别(滑动拼图验证码)
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...
CMake中add_custom_target用法详解
在 CMake 中,add_custom_target 是一个用于创建自定义构建目标的命令。它主要用于定义一些不生成文件,但需要执行的特定操作(比如运行脚本、执行命令、触发其他构建步骤等)。以下是它的核心用途和特点: 基本语法 add_…...
埃隆·马斯克如何通过开源创新塑造未来
李升伟 编译 埃隆马斯克的名字在多个行业回响——从电动汽车、太空探索到人工智能及更多领域。虽然许多人关注他革命性的公司(如特斯拉、SpaceX、Neuralink和The Boring Company),但较少有人意识到他在开源软件运动中悄然却深远的影响力。本…...
大型语言模型中的工具调用(Function Calling)技术详解
一、引言 随着大型语言模型(LLM)能力的飞速发展,它们在自然语言理解、文本生成、对话交互等方面展现出了令人惊叹的表现。然而,LLM 本身并不具备执行外部操作的能力,比如访问网页、调用第三方 API、执行精确数学运算等…...
IKBC F108 白色背光普通版说明书
部分按键白色背光版和新的 RGB 版并不相同。比如灯光控制,新老款会有按键配置冲突的。 IKBC F108 白色背光款(普通款)按键说明 ScrLk 倒计时定时器 使用 F1~F12 及 1~9 控制时间,设置完成按 Enter 确认,或按 En…...
Microsoft Office 如何启用和正常播放 Flash 控件
对于新安装的 Office 默认是不支持启用 Flash 组件的,Flash 组件会无法播放或者黑屏。 本片文章就带你解决这个问题,相关资料都在下方连接内。前提概要,教程对应的版本是 mso16,即 Office 2016 及更新版本,以及 365 等…...
muduo库源码分析: One Loop Per Thread
One Loop Per Thread的含义就是,一个EventLoop和一个线程唯一绑定,和这个EventLoop有关的,被这个EventLoop管辖的一切操作都必须在这个EventLoop绑定线程中执行 1.在MainEventLoop中,负责新连接建立的操作都要在MainEventLoop线程…...
[ARC196A] Adjacent Delete 题解
假设 n n n 是偶数。如果我们忽略删除相邻数的条件,即可以任选两个数相减,那么答案应该是前 n 2 \frac{n}{2} 2n 大的数(记作“较大数”)的和减去前 n 2 \frac{n}{2} 2n 小的数(记作“较小数”)的和…...
拼团系统设计-人群标签的设计与思考
目录 轻量化人群标签数据采集与Redis BitMap应用 为什么需要人群标签? 设计思路:轻量化人群标签系统 1. 核心目标 2. 技术选型:Redis BitMap 3. 数据链路设计 技术实现:代码级拆解 1. 人群标签任务调度 2. 用户ID与BitMap索引映射…...
【Python] pip制作离线包
制作离线安装包是一种非常实用的方法,尤其是在网络环境受限或需要在多台机器上部署相同环境时。以下是详细的步骤,帮助您创建一个包含所有依赖项的离线安装包,并在后续环境中复用。 步骤 1:准备工具和环境 确保您有一台可以访问互…...
Java学习手册:Java异常处理机制
在Java编程中,异常处理是确保程序健壮性和稳定性的关键机制。异常是指程序运行过程中出现的错误或异常情况,如除以零、文件找不到或网络连接失败等。Java提供了强大的异常处理机制,帮助开发者捕获和处理这些异常情况,从而避免程序…...
[特殊字符] 第十二讲 | 地统计学基础与克里金插值法(Kriging)建模实践
📘 专栏:科研统计方法实战分享 | 地学/农学人的数据分析工具箱 ✍️ 作者:平常心0715 🗝️ 本讲关键词:Kriging、地统计学、变异函数、空间插值、空间预测、R语言 一、什么是地统计学? 地统计学࿰…...
Introducing Machine Learning with SAP Leonardo
Introducing Machine Learning with SAP Leonardo...
软考 系统架构设计师系列知识点之杂项集萃(49)
接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(48) 第76题 某文件管理系统在磁盘上建立了位视图(bitmap),记录磁盘的使用情况。若磁盘上物理块的编号依次为:0、1、2、……;…...
list容器
1. list 的介绍 list 是序列容器,允许在序列中的任何位置进行O(1)时间复杂度的插入和删除操作以及双向迭代。 list 容器实现为带头结点双向链表,双向链表可以将它们包含的每个元素存储在不同且不相关的存储位置。 2. list 的使用 2.1 构造函数 1.…...
Linux xorg-server 解析(一)- 编译安装Debug版本的xorg-server
一:下载代码 1. 配置源,以Ubuntu24.04 为例( /etc/apt/sources.list.d/ubuntu.sources): 2. apt source xserver-xorg-core 二:编译代码 1. sudo apt build-dep ./ 2. DEB_BUILD_OPTIONS="nostrip" DEB_CFLAGS_SET="-g -O0" dpkg-buildpac…...
VTK使用Render()渲染窗口的相关问题
转自个人博客:VTK使用Render()渲染窗口的相关问题 1. VTK更新数据但窗口不更新 问题:在对窗口内的数据进行更新后,VTK窗口不会立即更新,需要鼠标等交互后才会更新。 解决办法:对数据更新后,对VTK窗口也要…...
基于php的成绩分析和预警与预测网站(源码+lw+部署文档+讲解),源码可白嫖!
摘要 人类现已迈入二十一世纪,科学技术日新月异,经济、资讯等各方面都有了非常大的进步,尤其是资讯与网络技术的飞速发展,对政治、经济、军事、文化、教育等各方面都有了极大的影响。 利用电脑网络的这些便利,发展一套…...
文档检索技术详解 (Document Retriever)
一、文档检索的定义与核心概念 文档检索(Document Retriever)是一种信息检索技术,旨在从大量未结构化或半结构化文档中快速找到与特定查询相关的文档或信息。文档检索通常以在线(online)方式运行,能够实时…...
大模型SFT用chat版还是base版 SFT后灾难性遗忘怎么办
大模型SFT用chat版还是base版 进行 SFT 时,基座模型选用 Chat 还是 Base 模型? 选 Base 还是 Chat 模型,首先先熟悉 Base 和 Chat 是两种不同的大模型,它们在训练数据、应用场景和模型特性上有所区别。 在训练数据方面…...
【生活相关-日语-日本-东京-搬家后-瓦斯申请(2)-办理手续】
【生活相关-日语-日本-东京-搬家后-瓦斯申请(2)-办理手续】 1、前言2、情况说明(1)他人代办(2)打电话(3)网络申请(4)你将会面临什么,主要步骤&…...
matplotlib数据展示
目录 一、绘制直方图 1、简单直方图 2、绘制横向直方图 3、绘制堆叠直方图 4、对比直方图 二、折线图与散点图 三、绘制饼图 四、雷达图 1、简单雷达图 2、多层雷达图 五、总和 在前面的学习中,我们能够使用一些库进行数据的整合,收集&#x…...
三维激光测量助力企业检测效率提升3倍
智能制造与数字化浪潮席卷下,三维扫描技术已成为工业检测领域不可或缺的工具。面对传统检测手段的精度瓶颈与效率局限,三维扫描仪,以毫米级精度、非接触式测量与超高速扫描三大核心优势,为汽车制造、航空航天、消费电子等行业的品…...
基于RISC-V内核的嵌入式系统在机器人关节控制中的应用研究
摘要 随着机器人技术的飞速发展,关节控制作为机器人系统中的关键环节,对机器人的性能和稳定性起着至关重要的作用。传统的关节控制多采用基于ARM或DSP的嵌入式系统,但RISC-V架构的兴起为机器人关节控制提供了新的选择。本文结合多个基于RISC…...
斯库拉集团介绍
斯库拉集团有限公司坐落于世界自由贸易圣地,国际金融服务中心英属维京群岛BVI. 旗下有香港斯库拉集团(香港主板 上市公司),斯库拉环球国际控股集团 (香港主板上市企业),斯库拉国际贸易 有限公司(斯库拉集团有限公司),新加坡斯库拉集团有限公司,德国斯库拉集团有限公司,新西…...
运用instanceof判断Animal a是否为Dog类和是否为cat类
//Animal类(狗和猫的父类) public class Animal {private String color;private int age;public Animal(String color, int age) {this.color color;this.age age;}public Animal() {}public String getColor() {return color;}public void setColor…...
蓝桥杯嵌入式考前模块总结
一.RTC 使用RTC直接再cubeMX中配置启动时钟和日历 如第六届省赛 想要让RTC的秒每隔一秒递增1需要在时钟树界面观察RTC的主频 由于RTC时钟主频为32KHZ将异步预分频计数器的值设为31,将同步预分频计数器的值设为999这样就可以将RTC的时钟信号分频为1HZ达到1秒自增的…...
《汽车电器与电子技术》实验报告
SRS系统结构原理与故障检测诊断 车辆上为什么要配安全气囊?——解析汽车被动安全的关键防线 一、安全气囊的核心作用:应对高速碰撞的“救命缓冲垫” 车辆在高速碰撞时(如正面碰撞、侧面碰撞),人体会因惯性以极高速度…...
小刚说C语言刷题——第22讲 二维数组
昨天我们讲了一维数组,今天我们来讲二维数组。 1.定义 二维数组是指在数组名后跟两个方括号的数组。 2.语法格式 数据类型 数组名[下标][下标] 例如:int a[5][9];//表示5行9列的数组 3.访问二维数组元素 格式:数组名[行坐标][列坐标]…...