news 2026/3/14 21:04:53

MATLAB实现基于Sinkhorn距离的非负矩阵分解乘法更新规则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MATLAB实现基于Sinkhorn距离的非负矩阵分解乘法更新规则

在上一篇文章中,我们介绍了SDNMF的主入口函数,今天深入其核心优化部分——乘法更新规则的实现。SDNMF(Non-negative Matrix Factorization with Sinkhorn Distance)通过将传统的Frobenius重构误差替换为带熵正则化的Sinkhorn距离(也称为熵正则化的最优传输距离),并结合图拉普拉斯正则项,使得分解得到的基矩阵U和系数矩阵V不仅能很好地重构原始数据,还能保留样本间的局部几何结构。

该函数SDNMF_Multi实现了完整的乘法迭代更新过程,这是非负矩阵分解中最常用、最稳定的优化策略之一,能够自然保证U和V的非负性,同时收敛速度较快。

算法迭代流程详解

  1. 初始化

    • 若未提供初始U和V,则随机生成正值矩阵。

    • 调用NormalizeUV进行归一化处理(支持L1或L2范数,可选择对U或V归一化),确保分解的唯一性和数值稳定性。

  2. 预计算

    • 根据距离矩阵M计算核矩阵K = exp(-λ M - 1)。

    • 对X和重构矩阵进行γ次幂变换(X^γ),这是Sinkhorn距离中熵正则化的关键技巧。

    • 若有图正则(alpha > 0),构建度矩阵D并缩放W。

  3. 主迭代循环

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

MATLAB中高效计算欧氏距离矩阵的技巧

在机器学习、计算机视觉和模式识别等领域,经常需要计算样本之间的欧氏距离矩阵。例如在K近邻分类、聚类算法(如K-means)或谱聚类中,距离矩阵是核心计算部分。当样本数量较大时,直接使用循环计算两两样本间的欧氏距离会非常慢,甚至导致内存和时间上的瓶颈。 MATLAB 作为一…

作者头像 李华
网站建设 2026/3/11 7:19:14

图解说明Multisim14.0主数据库损坏后的恢复步骤

Multisim 14.0主数据库损坏了?别急,一招教你快速恢复(附实战图解)你有没有遇到过这样的情况:打开Multisim 14.0,突然弹出一个红色警告框——“Unable to open master database”,接着元件库一片…

作者头像 李华
网站建设 2026/2/16 7:31:19

NX6801:一款国产99dB 24位单路ADC,-93dB THD+N

NX6801是一款24位I2S模数转换芯片,集成64倍过采样Δ-Σ调制器及数字滤波系统(含梳状/高通滤波),有效消除直流偏移。支持宽温工作(-40℃~85℃),兼容PCM1808关键指标。★关键特性1. 核心性能① 24…

作者头像 李华
网站建设 2026/3/11 17:15:22

Artix-7平台VHDL数字时钟的复位与时钟管理方案

Artix-7平台VHDL数字时钟的复位与时钟管理实战解析你有没有遇到过这样的情况:FPGA系统上电后,数码管显示乱跳、时间计数错乱,甚至状态机直接“跑飞”?明明逻辑写得没问题,仿真也通过了,可一到板级运行就出问…

作者头像 李华
网站建设 2026/3/13 7:41:19

RS232和RS485终端电阻配置实战案例

RS232与RS485终端电阻配置实战:从通信崩溃到稳定运行的真相你有没有遇到过这样的场景?一个工业现场,PLC主站通过Modbus RTU协议轮询多个远程温控模块。近处设备响应正常,但最远端的节点总是报CRC错误、数据错乱,甚至干…

作者头像 李华
网站建设 2026/3/2 0:10:00

一文说清波形发生器核心要点:初学者快速理解指南

从零搞懂波形发生器:不只是信号源,更是电子系统的“发令枪”你有没有遇到过这种情况——调试一个放大电路时,手头没有信号源,只能靠MCU的PWM勉强凑合?或者在做音频滤波实验时,发现输出波形“毛刺”满屏&…

作者头像 李华