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

Matlab实现GNMF测试阶段投影:将新数据映射到低维表示

在实际应用非负矩阵分解(NMF)或图正则化非负矩阵分解(GNMF)时,我们通常会先在训练集上学习基矩阵U,然后面对新来的测试数据时,需要快速得到其在同一低维空间中的表示V。这就是out-of-sample或测试阶段投影问题。

标准的NMF在测试阶段可以通过简单的非负最小二乘求解,但GNMF由于引入了图正则项,训练过程更复杂,直接对新样本重新优化整个目标函数会非常耗时且不现实。因此,一个高效的做法是:固定训练得到的基矩阵U,对新数据X_test求解V,使得X_test ≈ U * V^T,同时保持V非负。

今天分享的这个小函数GNMFtest正是实现这一功能的简洁高效工具。它假设U已经由GNMF训练好,直接通过闭式解的形式快速计算测试样本的低维系数矩阵V,非常适合在聚类、分类或检索任务中使用GNMF作为特征提取器时的测试流程。

函数的核心原理

给定训练得到的基矩阵U(mFea × k)和测试数据矩阵X(mFea × nTest),目标是求解:

min ||X - U V^T||² s.t. V ≥ 0

这是一个典型的非负最小二乘问题(NNLS)。当U的列线性无关时,可以通过以下方式近似求解:

V^T = (U^T U)^-1 U^T X → 再强制非负:V^T = max(0, (U^T U)^-1 U^T X)

即:

  1. 计算UTU = U^T * U(对称矩阵)

  2. 计算UTX = U^T * X

    </
http://www.jsqmd.com/news/226678/

相关文章:

  • SSD1306 I2C模式下响应检测与错误处理核心要点
  • 各向同性哈希(Isotropic Hashing)编码过程详解
  • C++ 变量作用域
  • ModbusPoll与Modbus Slave联动测试完整示例
  • 一文说清Proteus基础操作:适合初学者的通俗解释
  • proteus示波器使用方法图解:一文说清界面功能布局
  • 基于STM32的u8g2 OLED驱动配置:手把手教程
  • STM32 GPIO控制有源蜂鸣器操作指南
  • DeepSeek 提出新架构 mHC 详解
  • IAR中使用宏定义优化条件编译:实践技巧
  • STM32CubeMX配置文件与代码生成关系图解说明
  • LTspice 仿真验证正交线圈互感对于信号幅值的影响
  • Keil调试教程:驱动层开发超详细版指南
  • JLink驱动安装方法:新手友好型操作指南
  • 大数据GDPR合规的技术支撑体系
  • 数据治理概论 连载【1/14】——第1章-数据治理概述 数据治理概论(97页)
  • 基于Proteus仿真的STC89C52RC最小系统搭建教程
  • Linux安装RabbitMQ
  • STM32使用HAL库实现I2C通信完整指南
  • 03-MongoDB高级运维
  • Nginx--日志(介绍、配置、日志轮转)
  • Linux安装redis
  • 奇偶校验在嵌入式系统中的作用:入门必读
  • 解决screen驱动花屏问题的实战经验
  • 工业环境下的PCB封装防护设计:通俗解释
  • 电路板PCB设计防尘防水结构:项目应用
  • Keil5芯片包下载路径设置:系统学习配置方法
  • 低功耗设计中的电源管理策略:超详细版解析
  • 电机控制器半桥驱动电路:自举电路完整示例
  • S32DS使用一文说清:S32K GPIO外设初始化步骤