非负矩阵分解1.pptVIP

  • 52
  • 0
  • 约2.34千字
  • 约 20页
  • 2016-12-25 发布于重庆
  • 举报
引论 矩阵分解是实现大规模数据处理与分析的一种有效的工具,非负矩阵分解(non-negative matrix factorization,NMF)算法是在矩阵中所有元素均为非负的条件下对其实现的非负分解。 非负矩阵分解的定义 假设处理m个n维空间的样本数据,用 表示。该数据矩阵中各个元素都是非负的,表示为X = 0 。对矩阵 X 进行线性分解,有 其中B 称为基矩阵,C为系数矩阵。若选择r比n小,用系数矩阵代替原数据矩阵,就可以实现对原矩阵的降维 非负矩阵的概率模型 将矩阵分解看成如下含线性噪声的线性混合体模型: 其中E为噪声矩阵。进一步,也可以写成 为了求解因子矩阵B,C,考虑如下的最大似然解 假设噪声服从不同的概率分布,就可以得到不同类型的目标函数。 一、考虑噪声服从高斯分布 二、假设噪声服从泊松分布 同高斯分布最大似然函数: 又同理得到加性迭代规则: 设置 得到乘性迭代规则: 四、局部非负矩阵分解(LNMF) LNMF要求一个基向量的各个成分不应该被分解得太多;同时用来表示原始数据的基向量的成分数目尽可能的小;基向量尽可能接近正交化;含有重要信息的被保留,其迭代规则有: 效果与拉普拉斯对比 此外还有一些非负矩阵分解法效果 一、假设噪声服从高斯分布 1)迭代次数r=n/2,最大迭代次数maxiter=100时,效果图对比如下: 2)迭代次数r=n/4,最大迭代次数maxiter=100时,效果图对比如下: 3)迭代次数r=n/2,最大迭代次数maxiter=200时,效果图对比如下: 二、假设噪声服从泊松分布 迭代次数r=n/2,最大迭代次数maxiter=100时,与高斯分布的效果图对比如下: 三、假设噪声服从拉普拉斯分布 迭代次数r=n/2,最大迭代次数maxiter=100时,与高斯分布的效果图对比如下: 四、局部非负矩阵分解(LNMF) 迭代次数r=n/2,最大迭代次数maxiter=100时,与NMF中效果最好的拉普拉斯分布 的效果图对比如下: 五、非负稀疏编码(NNSC) 迭代次数r=n/2,最大迭代次数maxiter=100时,特别地,由于使用加性迭代,迭 式子中出现η和λ常量, 现取η, λ =0.001和0.0001,效果对比如下: 六、稀疏非负矩阵分解(SNMF) 迭代次数r=n/2,最大迭代次数maxiter=100时,特别地,由于式子中有常数因子β 出现,则现令β = 0.001,与非负稀松编码(NNSC)比较如下: 七、非负因子提取法(NFE) 迭代次数r=n/2,最大迭代次数maxiter=100时,与目前为止效果最好的LNMF对比 如下: * 非负矩阵分解的几种方法初窥 由上式得到: 现令 则最大似然函数解是最小化如下的损失函数: 令 并忽略因子1/2和常数项 则得到 采用传统的梯度法,有: 于是得到如下的加性迭代规则 : 如果令 加性迭代就成为了乘性迭代规则: 式子中的k即为分解矩阵中的r,显然r值越大分解效果越好但同时也就是失去了我们降维的初衷。但降的维数又不能太小,否则会失去样本本来的一些特性。同时根据迭代特性,迭代次数越多分解越精确。 下面我们来看下效果对比。 其中误差是指 Error = X – BC; 从以上分析可以看到,当考虑不同的噪声类型时,可以得到不同的目标函数用来实现矩阵分解。 下面看下泊松噪声和高斯噪声的对比 从以上分析可以看到,当考虑不同的噪声类型时,可以得到不同的目标函数用来实现矩阵分解。 下面看下泊松噪声和高斯噪声的对比 同理得到拉普拉斯噪声的迭代公式: 与高斯噪声效果对比 三、假设噪声服从拉普拉斯分布 原图 分解后 误差 Error = 2.487*10^3 r = n/2 ,maxiter =100 r = n/4 , maxiter = 100 误差 Error = 3.191*10^3 r = n/2 , maxiter = 100 r = n/2 ,maxiter = 200 误差 Error = 2.301*10^3 返回 高斯分布 泊松分布 高斯分布误差 Error_GS = 2.487*10^3 泊松分布误差 Error_PS = 2.086*10^3 返回 高斯分布 拉普拉斯分布 高斯分布误差 Error_GS = 2.487*10^3 拉普拉斯分布误差 Error_LPLS = 2.071*10*3 返回 拉普拉斯分布 局部非负矩阵分解 拉普拉斯分布误差 Error_LPLS = 2.071*10*3 局部非负矩阵分解误差

文档评论(0)

1亿VIP精品文档

相关文档