好难啊,看的头疼。争取十一写出来。
1.非负矩阵分解
假定非负矩阵 X ∈ R d × n X\in R^{d\times n} X∈Rd×n, A ∈ R d × k A\in R^{d\times k} A∈Rd×k, B ∈ R n × k B\in R^{n\times k} B∈Rn×k为矩阵分解后的非负子矩阵,k远小于 d d d和 n n n.
X + ≈ A + B + T X_+\approx A_+B^T_+ X+≈A+B+T
- 降维
A可以理解为降维后的特征与原始数据之间的关系,B为降维后的数据。 - 聚类
A为聚类后每一簇的样本中心点,B为每一个数据的指示矩阵,或者数据的簇划分。
求解AB的过程常采用最小化代价函数,代价函数常采用误差平方和。
min A ⩾ 0 , B ⩾ 0 ∥ X − A B T ∥ 2 \mathop {\min }\limits_{A \geqslant 0,B \geqslant 0} {\left\| {X - A{B^T}} \right\|^2} A⩾0,B⩾0min∥∥X−ABT∥∥2
2.非负矩阵的变形
2.1 Semi-NMF
2.2 Convex-NMF
2.3 Tri-NMF
2.4 Kernel-NMF
3.非负矩阵分解的算法
3.1梯度下降
3.2乘法算法
3.3交替最小二乘法
3.4拟牛顿法
3.5分层分解法
4.正交非负矩阵分解与K-means
目标函数以误差平方和计算:
min A ⩾ 0 , B ⩾ 0 ∥ X − A B T ∥ 2 \mathop {\min }\limits_{A \geqslant 0,B \geqslant 0} {\left\| {X - A{B^T}} \right\|^2} A⩾0,B⩾0min∥∥X−ABT∥∥2
约束为 B T B = I {B^T}B=I BTB</