非负矩阵分解(NMF)论文笔记(1)
来源:互联网 发布:unity3d导入模型 编辑:程序博客网 时间:2024/05/23 23:47
NMF经典论文:Algorithms for Non-negative Matrix Factorization(NIPS, 2001),此文主讲算法细节,偏理论。
(话说怎么去掉图片默认水印,为什么现在没有去掉的功能,有点影响视觉效果。)
1.介绍
无监督的学习算法,比如PCA和vector quantization,都可以看作是对数据矩阵的分解问题,只不过所用的约束不同。关于此两者跟NMF的对比分析,可参见论文Learning the Parts of Objects by Non-negative Matrix Factorization(Nature, 1999),此文主要讲应用,后面我也会写这篇论文的笔记。
2.非负矩阵分解
NMF要做的,就是给定一个非负矩阵
继续来看式(1),现在我们仅仅关注一个样例,即
矩阵分解问题,在数值线性代数中,已经研究得很广泛,由于NMF是带有非负约束的矩阵分解,所以以前的一些方法并不能直接很好的运用。于是也有了这篇文章的工作。
3.损失函数
评估
如上图中最后一句话所述,当A,B矩阵满足元素和为1时,D(A||B)就是KL散度/相对熵。对应的,NMF的目标式就可以定义为如下两个:
4.乘法更新准则
求解上一节中带约束的优化问题,梯度下降法可能是最简单的方法,它容易实现,但是呢,收敛也比较慢。其它的方法,比如共轭梯度法收敛快,但是不易实现。此外,这些基于梯度的方法,都需要确定一个参数,即步长,而调整这个步长参数也是比较麻烦的。为此,在收敛速度和算法实现难易之间折中一下,就是文章中提出的乘法更新准则了。
这里都说要W和H在距离函数的驻点上(函数的一阶导为0是驻点,另,二阶导为0是拐点),应该是指函数对W和H要可导(因下一节中要求偏导,此处仍存疑)。
5.乘法更新准则Vs.加法更新准则
这一节是说,乘法更新准则其实可以由加法更新准则得到,算得上是加法更新准则的一种特殊情况,这里的加法更新准则,就是传统的梯度下降。下面,以平方欧式距离为例,我们用梯度下降来更新H。首先,求一下梯度:
接下来,我们给步长取一个很特殊的值:
关于散度准则的目标式,就直接贴图了。
但是这样给
6.收敛性证明
收敛性证明是文章的一个重点,比较理论,但也正是最精妙处所在,证明过程将数学中的构造思想发挥得淋漓尽致。但是估计受nips篇幅限制,内容写的比较简洁,所以读起来也比较晦涩。下面边贴图,边补充论文中省略的推导过程。
我们还是以平方欧式距离为例进行说明,即下面对定理1进行证明,我们将会用到辅助函数,类似于EM算法中用到的,首先给出辅助函数的定义:
关于
这个引理是说,给定
自自然然地,我们现在就想,NMF的目标式子,存不存在这样的辅助函数呢,如果存在,是什么?因为一旦能确定辅助函数,我们根据上面的定义和引理,就能证明前面定理的收敛性了。
文章很强势而直接地给出了辅助函数的表达式。贴图感受一下:
有时候,可以根据需要达到的目标,倒着推导我们达到目标需要哪些条件,我们可以怎样去构造,有时候,纯粹就是天才般的灵感,加上知识积累形成的直觉,直接就知道怎么做了。这里为什么要这么构造、能这么构造,关键还有这个K为什么这么取值,我目前能想到的只有,式(14)的形式是在跟目标式的二阶泰勒展开靠拢,而K跟步长的取值有关(倒数)。
下面,我们来证明引理2。在看论文中给出的证明过程前,我们先来对目标函数进行一些变换,注意我们将用
接下来,我们就可以写出目标式F(h)的二阶泰勒展开:
再次把辅助函数表达式贴过来,对比着看:
很容易看出,G(h,h)=F(h)这个条件是满足的,下面我们只需要证明
那么我们现在就是要证明矩阵
然后就是证明M半正定:
这里补充一下如何从式(19)到式(20),把式(13)中的分子展开写:
现在,我们已经证明了
对每个元素,则有如下更新法则:
于是,我们推证了前面给出的关于H乘法更新准则,关于W的可以类似推证,此时目标式就应该是F(W),具体过程以后有需要再推导。
关于散度目标函数情形,直接贴图了。
- 非负矩阵分解(NMF)论文笔记(1)
- 非负矩阵分解(NMF)论文笔记(2)
- 非负矩阵分解(NMF)论文笔记(3)
- NMF(非负矩阵分解)算法
- 非负矩阵分解(NMF)
- NMF(非负矩阵分解)算法
- 非负矩阵分解(NMF)
- 非负矩阵分解(NMF)
- NMF 非负矩阵分解
- NMF 非负矩阵分解
- 非负矩阵分解NMF
- 非负矩阵分解NMF
- 非负矩阵分解NMF
- NMF非负矩阵分解
- 非负矩阵分解NMF
- NMF非负矩阵分解
- 非负矩阵分解NMF
- 非负矩阵分解NMF
- form表单上传附件的几种方法
- 通信猫调试软件(WINDOWS单文件绿色版 串口/并口/USB/TCP/UDP/HTTP/二维码。。。)
- 基于VxWorks系统的NVMe驱动
- Flink Table API和SQL实践
- iOS-使用AVCaptureSession自定义相机(AVFondation)
- 非负矩阵分解(NMF)论文笔记(1)
- POJ 1454 Factorial Frequencies 笔记
- Eclipse Git下载问题:Internal error; consult Eclipse error log.
- 3.shell脚本知识点学习二
- Andorid学习教程
- 分布式事务的基本概念
- ADO.NET
- vue keep-alive 数据更新问题
- /storage/emulated/0/Pictures中的“0”是什么意思?