非负矩阵分解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0.001
0.0001
NNSC η, λ =0.001误差 Error_0001 = 4.751*10^3
NNSC η, λ =0.0001误差 Error_00001 = 2.354*10^3
六、稀疏非负矩阵分解(SNMF)
迭代次数r=n/2,最大迭代次数maxiter=100时,特别地,由于式子中有常数因子β 出现,则现令β = 0.001,与非负稀松编码(NNSC)比较如下:
下面我们来看下效果对比。
其中误差是指 Error = X – BC;
二、假设噪声服从泊松分布 同高斯分布最大似然函数:
L(B,C) [ X ij log(BC)ij (BC)ij log( X ij!)] ij
又同理得到加性迭代规则:
Bik
Bik
ik [
j
Ckj
X ij ( B C) ij
非负矩阵分解的几种方法初窥
引论
矩阵分解是实现大规模数据处理与分析的一 种有效的工具,非负矩阵分解(nonnegative matrix factorization,NMF)算法是 在矩阵中所有元素均为非负的条件下对其实 现的非负分解。
非负矩阵分解的定义
假设处理m个n维空间的样本数据,用 Xnm表示。该数据矩 阵中各个元素都是非负的,表示为X >= 0 。对矩阵 X 进行 线性分解,有
如果令
ik
Bik (BCCT )ik
,kj
Ckj (BT BC)kj
加性迭代就成为了乘性迭代规则:
Bik
Bik
( XCT )ik (BCCT )ik
, Ckj
Ckj
(BT X )kj (BT BC)kj
式子中的k即为分解矩阵中的r,显然r值越大分解 效果越好但同时也就是失去了我们降维的初衷。 但降的维数又不能太小,否则会失去样本本来的 一些特性。同时根据迭代特性,迭代次数越多分 解越精确。
从以上分析可以看到,当考虑不同的噪声类型 时,可以得到不同的目标函数用来实现矩阵分 解。
下面看下泊松噪声和高斯噪声的对比
三、假设噪声服从拉普拉斯分布
同理得到拉普拉斯噪声的迭代公式:
Bik Bik jCkj X ij (BC)ij
Bik
Bik l Blk
Ckj Ckj i Bik X ij (BC)ij
并忽略因子1/2和常数项 log( ij
2 ij )
则得到
采用传统的梯度法,有:
LED Lik
2[( XCT )ik
(BBCXCT )ik
(BT BC)kj ].
于是得到如下的加性迭代规则 :
Bik Bik ik [(XCT )ik (BCCT )ik ] Ckj Ckj kj[(BT X )kj (BT BC)kj ]
r = n/2 ,maxiter = 200 返回
二、假设噪声服从泊松分布
迭代次数r=n/2,最大迭代次数maxiter=100时,与高斯分布的效果图 对比如下:
高斯分布 高斯分布误差 Error_GS = 2.487*10^3 泊松分布误差 Error_PS = 2.086*10^3
泊松分布
返回
拉普拉斯分布
局部非负矩阵分解
拉普拉斯分布误差 Error_LPLS = 2.071*10*3 局部非负矩阵分解误差 Error_LNMF = 2.040*10^3
返回
五、非负稀疏编码(NNSC)
迭代次数r=n/2,最大迭代次数maxiter=100时,特别地,由于使用加性迭代,迭 式子中出现η和λ常量, 现取η, λ =0.001和0.0001,效果对比如下:
LNMF
NFE
局部非负矩阵分解误差 Error_LNMF = 2.040*10^3
非负因子提取法分解误差 Error_NFE = 1.439*10^3
X nm Bnr Crm
其中B 称为基矩阵,C为系数矩阵。若选择r比n小,用系 数矩阵代替原数据矩阵,就可以实现对原矩阵的降维
非负矩阵的概率模型
将矩阵分解看成如下含线性噪声的线性混合体模型:
X nm BnrCrm Enm
其中E为噪声矩阵。进一步,也可以写成
X ij BC ij Eij
X
ij
(BC)ij ij
2
( 2 ij )
现令
p(X B,C) p(Xij B,C) ij
则最大似然函数解是最小化如下的损失函数:
L(B, C)
1 2
ij
[ X ij
(BC)ij ]2
2 ij
log(
ij
2 ij )
令 ij 1
三、假设噪声服从拉普拉斯分布
迭代次数r=n/2,最大迭代次数maxiter=100时,与高斯分布的效果图对比如下:
高斯分布
拉普拉斯分布
高斯分布误差 Error_GS = 2.487*10^3 拉普拉斯分布误差 Error_LPLS = 2.071*10*3
返回
四、局部非负矩阵分解(LNMF)
迭代次数r=n/2,最大迭代次数maxiter=100时,与NMF中效果最好的拉普拉斯分布 的效果图对比如下:
为了求解因子矩阵B,C,考虑如下的最大似然解
B,C argmax pX B,C argmin log pX B,C
B,C
B,C
假设噪声服从不同的概率分布,就可以得到不同类型的目标 函数。
一、考虑噪声服从高斯分布
由上式得到:
p( X ij B,
C)
exp
1 2
与高斯噪声效果对比
四、局部非负矩阵分解(LNMF)
LNMF要求一个基向量的各个成分不应该被分解得太多;同时 用来表示原始数据的基向量的成分数目尽可能的小;基向量尽 可能接近正交化;含有重要信息的被保留,其迭代规则有:
Bik
Bik
jCkj X ij (BC)ij jCkj
Bik
Bik l Blk
r = n/2 ,maxiter =100 误差 Error = 3.191*10^3
r = n/4 , maxiter = 100
3)迭代次数r=n/2,最大迭代次数maxiter=200时,效果图对比如下:
r = n/2 , maxiter = 100 误差 Error = 2.301*10^3
NNSC η, λ = 0.001
SNMF β = 0.001
NNSC η, λ =0.001误差 Error_NNSC_0001 = 4.751*10^3
SNMF β = 0.001误差 Error_SNMF_0001 = 2.092*10^3
七、非负因子提取法(NFE)
迭代次数r=n/2,最大迭代次数maxiter=100时,与目前为止效果最好的LNMF对比 如下:
Ckj Ckj i Bik X ij (BC)ij
效果与拉普拉斯对比 此外还有一些非负矩阵分解法效果
一、假设噪声服从高斯分布
1)迭代次数r=n/2,最大迭代次数maxiter=100时,效果图对比如下:
原图 误差 Error = 2.487*10^3
分解后
2)迭代次数r=n/4,最大迭代次数maxiter=100时,效果图对比如下:
Ckj ]
j
Ckj Ckj kj[ i
Bik
X ij ( B C) ij
i
Bik ]
设置
ik
Bik Ckj
,kj
Ckj 得到乘性迭代规则: Bik
j
i
Bik
Bik
jCkj X ij (BC)ij jCkj
Ckj
Ckj
i Bik
X ij (BC)ij i Bik