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

《基于自适应正负样本对比学习的特征提取框架》-核心公式提炼简洁版 2022年neural networks

论文源地址

以下是从文档中提取的关于“基于对比学习的特征提取框架(CL-FEFA)”中正负样本对比学习实现的技术细节,包括详细的数学公式、特征提取过程以及特征表示方式的说明。


1. 正负样本的定义与构造

在CL-FEFA框架中,正负样本的定义是动态且自适应的,基于特征提取的结果,而不是预先固定的。这种自适应性是CL-FEFA区别于传统对比学习(如SimCLR、SupCon)的一个关键点。

定义方式:
  • 指示矩阵 H H H

H i , j = { 0 if  x i and  x j are labeled and  c i ≠ c j 1 otherwise H_{i,j} = \begin{cases} 0 & \text{if } x_i \text{ and } x_j \text{ are labeled and } c_i \neq c_j \\ 1 & \text{otherwise} \end{cases} Hi,j={01if xi and xj are labeled and ci=cjotherwise

  • H i , j H_{i,j} Hi,j 是一个 n × n n \times n n×n 的矩阵,其中 n n n 是样本数量。

  • x i x_i xi x j x_j xj 是已标记样本且属于不同类别时, H i , j = 0 H_{i,j} = 0 Hi,j=0;其他情况下(包括未标记样本或同类样本), H i , j = 1 H_{i,j} = 1 Hi,j=1

  • 相似性矩阵 S S S

    • S i , j S_{i,j} Si,j 表示样本 x i x_i xi x j x_j xj 在潜在结构空间(即特征提取后的低维空间)中的相似性关系。
    • S S S 是一个 n × n n \times n n×n 的矩阵,通过优化过程动态学习得到。
  • 正负样本判定

    • 如果 H i , j S i , j ≠ 0 H_{i,j} S_{i,j} \neq 0 Hi,jSi,j=0,则 x i x_i xi x j x_j xj 被定义为一对正样本。
    • 如果 H i , j S i , j = 0 H_{i,j} S_{i,j} = 0 Hi,jSi,j=0,则 x i x_i xi x j x_j xj 被定义为一对负样本。
构造过程:
  • CL-FEFA通过特征提取的结果(即低维嵌入 Y = P T X Y = P^T X Y=PTX)动态调整 S i , j S_{i,j} Si,j,从而构造正负样本。
  • 这种方法避免了传统对比学习中依赖数据增强或预定义规则的局限性,使得正负样本更贴近数据的潜在结构。

2. CL-FEFA的数学模型与优化目标

CL-FEFA的目标是通过InfoNCE损失函数提取判别性特征,同时优化投影矩阵 P P P 和相似性矩阵 S S S

优化问题:

min ⁡ P , S L = ∑ i = 1 n ∑ j = 1 n − H i , j S i , j log ⁡ f ( y i , y j ) ∑ k = 1 n f ( y i , y k ) + γ ∥ S ∥ F 2 \min_{P, S} L = \sum_{i=1}^n \sum_{j=1}^n -H_{i,j} S_{i,j} \log \frac{f(y_i, y_j)}{\sum_{k=1}^n f(y_i, y_k)} + \gamma \|S\|_F^2 P,SminL=i=1nj=1nHi,jSi,jlogk=1nf(yi,yk)f(yi,yj)+γSF2

s.t. ∀ i , S i T 1 = 1 , 0 ⩽ S i ⩽ 1 , rank ⁡ ( L S ) = n − c \text{s.t.} \quad \forall i, S_i^T \mathbf{1} = 1, 0 \leqslant S_i \leqslant 1, \operatorname{rank}(L_S) = n - c s.t.i,SiT1=1,0Si1,rank(LS)=nc

  • 符号解释

    • X = [ x 1 , x 2 , … , x n ] ∈ R D × n X = [x_1, x_2, \dots, x_n] \in \mathbb{R}^{D \times n} X=[x1,x2,,xn]RD×n:训练样本集, D D D 是原始特征维度, n n n 是样本数。
    • Y = [ y 1 , y 2 , … , y n ] ∈ R d × n Y = [y_1, y_2, \dots, y_n] \in \mathbb{R}^{d \times n} Y=[y1,y2,,yn]Rd×n:低维嵌入, Y = P T X Y = P^T X Y=PTX d ≪ D d \ll D dD 是嵌入维度。
    • P ∈ R D × d P \in \mathbb{R}^{D \times d} PRD×d:投影矩阵,将高维数据映射到低维空间。
    • f ( y i , y j ) = exp ⁡ ( y i T y j ∥ y i ∥ ∥ y j ∥ σ ) f(y_i, y_j) = \exp\left(\frac{y_i^T y_j}{\|y_i\| \|y_j\| \sigma}\right) f(yi,yj)=exp(yi∥∥yjσyiTyj):相似性函数,基于余弦相似度, σ \sigma σ 是正参数。
    • γ \gamma γ:正则化参数,控制 S S S 的Frobenius范数。
    • L S = D S − S + S T 2 L_S = D_S - \frac{S + S^T}{2} LS=DS2S+ST:图拉普拉斯矩阵, D S D_S DS 是度矩阵, rank ⁡ ( L S ) = n − c \operatorname{rank}(L_S) = n - c rank(LS)=nc 约束 S S S 的连通分量数为 c c c
  • 目标解释

    • 第一项 − H i , j S i , j log ⁡ f ( y i , y j ) ∑ k = 1 n f ( y i , y k ) -H_{i,j} S_{i,j} \log \frac{f(y_i, y_j)}{\sum_{k=1}^n f(y_i, y_k)} Hi,jSi,jlogk=1nf(yi,yk)f(yi,yj) 是InfoNCE损失,旨在最大化正样本对的相似性,同时最小化负样本对的相似性。
    • 第二项 γ ∥ S ∥ F 2 \gamma \|S\|_F^2 γSF2 是正则化项,防止 S S S 过拟合。
    • 约束条件确保 S S S 是一个有效的概率分布(每列和为1),且低维空间的结构具有 c c c 个连通分量(在监督场景中 c c c 为类别数)。

3. 特征提取与表示

特征提取过程:
  • 输入:高维样本集 X ∈ R D × n X \in \mathbb{R}^{D \times n} XRD×n
  • 投影:通过投影矩阵 P P P X X X 映射到低维空间,得到嵌入 Y = P T X Y = P^T X Y=PTX,其中 Y ∈ R d × n Y \in \mathbb{R}^{d \times n} YRd×n
  • 自适应构造
    • 使用 Y Y Y 计算相似性矩阵 S S S,从而定义正负样本。
    • 根据InfoNCE损失优化 P P P S S S,使得正样本在低维空间中更紧凑(intra-class compact),负样本更分散(inter-class dispersed)。
特征表示:
  • 低维嵌入 Y Y Y
    • 每个样本 x i x_i xi 被表示为 y i = P T x i ∈ R d y_i = P^T x_i \in \mathbb{R}^d yi=PTxiRd
    • y i y_i yi x i x_i xi 在低维空间中的特征表示,保留了原始数据的判别性信息。
  • 相似性度量
    • f ( y i , y j ) = exp ⁡ ( y i T y j ∥ y i ∥ ∥ y j ∥ σ ) f(y_i, y_j) = \exp\left(\frac{y_i^T y_j}{\|y_i\| \|y_j\| \sigma}\right) f(yi,yj)=exp(yi∥∥yjσyiTyj) 表示 y i y_i yi y j y_j yj 的相似性,基于归一化后的内积。
    • 通过优化, f ( y i , y j ) f(y_i, y_j) f(yi,yj) 对于正样本对更大,对于负样本对更小。

4. 互信息与理论支持

CL-FEFA的一个重要理论依据是其优化目标等价于最大化正样本之间的互信息。

数学推导:
  • 定义 W i , j = H i , j S i , j W_{i,j} = H_{i,j} S_{i,j} Wi,j=Hi,jSi,j,则:
    • W i , j ≠ 0 W_{i,j} \neq 0 Wi,j=0 表示 x i x_i xi x j x_j xj 是正样本。
    • W i , j = 0 W_{i,j} = 0 Wi,j=0 表示 x i x_i xi x j x_j xj 是负样本。
  • 优化目标可重写为:

min ⁡ P , S L = ∑ i = 1 n ∑ j = 1 n − W i , j log ⁡ [ p ( W i , j ≠ 0 ∣ y j , y i ) ] + γ ∥ S ∥ F 2 \min_{P, S} L = \sum_{i=1}^n \sum_{j=1}^n -W_{i,j} \log [p(W_{i,j} \neq 0 | y_j, y_i)] + \gamma \|S\|_F^2 P,SminL=i=1nj=1nWi,jlog[p(Wi,j=0∣yj,yi)]+γSF2

  • 通过贝叶斯公式和假设,推导出:

l i = ∑ j = 1 n W i , j log ⁡ [ 1 + ( n n i − 1 ) p ( y j ) p ( y i ) p ( y j , y i ) ] l_i = \sum_{j=1}^n W_{i,j} \log \left[1 + \left(\frac{n}{n_i} - 1\right) \frac{p(y_j) p(y_i)}{p(y_j, y_i)}\right] li=j=1nWi,jlog[1+(nin1)p(yj,yi)p(yj)p(yi)]

  • n i n_i ni x i x_i xi 的正样本数。
  • p ( y j , y i ) p(y_j, y_i) p(yj,yi) 是联合分布, p ( y j ) p ( y i ) p(y_j) p(y_i) p(yj)p(yi) 是独立分布。
  • 进一步推导:

l i ≥ log ⁡ [ n n i ] − I ( y j , y i ) l_i \geq \log \left[\frac{n}{n_i}\right] - I(y_j, y_i) lilog[nin]I(yj,yi)

  • I ( y j , y i ) I(y_j, y_i) I(yj,yi) y j y_j yj y i y_i yi 的互信息。
  • 因此,最小化 L L L 等价于最大化所有正样本对的互信息 I ( y j , y i ) I(y_j, y_i) I(yj,yi)
意义:
  • 互信息 I ( y j , y i ) I(y_j, y_i) I(yj,yi) 捕捉了正样本之间的非线性统计依赖性,提供了CL-FEFA在特征提取中优势的理论支持。
  • 这使得提取的特征 Y Y Y 更能反映数据的真实潜在结构。

5. 优化策略

CL-FEFA采用交替优化策略求解 P P P S S S

优化问题变换:

min ⁡ P , S , F L = ∑ i = 1 n ∑ j = 1 n − H i , j S i , j log ⁡ f ( y i , y j ) ∑ k = 1 n f ( y i , y k ) + γ ∥ S ∥ F 2 + 2 λ Tr ⁡ ( F T L S F ) \min_{P, S, F} L = \sum_{i=1}^n \sum_{j=1}^n -H_{i,j} S_{i,j} \log \frac{f(y_i, y_j)}{\sum_{k=1}^n f(y_i, y_k)} + \gamma \|S\|_F^2 + 2\lambda \operatorname{Tr}(F^T L_S F) P,S,FminL=i=1nj=1nHi,jSi,jlogk=1nf(yi,yk)f(yi,yj)+γSF2+2λTr(FTLSF)

s.t. ∀ i , S i T 1 = 1 , 0 ⩽ S i ⩽ 1 , F ∈ R n × c , F T F = I \text{s.t.} \quad \forall i, S_i^T \mathbf{1} = 1, 0 \leqslant S_i \leqslant 1, F \in \mathbb{R}^{n \times c}, F^T F = I s.t.i,SiT1=1,0Si1,FRn×c,FTF=I

  • F F F 是辅助变量, λ \lambda λ 是正参数。
交替优化:
  1. 固定 P P P S S S,优化 F F F

min ⁡ F Tr ⁡ ( F T L S F ) , s.t. F T F = I \min_F \operatorname{Tr}(F^T L_S F), \quad \text{s.t.} \quad F^T F = I FminTr(FTLSF),s.t.FTF=I

  • 解为 L S L_S LS c c c 个最小特征值对应的特征向量。
  1. 固定 P P P F F F,优化 S S S

min ⁡ S ∑ j = 1 n ( − H i , j S i , j log ⁡ f ( y i , y j ) ∑ k = 1 n f ( y i , y k ) + γ S i , j 2 + λ ∥ f i − f j ∥ 2 S i , j ) \min_S \sum_{j=1}^n \left(-H_{i,j} S_{i,j} \log \frac{f(y_i, y_j)}{\sum_{k=1}^n f(y_i, y_k)} + \gamma S_{i,j}^2 + \lambda \|f_i - f_j\|^2 S_{i,j}\right) Sminj=1n(Hi,jSi,jlogk=1nf(yi,yk)f(yi,yj)+γSi,j2+λfifj2Si,j)

  • 对每个 i i i 独立求解,转化为向量形式并优化。

总结

  • 正负样本实现:通过 H H H 和动态学习的 S S S 自适应构造,基于特征提取结果。
  • 数学公式:核心是InfoNCE损失和互信息最大化,详见优化目标和推导。
  • 特征提取与表示:从 X X X 通过 P P P 映射到 Y Y Y,低维特征 y i y_i yi 保留判别性并反映潜在结构。
  • 优势:自适应性、鲁棒性(对噪声数据)和理论支持(互信息)。

相关文章:

《基于自适应正负样本对比学习的特征提取框架》-核心公式提炼简洁版 2022年neural networks

论文源地址 以下是从文档中提取的关于“基于对比学习的特征提取框架(CL-FEFA)”中正负样本对比学习实现的技术细节,包括详细的数学公式、特征提取过程以及特征表示方式的说明。 1. 正负样本的定义与构造 在CL-FEFA框架中,正负样…...

8.4《同一直线上二力的合成》

教会什么:合力与分力、同一直线上二力的合成 培养什么:实验抓共同点为突破口 课标: (二)运动和相互作用 2.2 机械运动和力 2.2.4 能用示意图描述力。会测量力的大小。了解同一直线上的二力合成。 零、导入 提问: 在前面我们探究了物体处于匀速直线运动/静止状态时,即处于…...

用ASCII字符转化图片

代码 from PIL import Image# 定义 ASCII 字符集,从最暗到最亮 ASCII_CHARS "%#*-:. "def resize_image(image, new_width100):width, height image.sizeratio height / widthnew_height int(new_width * ratio)resized_image image.resize((new_wi…...

zookeepernacoskafka之间的联系

一、ZooKeeper与Kafka的协同工作原理 1. 核心关系:Kafka对ZooKeeper的依赖 在Kafka 2.8版本之前,ZooKeeper是Kafka集群的“大脑”,负责管理集群元数据、协调节点状态和故障恢复。两者的协同主要通过以下关键机制实现: Broker注册…...

力扣 797. 所有可能的路径 解析JS、Java、python、Go、c++

深度优先搜索解所有可能的路径问题 题目描述 力扣链接 给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序) graph[i] 是一个从节点 i 可以访问的所有节点的列…...

蓝桥与力扣刷题(蓝桥 组队)

题目:作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。 每位球员担任 1号位至 5号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少? 本题为填空题&…...

python函数的多种参数使用形式

目录 1. 位置参数(Positional Arguments) 2. 关键字参数(Keyword Arguments) 3. 默认参数(Default Arguments) 4. 可变参数(Variable Positional Arguments) 5. 关键字可变参数&…...

天梯赛 PTAL2-009 抢红包

很简单的一道模拟题&#xff0c;使用map统计每个用户的钱数和红包数&#xff0c;最后在使用结构体存储&#xff0c;重载小于号&#xff0c;sort排序即可。 #include <bits/stdc.h> using namespace std; #define endl \n #define int long long typedef long long ll; c…...

【京东API开发指南】三步获取商品详情页实时数据:SKU、价格、销量全解析

以下是使用京东 API 获取商品详情页实时数据&#xff08;SKU、价格、销量&#xff09;的一般步骤&#xff1a; 注册与认证 注册开发者账号&#xff1a;访问京东开放平台官网&#xff0c;完成企业实名认证&#xff08;仅支持企业开发者&#xff09;。这是使用京东 API 的前提&am…...

深入探讨TK矩阵系统:创新的TikTok运营工具

TK矩阵的应用场景 TK矩阵系统适用于多个场景&#xff0c;尤其是在以下几个方面有显著优势&#xff1a; 批量账号管理与内容发布&#xff1a;对于需要管理多个TikTok账号的内容创作者或营销人员&#xff0c;TK矩阵提供了高效的账号管理工具&#xff0c;支持批量发布视频、评论、…...

AI Agent系列(六) -基于ReAct架构搭建LLM Agent(Deepseek)

AI Agent系列【六】 一、 ReAct1.1 ReAct 的处理过程&#xff1a;1.1 代码结构 二、 Python代码实现2.1 通过Zero-shot 实现python代码实例Python代码示例1&#xff1a;python代码实现示例2 一、 ReAct ReAct 是 Reseaning 和 Action 两个词的前缀合成&#xff0c;代表着先推…...

零基础上手Python数据分析 (6):Python 异常处理,告别程序崩溃的烦恼!

回顾一下,前几篇博客我们学习了 Python 的基本语法、数据结构和文件操作。 现在,我们已经掌握了 Python 编程的基础知识,可以开始编写更复杂的数据分析代码了。 但是,在实际的数据分析工作中,程序并非总能一帆风顺地运行,总会遇到各种 意外情况,例如: 文件找不到: 程序…...

AnyTouch:跨多个视觉触觉传感器学习统一的静态动态表征

25年3月来自人大、武汉科技大学和北邮的论文“AnyTouch: Learning Unified Static-dynamic Representation Across Multiple Visuo-tactile Sensors”。 视觉触觉传感器旨在模拟人类的触觉感知&#xff0c;使机器人能够精确地理解和操纵物体。随着时间的推移&#xff0c;许多精…...

关于stm32mp157

目录 设备树&#xff1a; 内核移植&#xff1a; 编写一个驱动的过程&#xff1a; 编写i2c传感器驱动的过程&#xff1a; 从arm11后&#xff0c;命名改为cortex&#xff0c; 1.cortex A&#xff1a;高端应用型领域 2.cortex R&#xff1a;实时性要求 3.cortex M&#xff1a;…...

关于单项梯度冻结小记

单项权重冻结&#xff08;Partial Weight Freezing&#xff09;详解 单项权重冻结&#xff08;Partial Weight Freezing&#xff09; 是深度学习模型训练中的一种技巧&#xff0c;指的是在训练过程中&#xff0c;只冻结&#xff08;固定&#xff09;部分网络权重&#xff0c;而…...

Ubuntu20.04安装Nvidia显卡驱动

Ubuntu20.04安装Nvidia显卡驱动 安装环境为Dell R540服务器 官网下载Nvidia显卡驱动 https://www.nvidia.cn/geforce/drivers/ 安装显卡驱动 chmod x NVIDIA-Linux-x86_64-470.63.01.run sudo ./NVIDIA-Linux-x86_64-470.63.01.run 遇到nouveau报错 lsmod查看nouveau驱动…...

YOLOv11 目标检测

本文章不再赘述anaconda的下载以及虚拟环境的配置&#xff0c;博主使用的python版本为3.8 1.获取YOLOv11的源工程文件 链接&#xff1a;GitHub - ultralytics/ultralytics: Ultralytics YOLO11 &#x1f680; 直接下载解压 2.需要自己准备的文件 文件结构如下&#xff1a;红…...

VSCode C/C++ 环境搭建指南

一、前言 Visual Studio Code&#xff08;简称 VSCode&#xff09;是一款轻量级且功能强大的跨平台代码编辑器&#xff0c;凭借丰富的插件生态和高度的可定制性&#xff0c;深受开发者喜爱。对于 C/C 开发者而言&#xff0c;在 VSCode 中搭建开发环境&#xff0c;能够获得灵活…...

Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制

Python-docx库详解&#xff1a;轻松实现Word文档自动化生成与图片尺寸控制 在现代办公自动化的浪潮中&#xff0c;文档处理是一项不可或缺的任务。Python作为一种强大的编程语言&#xff0c;提供了丰富的库来简化这些任务。其中&#xff0c;python-docx库是处理Word文档的有力…...

Python大疆导出csv文件转化大地2000的dxf文件

大疆导出三维模型里面有个models\pc\0\terra_grid\csv\terra_grid.csv文件&#xff0c;里面记录所有点的坐标和高程&#xff0c;但坐标是经纬度坐标&#xff0c;需要转化为大地2000坐标。 我参照了&#xff1a;经纬度坐标转换为CGCS2000大地坐标系对应XY值&#xff08;PYTHON实…...

Python 中下划线 “_” 的多面性:从变量到约定

# Python中下划线“_”的多面性&#xff1a;从变量到约定 在Python的语法体系里&#xff0c;下划线“_”看似毫不起眼&#xff0c;实则扮演着极为重要且多样化的角色。它不仅能作为普通变量参与编程&#xff0c;更在多个特殊场景下有着独特的用途与约定。深入理解下划线的各种…...

Vue3项目开发:状态管理实践指南

# Vue3项目开发&#xff1a;状态管理实践指南 一、引言 背景介绍 在Vue项目中&#xff0c;状态管理是一个非常重要的话题。合理的状态管理能够帮助我们更好地组织和管理数据&#xff0c;提升项目的可维护性和可扩展性。本文将深入探讨Vue3项目中状态管理的最佳实践&#xff0c;…...

JVM-JAVA编译到执行全过程

源码文件&#xff08;.java&#xff09;到代码执行的全过程&#xff1a; 该过程主要分为四个阶段&#xff0c;“编译-》加载-》解释-》执行”。 在编译阶段需要将源码文件&#xff08;.java&#xff09;通过语法分析、语义分析、注解处理后得到class文件&#xff1b; 在加载…...

数据结构-------栈

顺序栈&#xff1a; 一、数据结构定义 数据元素 DATATYPE typedef struct person {char name[32];char sex;int age;int score; } DATATYPE;顺序栈结构 SeqStack typedef struct list {DATATYPE *head; // 栈空间首地址int tlen; // 栈总容量&#xff08;total leng…...

机器学习概要

文章目录 一、什么是机器学习 二、机器学习的种类 1. 有监督学习 2. 无监督学习 3.强化学习 三、机器学习的应用 四、机器学习的步骤 1. 数据的重要性 2. 数据和学习的种类 3. 可视化 一、什么是机器学习 机器学习指的是计算机根据给定的问题、课题或环境进行学习&a…...

python:music21 与 AI 结合应用探讨

Python 的 music21 库与人工智能&#xff08;AI&#xff09;技术结合应用具有广泛的可能性&#xff0c;尤其是在音乐生成、分析和风格模拟等领域。以下是具体的结合方向与示例&#xff1a; 1. 音乐生成与 AI AI 模型驱动音乐生成&#xff1a; 使用深度学习模型&#xff08;如 …...

【LangChain入门 2 Model组件】开始!LLM Models简单对话

文章目录 一、使用langchain_ollama二、采用DeepSeek的API三、Model 介绍3.1 OllamaLLM 预训练模型3.2 ChatOllama 聊天预训练模型3.3 OllamaEmbeddings 实现一个helloworld&#xff0c;跑通一个简单的对话。 后面章节会正式介绍LangChain的各个功能。 后台llm的端口可以任意选…...

7种寻址方式

1. 立即寻址 立即寻址也叫立即数寻址&#xff0c;操作数本身就在指令中给出&#xff0c;只要取出指令也就取到了操作数&#xff0c;这个操作数被称为立即数。立即数要求以 “#” 为前缀。 #0x1100&#xff1a;表示十六进制数#0b1100&#xff1a;表示二进制数#0d1100&#xff…...

C语言中,#define和typedef 定义int* 一个容易混淆的点

前言 首先来看一个代码&#xff1a; #include <stdio.h> #include <string.h>#define int_ptr int *int main() {int c 100;int_ptr a , b; // 等效于int * a,b; 那么b就是int类型&#xff0c;不是int*类型a &c;b &c; //报错return 0; } 原意&#x…...

C++20 中线程管理与取消机制的深度剖析

文章目录 std::jthread&#xff1a;更智能的线程管理背景与优势构造函数与 std::stop_token 的集成 std::stop_token、std::stop_source 和 std::stop_callback&#xff1a;灵活的取消机制std::stop_token&#xff1a;取消请求的指示器std::stop_source&#xff1a;取消请求的发…...