news 2026/1/25 5:07:28

MATLAB实现基于Sinkhorn距离的非负矩阵分解(SDNMF)算法详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MATLAB实现基于Sinkhorn距离的非负矩阵分解(SDNMF)算法详解

非负矩阵分解(NMF)是一种经典的无监督学习方法,广泛用于数据降维、特征提取和主题建模等领域。标准NMF通过最小化Frobenius范数来逼近数据矩阵X ≈ U V^T,但它忽略了样本之间的几何结构信息,导致分解结果有时缺乏判别性和局部保持能力。

为了解决这一问题,基于Sinkhorn距离的非负矩阵分解(SDNMF)引入了样本间的相似性图W,并用Sinkhorn距离(一种带熵正则化的最优传输距离)作为正则项,鼓励相邻样本在低维表示空间(即V)中保持相似。这种方法特别适合处理具有内在流形结构的数据,如图像、文本、生物信息等,能得到更具语义的基矩阵U和系数矩阵V。

算法目标

给定非负数据矩阵X(m × n),相似性权重矩阵W(n × n),以及隐因子数k,SDNMF求解:

[

\min_{U \geq 0, V \geq 0} D_S(U, V) + \alpha \cdot \text{Tr}(V^T L V)

]

其中:

  • D_S表示Sinkhorn距离(也称熵正则化的Wasserstein距离),用于度量重构误差X与U V^T之间的差异,比Frobenius范数更鲁棒。

  • 第二项是经典的图正则化项,L为图拉普拉斯矩阵,α控制结构保持强度。

  • 当α=0时,算法退化为基于Sinkhorn距离的纯NMF(EMDNMF)。

核心实现特点

该函数提供了灵活的参数配置和优化方式:

  • 输入

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

超详细版Vitis使用教程:时序约束配置方法

Vitis时序约束实战指南:从零配置到精准收敛 在FPGA开发中,功能正确只是第一步。真正决定系统能否稳定运行、性能是否达标的,往往是那些藏在后台的 时序约束 (Timing Constraints)。尤其是在使用Xilinx Vitis进行异构…

作者头像 李华
网站建设 2026/1/24 10:22:29

基于Verilog的组合逻辑电路FPGA完整示例

从零开始:用Verilog在FPGA上实现一个真正的组合逻辑电路你有没有过这样的经历?明明代码写得“很对”,仿真也跑通了,结果烧进FPGA后LED就是不亮——最后发现是因为某个case语句漏了个分支,综合器悄悄给你塞了个锁存器&a…

作者头像 李华
网站建设 2026/1/15 17:24:25

Vivado版本兼容性对ego1开发板大作业的影响说明

Vivado版本问题如何悄悄毁掉你的ego1大作业?你有没有遇到过这种情况:明明代码逻辑没问题,仿真也通过了,XDC约束写得清清楚楚,可下载到ego1开发板上时,LED不亮、数码管乱码,甚至根本烧录失败&…

作者头像 李华
网站建设 2026/1/21 2:21:19

大规模工业产线中的Vivado许可证优化使用:实践分享

大规模工业产线中的Vivado许可证优化实践:从“抢不到”到高效复用在一家大型通信设备制造商的FPGA开发中心,每天早上9点刚过,工程师们的工位上几乎同时亮起了Vivado IDE。有人开始修改逻辑设计,有人启动批处理脚本跑回归测试&…

作者头像 李华
网站建设 2026/1/15 15:01:31

低成本信号发生器实现高精度波形输出方法

用一块STM32做出实验室级信号发生器?揭秘低成本高精度波形输出的底层逻辑你有没有遇到过这样的场景:调试一个音频电路,手头却没有信号源;做传感器激励实验,只能靠函数发生器租借;或者在嵌入式项目中想生成一…

作者头像 李华
网站建设 2026/1/16 14:30:47

MISRA C++入门实战:常见违规示例解析

深入MISRA C:从典型违规看安全编码的“坑”与“道”在嵌入式系统、汽车电子、工业控制等对安全性要求极高的领域,代码的质量不再仅仅是“能不能跑”的问题,而是直接关系到设备是否可靠、人员是否安全。C以其高性能和灵活性成为这些系统的首选…

作者头像 李华