最近在学习矩阵分析时了解到了NMF这个方法,发现其潜力巨大,应用场景广阔。目前的算法场景中,NMF可以应用的领域很广,源于其对事物的局部特性有很好的解释。在众多应用中,NMF能被用于发现数据库中的图像特征,便于快速自动识别应用;能够发现文档的语义相关度,用于信息自动索引和提取;能够在DNA阵列分析中识别基因等等。我们将对此作一些大致的描述。但是最有效的就是图像处理领域,是图像处理的数据降维和特征提取的一种有效方法。
1、特征学习
这一点思想类似(Principal Component Analysis)主成分分析,但是在实际工程环境当中都要比PCA效果要好,其中思想如下:
- 测试数据在NMF算法上学习 Vtrain→dictionaryW
- 利用W去分解新的测试examples Vn:
- 把hn作为example n的特征向量
下面是对人物脸部特征学习的NMF算法,图为把人的脸部的不同特征显示出来:
2、图像分析
NMF最成功的一类应用是在图像的分析和处理领域。图像本身包含大量的数据,计算机一般将图像的信息按照矩阵的形式进行存放,针对图像的识别、分析和处理也是在矩阵的基础上进行的。这些特点使得NMF方法能很好地与图像分析处理相结合。人们已经利用NMF算法,对卫星发回的图像进行处理,以自动辨别太空中的垃圾碎片;使用NMF算法对天文望远镜拍摄到的图像进行分析,有助于天文学家识别星体;美国还尝试在机场安装由NMF算法驱动的识别系统,根据事先输入计算机的恐怖分子的特征图像库来自动识别进出机场的可疑恐怖分子。
学术界中:(1)NMF首次被Lee教授用于处理人脸识别。(2)LNMF被宋教授后面提出用于提取人脸子空间,将人脸图像在特征空间上进行投影,得到投影系数作为人脸识别的特征向量,用来进行人脸识别。一定程度上提高了识别率。(3)GNMF被杨教授提出,该算法是基于gamma分布的NMF进行构建特征子空间,采用最小距离分类对ORL人脸库部分图像进行识别。
对于人脸识别,其中以LNMF最为有效突出,比普通的NMF高效且精度高。
3、话题识别
文本在人类日常接触的信息中占有很大分量,为了更快更精确地从大量的文本数据中取得所需要的信息,针对文本信息处理的研究一直没有停止过。文本数据不光信息量大,而且一般是无结构的。此外,典型的文本数据通常以矩阵的形式被计算机处理,此时的数据矩阵具有高维稀疏的特征,因此,对大规模文本信息进行处理分析的另一个障碍便是如何削减原始数据的维数。NMF算法正是解决这方面难题的一种新手段。NMF在挖掘用户所需数据和进行文本聚类研究中都有着成功的应用例子。由于NMF算法在处理文本数据方面的高效性,著名的商业数据库软件Oracle在其第10版中专门利用NMF算法来进行文本特征的提取和分类。为什么NMF对于文本信息提取得很好呢?原因在于智能文本处理的核心问题是以一种能捕获语义或相关信息的方式来表示文本,但是传统的常用分析方法仅仅是对词进行统计,而不考虑其他的信息。而NMF不同,它往往能达到表示信息的局部之间相关关系的效果,从而获得更好的处理结果。
话题识别的话跟Probabilistic Latent Semantic Analysis概率隐语义分析相似。
- 首先假设V=[vfn]是一个单词-文件的矩阵,vfn是单词mf在文件dn的出现频率;
- 假设wfk=P(tk)P(mf|tk)和hkn=P(dn|tk);
- 那么模型可以变成:
-
[P(mf,dn)]=[vfn]=WH
在这里,wk 可以被解释成为与数据hk的主题相关度
4、语音处理
语音的自动识别一直是计算机科学家努力的方向,也是未来智能应用实现的基础技术。语音同样包含大量的数据信息,识别语音的过程也是对这些信息处理的过程。NMF算法在这方面也为我们提供了一种新方法,在已有的应用中,NMF算法成功实现了有效的语音特征提取,并且由于NMF算法的快速性,对实现机器的实时语音识别有着促进意义。也有使用NMF方法进行音乐分析的应用。复调音乐的识别是个很困难的问题,三菱研究所和MIT(麻省理工学院)的科学家合作,利用NMF从演奏中的复调音乐中识别出各个调子,并将它们分别记录下来。实验结果表明,这种采用NMF算法的方法不光简单,而且无须基于知识库。
NMF处理声频产生局部特征数据
5、时序分割(temporal segmentation)
这里的话思想可以引用隐马尔科夫模型hidden markov models HMM,可以处理时间序列的数据,例如音频视频:
NMF可以通过阈值设置把文件序列数据分割成不同兴趣主题,下面为挖掘电影剪辑结构的一个例子:
同样基于时序分割的想法下有了这样一个语音处理项目,对很多人说的一段话进行语音特征分割,识别出每段话属于哪个人说的:
![NMP](https://i-blog.csdnimg.cn/blog_migrate/961970f0629a5b25645af8ba3c889843.png)
![NMP](https://i-blog.csdnimg.cn/blog_migrate/e8381f9addbacd1752688dcf5fccd246.png)
6、聚类
聚类最常用的方法是K-means,俗称K均值算法,NMF算法比K-means算法更优之处因为它是一种软聚类方法(也就是一个元素可以被分为多种类型,不是K-means那种非彼则此),对于有可能重复的聚类方法NMF是简单高效哦。
半年前做姓名聚类的时候一个老外的名字叫 Handsome Yokota, 有时候又写成Hand. Yokota,当大量这种情况出现对于聚类是很不和谐的,用软聚类可以有效过滤这种情况,降低后续数据处理压力。
7 机器人控制
如何快速准确地让机器人识别周围的物体对于机器人研究具有重要的意义,因为这是机器人能迅速作出相应反应和动作的基础。机器人通过传感器获得周围环境的图像信息,这些图像信息也是以矩阵的形式存储的。已经有研究人员采用NMF算法实现了机器人对周围对象的快速识别,根据现有的研究资料显示,识别的准确率达到了80%以上。
8、生物医学工程和化学工程
生物医学和化学研究中,也常常需要借助计算机来分析处理试验的数据,往往一些烦杂的数据会耗费研究人员的过多精力。NMF算法也为这些数据的处理提供了一种新的高效快速的途径。科学家将NMF方法用于处理核医学中的电子发射过程的动态连续图像,有效地从这些动态图像中提取所需要的特征。NMF还可以应用到遗传学和药物发现中。因为NMF的分解不出现负值,因此采用NMF分析基因DNA的分子序列可使分析结果更加可靠。同样,用NMF来选择药物成分还可以获得最有效的且负作用最小的新药物。
9、滤波和源分离
参考 Independent Component Analysis, ICA 独立成分分析
而滤波当中一篇SIC使用了一个例子,就是使用深度轮廓进行动作识别Action Recognition using depth silhouettes,NMF算法作为特征学习的算法。最后论文使用微软开源的Kinect的骨骼特征、PCA算法、NMF算法进行轮廓特征学习对比,发现NMF的精确率最高91%,而微软开源的骨骼特征识别度只达到78%。
具体的NMF讲解请参考:点击打开链接