前言

非负矩阵分解顾名思义:是一个矩阵分解,并且分解矩阵非负。看起来这句话给人的信息量不大,背后却能挖掘NMF为什么会被提出且广泛被运用的原因。

首先是NMF是一个矩阵分解,它和PCA(主成分分析)、ICA(独立成分分析)、SVD(奇异值分解)和VQ(矢量量化)等矩阵分解一样:在当前数据量庞大且巨大的时代,对数据的维数进行消减和高浓度压缩十分重要。

其次是为什么非负,在上述提到的矩阵分解方法中,原始的大矩阵V被近似分解为低维(秩)的V=WH形式。这些方法的共同特点是,因子W和H中的元素可为正或负,即使输入的初始矩阵元素是全正的,传统的秩削减算法也不能保证原始数据的非负性。在数学上,从计算的观点看,分解结果中存在负值是正确的,但负值元素在实际问题中往往是没有意义的。例如图像数据中不可能有负值的像素点;在文档统计中,统计个数也不可能是负值。

基本思想

因此,NMF的基本思想就是:对于任意给定的一个非负矩阵V,找到两个非负矩阵W,H,使得一个非负的矩阵分解为左右两个非负矩阵的乘积。

数学上:

同时要求矩阵W,H非负。

如果你仅仅知道什么是NMF,到这里就有现成的工具包供你调用,你也能得到想要的结果(W,H)。但为什么会保证得到的结果一定是正的,并且怎么得到解都对我们理解NMF有着很大帮助。这也是工作学习一直值得提倡的:授之以鱼不如授之以渔。

数学模型与求解

既然我们的目的是为了找到两个非负矩阵使得它们的乘积等于原矩阵,那么就可以变成求解下面的最小化问题:

这种形式的问题,我们首先要想到的梯度下降来求解。而基于梯度下降的方法,加减运算是无法保证非负的。但事实上,我们可以基于乘法运算来保证与梯度下降是等价的。

首先上述损失函数能够写成:

然后对其求梯度:

再依据梯度下降的思路:

(这个右上角的小撇怎么都打不出,只能自己截图了 --。)

代入上述的迭代方程就能够得到H矩阵的更新形式。

W矩阵的求解过程和H是一样的,这里就不在重复敲公式了 - -。只给出最后的更新形式,有兴趣的自己推导

代码实现只要根据上述两个迭代公式从初始随机产生的H,W一步步迭代找到最优值就行。

这样,基于非负矩阵分解的原理和求解过程就了然于胸了~

matlab做nmf矩阵分解,进阶理解非负矩阵分解(NMF)相关推荐

  1. 推荐算法——非负矩阵分解(NMF)

    1. 矩阵分解回顾 在博文推荐算法--基于矩阵分解的推荐算法中,提到了将用户-商品矩阵进行分解,从而实现对未打分项进行打分.矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积.对于上述的用户-商品矩阵 ...

  2. 非负矩阵分解NMF(1): 非调包python实现

    文章目录 1. 矩阵分解(Matrix Factorization): 1.1 公式推导 1.2 代码实现 1.3 在图像数据下的效果 2. 非负矩阵分解(Non-negative Matrix Fa ...

  3. 【机器学习】NMF(非负矩阵分解)

    写在篇前   本篇文章主要介绍NMF算法原理以及使用sklearn中的封装方法实现该算法,最重要的是理解要NMF矩阵分解的实际意义,将其运用到自己的数据分析中! 理论概述   NMF(Non-nega ...

  4. nmf算法 python_非负矩阵分解(NMF)及一个小实例

    最近在做一道题,题目的要求如下图,其中如2-digits这张图,图中每两个数字构成一个子图(横着看,比如第一行为41,43,42,14,12,14,23,41),对应的右图为左图的一个主成分元素,即2 ...

  5. 文本主题模型之非负矩阵分解(NMF)

    1. 非负矩阵分解(NMF)概述 非负矩阵分解(non-negative matrix factorization,以下简称NMF)是一种非常常用的矩阵分解方法,它可以适用于很多领域,比如图像特征识别 ...

  6. 【机器学习】(十七)非负矩阵分解NMF:人脸图像特征提取、用特征排序;还原混合信号

    非负矩阵分解(NMF)是一种无监督学习算法,目的在于提取有用的特征(可以识别出组合成数据的原始分量),也可以用于降维,通常不用于对数据进行重建或者编码. 与PCA相同,NMF将每个数据点写成一些分量的 ...

  7. NMF 非负矩阵分解(Non-negative Matrix Factorization)实践

    1. NMF-based 推荐算法 在例如Netflix或MovieLens这样的推荐系统中,有用户和电影两个集合.给出每个用户对部分电影的打分,希望预测该用户对其他没看过电影的打分值,这样可以根据打 ...

  8. Non-Negative Matrix Factorization 非负矩阵分解(NMF)

    Non-Negative Matrix Factorization 非负矩阵分解(NMF) 简介及基本思想 1999年由D.D.Lee和H.S.Seung提出的新的矩阵分解思想,在矩阵中所有元素均为非 ...

  9. NMF 非负矩阵分解 -- 原理与应用

    1.原理 发现写关于非负矩阵的博文还是蛮多的,还是以自己的角度总结一下自己的最近看的若干东西以及对非负矩阵分解有用的一些资料链接.NMF,全称为non-negative matrix factoriz ...

  10. SVD(奇异值分解)+NMF(非负矩阵分解)

    SVD(奇异值分解)+NMF(非负矩阵分解) NMF==>变为两个矩阵相乘 SVD==>变为三个矩阵相乘

最新文章

  1. c语言char转wchar t,c语言char和wchar_t 转换
  2. 【Android】ViewPager实现无限循环滚动
  3. Kira同学:斩获百度校招提前批offer备战细节全揭秘
  4. 19-爬虫之scrapy框架大文件下载06
  5. 【Android】刷Rom:adb reboot bootloader
  6. mysql数据库引擎InnoDB和MyISAM的区别
  7. 设计模式--程序猿必备面向对象设计原则
  8. Linux基本命令介绍
  9. 如果避免反射导致的性能问题?
  10. iPhone:你知道这 13 年我是怎么过的吗?
  11. Microsoft Office Professional Plus 2010在安装中出错 解决办法 安装office2010出错
  12. 如何收割流量红利?UB Store的直播电商“三宝”
  13. FastDFS文件上传
  14. 【外贸建站规则】外贸网站建站流程有哪些?需要注意什么? (上)
  15. AR5B22网卡折腾记录
  16. python爬虫爬取网站文章
  17. 在线还原base64编码的图片
  18. 2021.12.9号学习dockerfile内容
  19. k8s技术预研13--kubernetes共享存储原理与动态存储供应用使用示例
  20. VSCode 安装与配置

热门文章

  1. linux离线安装rpm命令,CentOS-Linux安装软件命令是什么:rpm命令
  2. Netty 是什么,Netty原理详解
  3. 云计算简史(完整版)
  4. MQ消息队列常用命令
  5. 分析-MQ消息队列中间件-在IM即时通讯系统的用途
  6. 记一次渗透之旅 ,网络安全学习至上
  7. 白鹭游戏引擎网络棋牌搭建步骤
  8. 服务器主板的无线驱动,给因特尔S2600CO服务器主板安装【SAS控制器】驱动
  9. opencv 视频格式
  10. oracle临时表空间追加文件,Oracle临时表空间查看、添加临时表空间数据文件、修改默认临时表空间 方法!...