非负矩阵分解(1):准则函数及KL散度
作者:桂。
时间:2017-04-06 12:29:26
链接:http://www.cnblogs.com/xingshansi/p/6672908.html
声明:欢迎被转载,不过记得注明出处哦~

前言
之前在梳理最小二乘的时候,矩阵方程有一类可以利用非负矩阵分解(Non-negative matrix factorization, NMF)的方法求解,经常见到别人提起这个算法,打算对此梳理一下。优化问题求解,最基本的是问题描述与准则函数的定义,紧接着才涉及准则函数的求解问题,本文为NMF系列第一篇,主要梳理:
1)矩阵方程基本问题;
2)准则函数定义;
内容为自己的学习总结,其中多有借鉴他人的地方,最后一并给出链接。
一、矩阵方程基本问题
本段描述NMF对应的基本问题。
许多问题都可以建模成矩阵方程:
${\bf{AS}} = {\bf{X}}$
其中根据向量
和矩阵
的不同,矩阵方程的求解主要分为以下三类问题:
1)超定矩阵方程;m>n,$\bf{X}$和$\bf{A}$均已知,其中之一或二者可能存在观测误差、干扰;
2)盲矩阵方程:仅向量$\bf{X}$已知,矩阵$\bf{A}$未知;
3)欠定稀疏矩阵方程:m<n,$\bf{X}$和$\bf{A}$均已知.
每一类问题,都有对应的方法:如对于盲矩阵方程,由于只有观测向量$\bf{X}$,因此引入误差的时候只能假设观测向量存在误差,而不会像最小二乘那样分为普通最小二乘、数据最小二乘、总体最小二乘。给出矩阵方程及对应求解的示意图:

其实${\bf{AS}} = {\bf{X}}$仅仅是一个线性表达,求解本身没有非负的限制。但对于现实中很多应用:比如一张图片,可以认为它由鼻子、眼睛、眉毛...等等拼成,每一个成分对应一些像素值,而这些理论上都应该是非负的,因此在一些矩阵求解问题中,我们希望加入非负的限制。本系列文章主要针对其中的:盲矩阵方程求解——非负矩阵分解算法。
二、准则函数定义
这里只分析最常用的两类准则函数,对于广义AB-散度不作讨论。假设非负矩阵${\bf{X}}$可以分解成:
${\bf{AS}} = {\bf{X}}$
由于观测数据${\bf{X}}$难免带来误差,因此有:
${\bf{X}} = {\bf{AS}} + \bf{N}$
针对误差最小化,引入准则函数:

下面分析准则函数$D\left( {{\bf{X}}|{\bf{AS}}} \right)$.
A-平方欧几里得(Euclidean)距离
当假设误差服从正态分布时,此时的最大似然估计与最小二乘等价,此时对应的准则函数为平方Euclidean距离,有时为了求导方便常添加比例系数1/2:

B-Kullback-Leibler(KL)散度
1-KL定义
首先给出KL散度定义:

KL散度与Euclidean距离不同,是非对称的。
2-KL的含义
KL不像Euclidean那么直观,这就有了一个疑问?这么古怪的家伙是从哪冒出来的?
下面一点点理解。

从图中很容易求解$(x_0,y_0)$处的切线方程,其实$x$如果接近$x_0$,这就是一阶Taylor近似,写成更一般的形式:

一阶Taylor逼近的误差则定义为:

推广开来这就是Bregman距离:
令$\phi $:
为定义在闭合凸集
的一连续可微分凸函数。与函数$\phi $对应的两个向量:
之间的Bregman距离记作:
,定义为:
如果$\phi $取凸函数:
其实如果$x_i$看作是概率密度,这个就是熵的表达式啊,也就是这里函数调用熵的形式。此时,Bregman距离对应的就是Kullback-Leibler散度,也叫信息散度、信息增益、相对熵、I散度。
从而可以得到:

对号入座,同样可以得出准则函数:
这样一来,KL散度的实际意义就比较明显了:它表达了不同信息熵一阶Taylor的近似,如果细究,二阶、三阶....Taylor近似同样可以得出。
3-KL对应分布
Euclidean距离对应:误差服从正态分布,KL散度是不是也该对应某种分布?答案是当然——泊松分布。泊松分布前面有文章分析过。泊松分布就常见的计数过程,描述的是一段时间事件发生的次数,与它关联较大的一个是二项分布,一个是指数分布。不过这里分析完之后,是不是该多出一个疑问:泊松分布与信息熵有何关系?下面说说泊松分布为什么可以对应KL散度。
给出泊松分布的定义:

从而对于两个分布:

概率相比并取对数:

已经有点KL散度的味道了,因为$x$是随机数,所以需要进行基于统计意义的均值计算:

KL散度就这么推导出来了。
参考:
张贤达《矩阵分析与应用》
非负矩阵分解(1):准则函数及KL散度的更多相关文章
- 非负矩阵分解(4):NMF算法和聚类算法的联系与区别
作者:桂. 时间:2017-04-14 06:22:26 链接:http://www.cnblogs.com/xingshansi/p/6685811.html 声明:欢迎被转载,不过记得注明出处 ...
- KL散度相关理解以及视频推荐
以下内容基于对[中字]信息熵,交叉熵,KL散度介绍||机器学习的信息论基础这个视频的理解,请务必先看几遍这个视频. 假设一个事件可能有多种结果,每一种结果都有其发生的概率,概率总和为1,也即一个数据分 ...
- 非负矩阵分解NMF
http://blog.csdn.net/pipisorry/article/details/52098864 非负矩阵分解(NMF,Non-negative matrix factorization ...
- PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...
- 推荐算法——非负矩阵分解(NMF)
一.矩阵分解回想 在博文推荐算法--基于矩阵分解的推荐算法中,提到了将用户-商品矩阵进行分解.从而实现对未打分项进行打分. 矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积.对于上述的用户-商品矩阵 ...
- 非负矩阵分解(NMF)原理及算法实现
一.矩阵分解回想 矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积.对于上述的用户-商品(评分矩阵),记为能够将其分解为两个或者多个矩阵的乘积,如果分解成两个矩阵和 .我们要使得矩阵和 的乘积能够还 ...
- paper 23 :Kullback–Leibler divergence KL散度(2)
Kullback–Leibler divergence KL散度 In probability theory and information theory, the Kullback–Leibler ...
- 深度学习中交叉熵和KL散度和最大似然估计之间的关系
机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论 ...
- KL散度(Kullback–Leibler divergence)
KL散度是度量两个分布之间差异的函数.在各种变分方法中,都有它的身影. 转自:https://zhuanlan.zhihu.com/p/22464760 一维高斯分布的KL散度 多维高斯分布的KL散度 ...
随机推荐
- 微信公众平台开发-OAuth2.0网页授权(含源码)
微信公众平台开发-OAuth2.0网页授权接口.网页授权接口详解(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 在微信开发的高级应用中,几乎都会使用到该接口,因为通过该接口,可以获 ...
- Hibernate框架双向多对多关联映射关系
建立双向多对多关联关系 Project.java (项目表) private Integer proid; private Strin ...
- 版本管理工具 —— SVN
想想我们在开发过程中是不是会遇到这样的情况: 今天写了很长的一段代码,觉得不合理,然后删了,第二天突然发现昨天的那段代码才是正确的,那怎么办,也无法撤销删除的代码? 还有团队中多人共同开发一个项目,如 ...
- .NET MD5加密解密代码
MD5简介: 是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是MD2.MD4还是MD5,它们都需要获 ...
- KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架之koahub-loader
koahub loader Installation $ npm install koahub-loader Use with koa // 1.model loader var model = ...
- 容斥原理及SQL in关键字在EF中的应用
突然意识到文字的重要性,于是开始写了第一个篇博客,博客目的紧紧为记录,以便温故. 同时也希望抛砖能达到引玉的作用,欢迎各位来发表自己的感想与想法,以此达到相互学习促进! 背景: 在做百度地图电子围栏的 ...
- GitHub开源:升讯威ADO.NET增强组件 sheng.ADO.NET.Plus V1.3
GitHub: https://github.com/iccb1013/sheng.ADO.NET.Plus 早前分享过,当时没有把代码上传到Github,只是通过邮件的形式分享给了部分需要的朋友,最 ...
- curl中通过json格式吧post值返回到java中遇到中文乱码的问题
首先是: curl中模拟http请求: curl -l 127.0.0.1:8080/spacobj/core/do?acid=100 -H "token:101hh" -H &q ...
- 利用Register protocol实现网页调用桌面程序(类似迅雷、QQ等)
前言 我们经常看到 tencent://.. thunder:// 这两种开头的网址,往往觉得很奇怪,很想弄懂其中的原理,是如何实现的,我查找了相关的 资料,终于找到了,跟大家分享下. 原理篇 ...
- iOS开发之UIWindow
1.概述 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow. iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制 ...
为定义在闭合凸集
的一连续可微分凸函数。与函数$\phi $对应的两个向量:
之间的Bregman距离记作:
,定义为: