字典学习(Dictionary Learning)
一、基本概念
在自然语言中,字典是由若干"词条"组成的集合。而在机器学习中,我们希望找到一组通用的"词"(基向量) ,让每个样本都能由这些基的线性组合 来表示。
换言之,我们在问:是否存在一组常见的元素,可以用来表示或近似所有数据样本?
二、线性组合的例子
假设有如下两个基向量:
1 1 1 1\],\[2 1 2 1\] \\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \\end{bmatrix}, \\quad \\begin{bmatrix} 2 \\ 1 \\ 2 \\ 1 \\end{bmatrix} \[1 1 1 1\],\[2 1 2 1
一个样本可以表示为:
1 1 1 1\]a+\[2 1 2 1\]b \\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \\end{bmatrix} a + \\begin{bmatrix} 2 \\ 1 \\ 2 \\ 1 \\end{bmatrix} b \[1 1 1 1\]a+\[2 1 2 1\]b 即: x=Dα x = D \\alpha x=Dα 其中,DDD 为字典矩阵,α\\alphaα 为该样本的系数向量。 *** ** * ** *** ### 三、数学形式 设样本 x∈Rdx \\in \\mathbb{R}\^dx∈Rd,字典矩阵 D∈Rd×kD \\in \\mathbb{R}\^{d\\times k}D∈Rd×k。 我们希望找到一个最优系数 α∗\\alpha\^\*α∗ 来最小化重构误差: α∗=argminα∈Rk∣x−Dα∣2 \\alpha\^\* = \\arg \\min_{\\alpha \\in \\mathbb{R}\^k} \|x - D\\alpha\|\^2 α∗=argα∈Rkmin∣x−Dα∣2 其中,∣x∣=x⊤x\|x\| = \\sqrt{x\^\\top x}∣x∣=x⊤x 为 ℓ2\\ell_2ℓ2 范数。 对于多个样本 x1,x2,...,xn∈Rdx_1, x_2, \\dots, x_n \\in \\mathbb{R}\^dx1,x2,...,xn∈Rd,目标变为: D∗,α1∗,...,αn∗=argminD∈Rd×k,αi∈Rk1n∑i=1n∣xi−Dαi∣2 {D\^\*, \\alpha_1\^\*, \\dots, \\alpha_n\^\*} = \\arg \\min_{D \\in \\mathbb{R}\^{d\\times k}, \\alpha_i \\in \\mathbb{R}\^k} \\frac{1}{n} \\sum_{i=1}\^n \|x_i - D\\alpha_i\|\^2 D∗,α1∗,...,αn∗=argD∈Rd×k,αi∈Rkminn1i=1∑n∣xi−Dαi∣2 *** ** * ** *** ### 四、矩阵形式与Frobenius范数 将所有样本组合成矩阵: X=\[x1,x2,...,xn\]∈Rd×n X = \[x_1, x_2, \\dots, x_n\] \\in \\mathbb{R}\^{d\\times n} X=\[x1,x2,...,xn\]∈Rd×n 将所有系数组合成: R=\[α1,α2,...,αn\]∈Rk×n R = \[\\alpha_1, \\alpha_2, \\dots, \\alpha_n\] \\in \\mathbb{R}\^{k\\times n} R=\[α1,α2,...,αn\]∈Rk×n 则整体优化目标可写为: 1n∑i=1n∣xi−Dαi∣2=1n∣X−DR∣F2 \\frac{1}{n}\\sum_{i=1}\^n \|x_i - D\\alpha_i\|\^2 = \\frac{1}{n}\|X - DR\|_F\^2 n1i=1∑n∣xi−Dαi∣2=n1∣X−DR∣F2 其中,Frobenius 范数定义为: ∣∣X∣∣F=trace(X⊤X)=∑i=1d∑j=1nXi,j2 \|\|X\|\|_F = \\sqrt{\\text{trace}(X\^\\top X)} = \\sqrt{\\sum_{i=1}\^d \\sum_{j=1}\^n X_{i,j}\^2} ∣∣X∣∣F=trace(X⊤X) =i=1∑dj=1∑nXi,j2 *** ** * ** *** ### 五、一般形式 进一步简写为: minD∈D,,R∈R∣X−DR∣F2 \\min_{D \\in \\mathcal{D},, R \\in \\mathcal{R}} \|X - DR\|_F\^2 D∈D,,R∈Rmin∣X−DR∣F2 其中 D\\mathcal{D}D 和 R\\mathcal{R}R 分别为 DDD 与 RRR 的约束域(例如列归一化、稀疏性、非负性等)。 *** ** * ** *** ### 六、优化特性 该目标函数在固定 DDD 或固定 RRR 时是**凸的** ,但对二者同时并不凸。 因此常用交替最小化(Alternating Minimization)策略: * **固定 RRR,求 DDD:** minD∈D∣X−DR∣F2 \\min_{D\\in\\mathcal{D}} \|X - DR\|_F\^2 D∈Dmin∣X−DR∣F2 * **固定 DDD,求 RRR:** minR∈R∣X−DR∣F2 \\min_{R\\in\\mathcal{R}} \|X - DR\|_F\^2 R∈Rmin∣X−DR∣F2 若 (D∗,R∗)(D\^\*, R\^\*)(D∗,R∗) 为局部极小解,则存在可逆矩阵 AAA 满足: X≈D∗R∗=(D∗A)(A−1R∗) X \\approx D\^\* R\^\* = (D\^\*A)(A\^{-1}R\^\*) X≈D∗R∗=(D∗A)(A−1R∗) 表明这种分解不是唯一的。 可选的归一化步骤为: D:,i←D:,i∣∣D:,i∣∣ D_{:,i} \\leftarrow \\frac{D_{:,i}}{\|\|D_{:,i}\|\|} D:,i←∣∣D:,i∣∣D:,i *** ** * ** *** ### 七、与经典方法的关系 #### 1. 奇异值分解(SVD) SVD 将矩阵表示为: X=UΣV⊤ X = U\\Sigma V\^\\top X=UΣV⊤ 这也是一种特殊的字典学习形式。 其中: * 字典:D=UD = UD=U * 系数:R=ΣV⊤R = \\Sigma V\^\\topR=ΣV⊤ 它给出在 ∣X−DR∣F2\|X - DR\|_F\^2∣X−DR∣F2 意义下的最优低秩近似。 *** ** * ** *** #### 2. 主成分分析(PCA) PCA 可写作: A=UΛU⊤ A = U\\Lambda U\^\\top A=UΛU⊤ 同样可以视为: D=\[u1,u2,...,uk\],R=Λ\[u1⊤,u2⊤,...,uk⊤\] D = \[u_1, u_2, \\dots, u_k\], \\quad R = \\Lambda \[u_1\^\\top, u_2\^\\top, \\dots, u_k\^\\top\] D=\[u1,u2,...,uk\],R=Λ\[u1⊤,u2⊤,...,uk⊤
要求:
D⊤D=I D^\top D = I D⊤D=I
即字典的列向量两两正交。
3. K-means 聚类
K-means 也可写为:
minD∈D,,R∈R∣X−DR∣F2 \min_{D\in\mathcal{D},, R\in\mathcal{R}} |X - DR|_F^2 D∈D,,R∈Rmin∣X−DR∣F2
特殊约束是:
每一列的系数 R:,iR_{:,i}R:,i 中只有一个元素为1,其余为0 。
此时字典 DDD 的列就是各簇的质心。
八、总结
字典学习的核心思想是:
通过学习一个字典 DDD 和表示矩阵 RRR,让 X≈DRX \approx DRX≈DR,并通过对 DDD 与 RRR 的不同约束形式,统一了多种经典方法(SVD、PCA、K-means)在同一框架下的理解。
minD∈D,,R∈R∣X−DR∣F2 \min_{D\in\mathcal{D},, R\in\mathcal{R}} |X - DR|_F^2 D∈D,,R∈Rmin∣X−DR∣F2
九、非负矩阵分解(Non-negative Matrix Factorisation, NMF)
1. 为什么数据常常是非负的?
在许多实际任务中,数据本身就具有非负性。例如:
- 图像像素强度(Image intensities)
- 电影评分(Movie ratings)
- 文本词频(Document-term counts)
- 基因表达或芯片数据(Microarray data)
- 股票市场价格(Stock market values)
这些特征都不能为负,因此在模型中引入非负约束是符合数据性质的。
2. NMF 的基本形式
非负矩阵分解的目标与字典学习一致,都是希望通过两个矩阵的乘积来近似原始数据矩阵 XXX。
其优化目标为:
minD∈D,R∈R∣X−DR∣F2 \min_{D \in \mathcal{D}, R \in \mathcal{R}} |X - DR|_F^2 D∈D,R∈Rmin∣X−DR∣F2
特殊约束条件为:
D=R∗+d×k,R=R∗+k×n \mathcal{D} = \mathbb{R}*+^{d\times k}, \quad \mathcal{R} = \mathbb{R}*+^{k\times n} D=R∗+d×k,R=R∗+k×n
即 DDD 与 RRR 中的所有元素都要求非负。
3. 几何解释:非负约束的意义
非负性约束意味着系数的组合只能是加性(additive) ,不能相互抵消。
例如,若我们有两个基向量 xxx 和 yyy,则它们的非负组合为:
θx+(1−θ)y,θ∈[0,1] \theta x + (1 - \theta) y, \quad \theta \in [0,1] θx+(1−θ)y,θ∈[0,1]
几何上,这样的组合位于连接 xxx 与 yyy 的线段上。
在更高维空间中,若字典矩阵 DDD 含有三列基向量 D:,1,D:,2,D:,3D_{:,1}, D_{:,2}, D_{:,3}D:,1,D:,2,D:,3,那么所有样本点 xix_ixi 将分布在由这三个基向量张成的**非负锥体(cone)或单纯形(simplex)**内。
D=R∗+d×k,R=R∗+k×n \mathcal{D} = \mathbb{R}*+^{d\times k}, \quad \mathcal{R} = \mathbb{R}*+^{k\times n} D=R∗+d×k,R=R∗+k×n
4. 非负约束带来的"部件式表示"
由于非负性只允许加法而禁止减法,NMF 所学到的表示是一种部件式(parts-based)表示 。
在视觉上,这意味着模型倾向于把整体拆分成若干有意义的部分(例如人脸的眼睛、鼻子、嘴等),而不是全局正负叠加的线性组合。
因此 NMF 常用于模式分解、图像理解和主题分析等场景。
5. NMF 的重构过程示例
对单一样本 xxx:
α∗=argminα∈R+k∣x−Dα∣2 \alpha^* = \arg\min_{\alpha \in \mathbb{R}^k_+} |x - D\alpha|^2 α∗=argα∈R+kmin∣x−Dα∣2
在图像任务中,DDD 表示若干"局部特征基"(如眼睛、嘴巴等),α\alphaα 表示它们在该图像中的权重。
X≈DRX \approx DRX≈DR 的分解结果相当于把整体图像用若干"非负基块"加起来重构。
6. NMF 的优化:乘法更新规则(Multiplicative Update Rules, MUR)
目标函数为:
minD∈D,R∈R∣X−DR∣F2 \min_{D \in \mathcal{D}, R \in \mathcal{R}} |X - DR|_F^2 D∈D,R∈Rmin∣X−DR∣F2
固定 DDD,对 RRR 求偏导:
∂∣X−DR∣F2∂R=−2D⊤X+2D⊤DR \frac{\partial |X - DR|_F^2}{\partial R} = -2D^\top X + 2D^\top DR ∂R∂∣X−DR∣F2=−2D⊤X+2D⊤DR
7. 乘法更新规则推导
当固定 DkD^kDk 时,更新 Rk+1R^{k+1}Rk+1:
Ri,jk+1=Ri,jk(Dk⊤X)∗i,j(Dk⊤DkRk)∗i,j R_{i,j}^{k+1} = R_{i,j}^k \frac{(D^{k\top} X)*{i,j}}{(D^{k\top} D^k R^k)*{i,j}} Ri,jk+1=Ri,jk(Dk⊤DkRk)∗i,j(Dk⊤X)∗i,j
再固定 Rk+1R^{k+1}Rk+1,更新 Dk+1D^{k+1}Dk+1:
Di,jk+1=Di,jk(XRk+1⊤)∗i,j(DkRk+1Rk+1⊤)∗i,j D_{i,j}^{k+1} = D_{i,j}^k \frac{(X R^{k+1\top})*{i,j}}{(D^k R^{k+1} R^{k+1\top})*{i,j}} Di,jk+1=Di,jk(DkRk+1Rk+1⊤)∗i,j(XRk+1⊤)∗i,j
8. 理论保证
定理:
以上乘法更新规则能保证目标函数 ∣X−DR∣F2|X - DR|_F^2∣X−DR∣F2 单调不增 。
当且仅当 Dk+1D^{k+1}Dk+1 与 Rk+1R^{k+1}Rk+1 处于目标函数的驻点时,函数值保持不变。
9. NMF 的优缺点与拓展
Pros
- 结果具有极强的可解释性(部件式表示)。
- 特征分量往往对应可观测或语义上独立的"成分"。
Cons
- 分解结果不唯一 (同一矩阵可由不同的 D,RD, RD,R 得到)。
- 基之间可能存在冗余(不同列可能表达相似的特征)。
NMF 的变体
- 结合不同的损失函数(除平方误差外,如 KL 散度、泊松似然等)。
- 通过正则化减少基向量冗余,提升泛化能力。