news 2026/6/8 16:30:20

Matlab实现基于KL散度的图正则化非负矩阵分解(GNMF_KL)详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Matlab实现基于KL散度的图正则化非负矩阵分解(GNMF_KL)详解

非负矩阵分解(NMF)有两种常见的目标函数形式:一种基于Frobenius范数(欧氏距离平方),另一种基于广义KL散度(也称I-divergence)。后者在处理计数数据、概率分布或TF-IDF表示的文本数据时往往更合适,因为KL散度更符合泊松噪声模型,能更好地捕捉数据的相对比例关系。

图正则化非负矩阵分解(GNMF)的KL散度版本(有时也称为Locality Preserving NMF或LPNMF)在标准KL-NMF的基础上加入了流形正则项,通过样本间的邻接图强制低维表示V保持数据的局部几何结构。这使得它在文档聚类、图像表示等任务中,既能保留部分-整体结构,又能尊重数据的内在流形分布。

今天分享的这个Matlab函数GNMF_KL正是实现了这一算法的核心入口。它采用乘性更新规则,支持稀疏矩阵输入、NCW权重预处理以及多次随机初始化,确保收敛稳定且结果可靠。

算法目标函数

给定非负数据矩阵X(m×n),GNMF_KL最小化以下目标:

D(X || U V^T) + α × Tr(V^T L V)

其中:

  • D(·||·) 为广义KL散度:∑ (X_ij log(X_ij / (UV^T)_ij) - X_ij + (UV^T)_ij)

  • Tr(V^T L V) 为图拉普拉斯正则项,L = D - W 为拉普拉斯矩阵

  • α 控制流形正则强度(默认100,α=0时退化为普通KL-NMF)

通过精心设计的乘性迭代规则,可以保证目标函

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 3:38:08

深入解析:使用Python处理股票价格的参考点

在金融市场分析中,股票价格的变化往往需要参考历史数据来确定买入或卖出的时机。本文将通过一个具体的实例,介绍如何使用Python编写代码来处理股票价格的参考点,帮助你更好地理解和实现这一过程。 问题背景 假设我们有一个股票的价格数据,我们希望根据一个给定的“标记价…

作者头像 李华
网站建设 2026/5/30 19:26:40

Keil C51软件安装图解说明(适用于Win10)

Keil C51 在 Win10 上安装实战指南:从踩坑到稳定运行的全过程解析 在嵌入式开发的世界里,8051 单片机就像一位“老将”——虽然出身于上世纪八十年代,但凭借其结构简单、成本低廉、功耗可控,在工业控制、智能仪表、家电主控等领域…

作者头像 李华
网站建设 2026/5/30 19:09:15

SONIC_PreData模块中duration单位是秒,务必准确填写

Sonic数字人生成中duration参数的精准控制与工程实践 在AI内容创作领域,一个看似微不足道的配置项,往往决定了最终输出的专业水准。比如,在使用Sonic模型生成“会说话”的数字人视频时,很多人可能不会想到,仅仅因为多填…

作者头像 李华
网站建设 2026/5/30 20:16:03

STM32CubeMX安装图解说明:每一步都有截图参考

从零开始搞定STM32开发:手把手带你装好CubeMX,一步到位不踩坑 你是不是也遇到过这种情况——兴致勃勃想开始STM32项目,结果刚打开官网下载完STM32CubeMX,双击安装包就弹出“ No JVM installation found ”?或者好不…

作者头像 李华
网站建设 2026/5/28 15:12:56

Keil5开发STM32F103前必做:芯片库添加入门讲解

Keil5开发STM32F103前必做:芯片库添加实战全解析 你有没有遇到过这样的情况?刚建好一个Keil工程,写完第一行 #include "stm32f10x.h" ,编译时却弹出“file not found”?或者明明写了 main() 函数&#…

作者头像 李华