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