NMF非负矩阵分解算法(Non-negative Matrix Factorization)
NMF的基本思想可以简单描述为:
对于任意给定的一个非负矩阵V,NMF算法能够寻找到一个非负矩阵W和一个非负矩阵H,使得满足 ,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。如下图所示,其中要求分解后的矩阵H和W都必须是非负矩阵。
矩阵V分解为左矩阵W和右矩阵H,可理解为原始矩阵V的列向量是H中的所有列向量的加权和,对应的权重系数则是W的列向量的元素,所有H称为基矩阵,W称为系数矩阵。
NMF在人脸识别的应用中和PCA还有VQ分解不同。VQ分解是用一张完整的图像直接代表源脸部图像;PCA是将几个完整人脸加减压成一张脸;而NMF是取甲的眼睛,乙的鼻子,丙的嘴巴直接拼成一张脸,也就是说NMF分解后的基矩阵H是每张人脸的一个特征部分,例如眼睛,鼻子,嘴巴等,然后权重矩阵对这些特征进行加权处理从而得到一张完整的人脸。如下图所示3种矩阵分解方式的区别。
具体算法流程
非负矩阵分解中,代码采用的是原始论文中提及的基于乘法更新发展的迭代更新算法,其将矩阵分解算法转化为如下的优化问题,即最小化两个矩阵之间的欧几里得距离的优化问题:
其中V为原始矩阵,V’ 为分解后的矩阵重构而成的矩阵,即,乘法更新规则如下:
H矩阵的更新:,其中是指矩阵的第 α 行第 μ 列元素,当时,对应位置元素不做更新。
W矩阵的更新:,其中 iα 是指矩阵的第 i 行第 α 列元素,当时,对应位置元素不做更新。
NMF非负矩阵分解算法(Non-negative Matrix Factorization)相关推荐
- NMF 非负矩阵分解 -- 原理与应用
1.原理 发现写关于非负矩阵的博文还是蛮多的,还是以自己的角度总结一下自己的最近看的若干东西以及对非负矩阵分解有用的一些资料链接.NMF,全称为non-negative matrix factoriz ...
- Non-Negative Matrix Factorization 非负矩阵分解(NMF)
Non-Negative Matrix Factorization 非负矩阵分解(NMF) 简介及基本思想 1999年由D.D.Lee和H.S.Seung提出的新的矩阵分解思想,在矩阵中所有元素均为非 ...
- NMF 非负矩阵分解(Non-negative Matrix Factorization)实践
1. NMF-based 推荐算法 在例如Netflix或MovieLens这样的推荐系统中,有用户和电影两个集合.给出每个用户对部分电影的打分,希望预测该用户对其他没看过电影的打分值,这样可以根据打 ...
- scikit-learn:通过Non-negative matrix factorization (NMF or NNMF)实现LSA(隐含语义分析)...
scikit-learn:通过Non-negative matrix factorization (NMF or NNMF)实现LSA(隐含语义分析) 之前写过两篇文章.各自是 1)矩阵分解的综述:s ...
- nonnegative matrix factorization (NMF)的R实现
非负矩阵分解(NMF)是一种最新的特征提取算法,与主成分分析(PCA)或独立成分分析(ICA)类似,非负矩阵分解(NMF)的目的是使用有限的基础成分来解释观察到的数据,这些成分组合在一起时尽可能准确地 ...
- Non-negative Matrix Factorization 非负矩阵分解
Non-negative Matrix Factorization 非负矩阵分解 Introduction 定义 非负矩阵分解(non-negative matrix factorization),或 ...
- 论文笔记:Matrix Completion in the Unit Hypercube via Structured Matrix Factorization
2019 IJCAI 0 摘要 复杂任务可以通过将它们映射到矩阵完成(matrix completion)问题来简化.在本文中,我们解决了我们公司面临的一个关键挑战:预测艺术家在电影镜头中渲染视觉效果 ...
- 非负矩阵图像融合MATLAB,图像融合的非负矩阵分解算法
第 17 卷 第 9 期 2005 年 9 月 计算机辅助设计与图形学学报 JOURNAL OF COMPUTER2AIDED DESIGN & COMPUTER GRAPHICS Vol17 ...
- 【机器学习】NMF(非负矩阵分解)
写在篇前 本篇文章主要介绍NMF算法原理以及使用sklearn中的封装方法实现该算法,最重要的是理解要NMF矩阵分解的实际意义,将其运用到自己的数据分析中! 理论概述 NMF(Non-nega ...
- Matrix Factorization: A Simple Tutorial and Implementation in Python
本文转自http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-tutorial-and-implementation-i ...
最新文章
- or函数python_Python numpy.bitwise_or函数方法的使用
- python蜡烛图预测_python tushare股票K线蜡烛图绘制
- mysql 5.x数据库安装_Ubuntu 12.04 mysql 源码安装--mysql.5.5.x
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记3
- 对付ajax ,配置selenium+phantonjs
- 一个客户端对应一个线程
- eclipse怎么导出一个Java项目(莫要错过,最详细教程!)
- matlab中quat2angle,matlab 学习记录
- java2的7次方怎么表示_一元二次方程常见题型之方程根的解法
- 架构之路 参考MySpace
- React --获取服务器数据的两种方式(Axios和FetchJsonp)
- VSCode + LaTeX 入门(学习记录)
- 【QT】QCustomPlot图表控件
- 计算机图形学流体仿真mac网格,数据驱动的快速网格法流体模拟
- 实训一 古诗横竖输出
- 应用程序无法正常启动(0xc000007b) 请单击确定关闭应用程序
- 如何修改服务器凭据,如何更改操作数据库帐户的用户凭据
- Taste/Thoth:开源的推荐系统引擎
- 【解决】Splunk Lookup table owner: nobody
- 【HTML | CSS | JAVASCRIPT】一款响应式精美简历模板分享(万字长文 | 附源码)
热门文章
- 烂笔头笔记:macOS卸载Adobe产品后,在Launchpad上遗留空文件夹的解决方法
- 02-Spring的核心API
- Excel如何用身份证号提取性别
- golang 实现 key有序map
- 方舟服务器炸了怎么修复,《方舟:生存进化》诸事不顺!退款BUG修复服务器又炸...
- 电动汽车用内置式永磁同步电机基于查询表 的矢量控制算法, 自动生成满足 MTPA
- 范德蒙行列式计算以应用
- 无线ap ntp服务器,我有一优科 ZoneFlex 7982 的无线AP,怎样可以进AP系统进行设置...
- 【SLAM小车】硬件_TB6612FNG设计记录
- 小程序 | 微信小程序布局左对齐自动换行