【高级机器学习】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 1a+2 1 2 1b \begin{bmatrix} 1 \ 1 \ 1 \ 1 \end{bmatrix} a + \begin{bmatrix} 2 \ 1 \ 2 \ 1 \end{bmatrix} b 1 1 1 1a+2 1 2 1b

即:
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 散度、泊松似然等)。
  • 通过正则化减少基向量冗余,提升泛化能力。
相关推荐
HackTorjan14 小时前
2026年5月29日:全球首个通用人工智能操作系统正式发布,开启人机协同新纪元
人工智能
刘大猫.14 小时前
智造短剧新引擎:火山引擎上线「火山剧创 1.0」,制作效率提升 80%
人工智能·ai·chatgpt·机器人·大模型·火山引擎·短剧新引擎
红尘散仙14 小时前
我把终端小说阅读器接上了 AI Agent:TRNovel 现在能用 skill 生成书源了
人工智能·后端·rust
雅菲奥朗14 小时前
企业级 AI 自动化|OpenClaw 龙虾实战与认证
运维·人工智能·自动化·openclaw
HIT_Weston14 小时前
99、【Agent】【OpenCode】task 工具提示词(Slash command)(一)
人工智能·agent·opencode
25 Hz14 小时前
Mind 爱好者时空表征刊 第24期 | 时间结构学习、空间对时间表征的补偿、事件内部的时间扭曲……
人工智能
心中有国也有家14 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
海兰15 小时前
【文字三国志:第一篇】天命重构,大语言模型(LLM)动态生成文言风格的叙事文本的文字游戏
人工智能·游戏·语言模型
cxr82815 小时前
高分子复合材料 AI 逆向设计合——验证闭环、决策优化与中试放大
人工智能·材料逆向设计合成
litble15 小时前
如何速成LLM以伪装成一个AI研究者(6)——LoRA,Adapter,P-tuning,量化,QLoRA
人工智能·lora·量化·peft·qlora·高效微调