【高级机器学习】5. Dictionary learning and Non-negative matrix factorisation

字典学习(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\^\*α∗ 来最小化重构误差: α∗=arg⁡min⁡α∈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∗=arg⁡min⁡D∈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 *** ** * ** *** ### 五、一般形式 进一步简写为: min⁡D∈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:** min⁡D∈D∣X−DR∣F2 \\min_{D\\in\\mathcal{D}} \|X - DR\|_F\^2 D∈Dmin∣X−DR∣F2 * **固定 DDD,求 RRR:** min⁡R∈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 也可写为:

min⁡D∈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)在同一框架下的理解。

min⁡D∈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。

其优化目标为:

min⁡D∈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:

α∗=arg⁡min⁡α∈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)

目标函数为:

min⁡D∈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 散度、泊松似然等)。
  • 通过正则化减少基向量冗余,提升泛化能力。
相关推荐
IT_陈寒2 小时前
React 19新特性实战:5个提升开发效率的技巧与避坑指南
前端·人工智能·后端
声网2 小时前
主动交互和情境感知,AI 硬件是脱离手机屏幕掌控的蓝海机会丨硬件和端侧模型专场@RTE2025 回顾
人工智能·智能手机
WLJT1231231232 小时前
方寸之间藏智慧:家用电器的进化与生活革新
大数据·人工智能
创客匠人老蒋2 小时前
从自动驾驶到智能辅导:人工智能如何重塑商业与生活
人工智能·自动驾驶·生活
ar01232 小时前
AR眼镜在工业制造业的质量检测应用探讨
人工智能·ar
糯米导航2 小时前
解锁 AI 开发技能:环境搭建、工具详解与第一个 AI 程序实战
人工智能
pen-ai3 小时前
【高级机器学习】6. 稀疏编码与正则化
人工智能·机器学习
骑蜗牛散步3 小时前
安装 NVIDIA Container Runtime(含离线安装)
人工智能
美团技术团队3 小时前
美团开源LongCat-Audio-Codec,高效语音编解码器助力实时交互落地
人工智能