当前位置: 首页 > news >正文

【高级机器学习】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}^dxRd,字典矩阵 D∈Rd×kD \in \mathbb{R}^{d\times k}DRd×k
我们希望找到一个最优系数 α∗\alpha^*α 来最小化重构误差:

α∗=arg⁡min⁡α∈Rk∣x−Dα∣2 \alpha^* = \arg \min_{\alpha \in \mathbb{R}^k} |x - D\alpha|^2 α=argαRkminxDα2

其中,∣x∣=x⊤x|x| = \sqrt{x^\top x}x=xxℓ2\ell_22 范数。

对于多个样本 x1,x2,…,xn∈Rdx_1, x_2, \dots, x_n \in \mathbb{R}^dx1,x2,,xnRd,目标变为:

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=argDRd×k,αiRkminn1i=1nxiDαi2


四、矩阵形式与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=1nxiDαi2=n1XDRF2

其中,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} ∣∣XF=trace(XX)=i=1dj=1nXi,j2


五、一般形式

进一步简写为:

min⁡D∈D,,R∈R∣X−DR∣F2 \min_{D \in \mathcal{D},, R \in \mathcal{R}} |X - DR|_F^2 DD,,RRminXDRF2

其中 D\mathcal{D}DR\mathcal{R}R 分别为 DDDRRR 的约束域(例如列归一化、稀疏性、非负性等)。


六、优化特性

该目标函数在固定 DDD 或固定 RRR 时是凸的,但对二者同时并不凸。
因此常用交替最小化(Alternating Minimization)策略:

  • 固定 RRR,求 DDD
    min⁡D∈D∣X−DR∣F2 \min_{D\in\mathcal{D}} |X - DR|_F^2 DDminXDRF2

  • 固定 DDD,求 RRR
    min⁡R∈R∣X−DR∣F2 \min_{R\in\mathcal{R}} |X - DR|_F^2 RRminXDRF2

(D∗,R∗)(D^*, R^*)(D,R) 为局部极小解,则存在可逆矩阵 AAA 满足:

X≈D∗R∗=(D∗A)(A−1R∗) X \approx D^* R^* = (D^*A)(A^{-1}R^*) XDR=(DA)(A1R)

表明这种分解不是唯一的。
可选的归一化步骤为:

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^2XDRF2 意义下的最优低秩近似。


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 DD=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 DD,,RRminXDRF2

特殊约束是:
每一列的系数 R:,iR_{:,i}R:,i只有一个元素为1,其余为0
此时字典 DDD 的列就是各簇的质心。


八、总结

字典学习的核心思想是:
通过学习一个字典 DDD 和表示矩阵 RRR,让 X≈DRX \approx DRXDR,并通过对 DDDRRR 的不同约束形式,统一了多种经典方法(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 DD,,RRminXDRF2

九、非负矩阵分解(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 DD,RRminXDRF2

特殊约束条件为:

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

DDDRRR 中的所有元素都要求非负。


3. 几何解释:非负约束的意义

非负性约束意味着系数的组合只能是加性(additive),不能相互抵消。
例如,若我们有两个基向量 xxxyyy,则它们的非负组合为:

θx+(1−θ)y,θ∈[0,1] \theta x + (1 - \theta) y, \quad \theta \in [0,1] θx+(1θ)y,θ[0,1]

几何上,这样的组合位于连接 xxxyyy 的线段上。

在更高维空间中,若字典矩阵 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+kminxDα2

在图像任务中,DDD 表示若干“局部特征基”(如眼睛、嘴巴等),α\alphaα 表示它们在该图像中的权重。
X≈DRX \approx DRXDR 的分解结果相当于把整体图像用若干“非负基块”加起来重构。


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 DD,RRminXDRF2

固定 DDD,对 RRR 求偏导:

∂∣X−DR∣F2∂R=−2D⊤X+2D⊤DR \frac{\partial |X - DR|_F^2}{\partial R} = -2D^\top X + 2D^\top DR RXDRF2=2DX+2DDR


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(DkDkRk)i,j(DkX)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^2XDRF2 单调不增
当且仅当 Dk+1D^{k+1}Dk+1Rk+1R^{k+1}Rk+1 处于目标函数的驻点时,函数值保持不变。


9. NMF 的优缺点与拓展

Pros

  • 结果具有极强的可解释性(部件式表示)。
  • 特征分量往往对应可观测或语义上独立的“成分”。

Cons

  • 分解结果不唯一(同一矩阵可由不同的 D,RD, RD,R 得到)。
  • 基之间可能存在冗余(不同列可能表达相似的特征)。

NMF 的变体

  • 结合不同的损失函数(除平方误差外,如 KL 散度、泊松似然等)。
  • 通过正则化减少基向量冗余,提升泛化能力。
http://www.dtcms.com/a/605145.html

相关文章:

  • PPTX 格式的底层数据结构
  • 前端错误监控与上报:Sentry 接入与自定义告警规则
  • 27.Telnet
  • 多级缓存体系与热点对抗术--速度是用户体验的王道,而缓存是提升速度的银弹
  • CPU 缓存 高并发探索
  • 郑州三牛网站建设企业邮箱号码从哪里查
  • 《C++在量化、KV缓存与推理引擎的深耕》
  • php网站建立教程wordpress 合并js
  • [MSSQL] 读写分离(主从备份)
  • 潮州市住房和城乡建设局网站石英手表网站
  • Spring Boot 应用的云原生 Docker 化部署实践指南
  • tekla 使用笔记 切管 分割指定长度的管
  • 算法(二)滑动窗口
  • 《从根上理解MySQL》第一章学习笔记
  • C++笔记 详解虚基表跟虚函数表
  • 【开源-AgentRL】创新强化学习 多项任务超闭源模型
  • 渝水区城乡建设局网站有哪些wordpress博客
  • 龙岩网站推广软件wordpress文章图片粘贴固定大小
  • 物联网运维中的多模态数据融合与智能决策优化技术
  • lora学习
  • DR模式 LVS负载均衡群集
  • 【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 C
  • openGauss 数据库快速上手评测:从 Docker 安装到SQL 实战
  • ffmpeg离线安装到服务器:解决conda/sudo/无法安装的通用方案
  • 力扣--两数之和(Java)
  • wordpress翻译公司网站吕梁网站制作
  • Lanelet2 OSM数据格式详解
  • 分布式系统保证数据强一致性的示例
  • Spring Boot性能提升的核武器,速度提升500%!
  • SOLIDWORKS 2025设计效率的大幅提高