第十四讲 · 稀疏表示
稀疏表示相信一个朴素原则:复杂观测往往能由少量基本模式组合出来。人脸图像虽然有成千上万个像素,但一张测试脸可能只需要同一个人的少数训练照片就能近似重构。
把训练样本或可学习的基本模式排成矩阵 ,稀疏表示写成
其中 是字典, 是编码。关键要求是 中绝大多数元素为零。
一、字典、原子与过完备表示
字典
的每一列 称为一个原子。若 ,原子数多于信号维数,字典是过完备的:同一个 往往有无穷多组系数能满足 。
过完备看似制造歧义,实际却提供灵活性。稀疏约束从无穷多解中选出只使用少数原子的简单解释。
课件在人脸识别中直接用全部训练图像作为字典
其中 收集第 个人的训练脸。若测试脸 属于第 类,并且该类样本近似位于一个线性子空间,则 应主要由 中的列重构,完整系数向量自然只在第 类对应位置非零。
二、为什么最小二乘通常不稀疏
欠定方程 的最小 范数解为
它可由伪逆求得,但 倾向于把能量平摊给很多原子,结果通常是稠密的。要直接要求非零元素最少,可以写
其中 表示非零元素个数。这个组合优化一般是 NP-hard,穷举所有原子子集代价极高。
课件用“非零元素少于 ”帮助建立唯一解直觉。更严格地说,唯一恢复界依赖字典的 spark、互相干性或受限等距性质,不能只凭信号维数 判断;字典列越相似,区分真正使用了哪个原子就越困难。
三、用 近似稀疏计数
常用凸替代是基追踪(Basis Pursuit):
单位球有尖角,线性约束更容易在坐标轴附近与其相切,所以解更容易出现零元素。满足一定稀疏度与字典条件时, 解可以恢复 的最稀疏解。
现实中有噪声,可改为基追踪去噪:
对适当匹配的误差上限 与惩罚系数 ,约束形式与下面的 Lasso 形式可以得到对应的解;这不是说任意同取一组参数都会无条件等价:
越大,编码通常越稀疏,但重构误差也可能增加。
四、匹配追踪:贪心地挑原子
优化是全局凸优化,另一条路线是贪心选择。
匹配追踪(Matching Pursuit,MP)从残差 开始,每轮选与当前残差最相关的原子:
随后沿该原子更新系数和残差。正交匹配追踪(Orthogonal Matching Pursuit,OMP)会在已选原子集合上重新做一次最小二乘,让新残差与所有已选原子正交。
OMP 的流程是:选原子 → 加入支持集 → 在支持集上重估全部系数 → 更新残差,直到达到目标稀疏度或残差阈值。它速度快,但贪心早期选错原子后不一定能恢复。
五、字典学习:原子也可以从数据中学
若没有合适的固定字典,可以同时学习字典和编码:
其中 的每一列是训练样本, 的每一列是对应稀疏编码。通常交替优化:
- 固定 ,用 OMP 或 方法求每个样本的稀疏编码;
- 固定编码,更新字典原子;
- 重复直到重构误差稳定。
K-SVD 是典型算法:逐个选取字典原子,对只使用该原子的样本残差做低秩 SVD,同时更新原子和相应系数。需要给字典列做单位范数约束,否则可以把 任意放大、把 任意缩小,表示会失去尺度唯一性。
本讲课件主体聚焦后面的稀疏表示分类;MP、OMP 与字典学习用于补全这一方法谱系。
六、稀疏表示分类 SRC
稀疏表示分类(Sparse Representation-based Classification,SRC)的标准流程如下。
1. 组成训练字典
训练列和测试向量通常先归一化,避免亮度或整体幅值直接支配系数。
2. 求全局稀疏编码
3. 按类别重构
令 只保留第 类系数,其余置零,计算
预测重构残差最小的类别:
课件用“最大重构系数对应类别”解释直觉;实际 SRC 用逐类重构残差更稳健,因为同一类可能由多个中等系数共同表示。
一个二维例子
设第一类字典为
第二类字典为
测试样本 。有
所以一个稀疏解是 。第一类重构残差 ;只保留第二类系数后重构为零,,因此判为第一类。
七、遮挡为什么也能写成稀疏项
若人脸被墨镜、围巾或随机像素污染,可写成
其中 在身份字典上稀疏,误差 在像素位置上也可能稀疏。把单位矩阵加入字典:
再对联合系数做 优化,便可同时估计身份表示和被污染位置。课件展示了 、、 随机污染以及块遮挡实验,并对比 与 : 会把局部大误差扩散到许多系数, 更能把它隔离成稀疏异常。
但鲁棒性不是无限的。遮挡过大、训练姿态覆盖不足或不同人的子空间高度重叠时,稀疏恢复条件会失效。
课件还比较了 Eigen、Laplacian、随机投影、下采样与 Fisher 等特征。在 Yale B 与 AR 数据的历史实验中,理论估计可恢复稀疏系数的最低特征维数分别约为 128 和 88,实验趋势与之接近;另一个实验使用 1207 张训练脸,展示 SRC 在特征维度高于样本数时仍可工作。这些数字说明“维度够用后不同特征差距可能缩小”,而不是保证所有数据上都存在固定的 128 或 88 维阈值。
八、SRC、最近邻与最近子空间
- 最近邻(NN)只找一个最相似训练样本;当训练数据密到一个样本就能表示测试脸时,SRC 近似退化为 NN。
- 最近子空间(NS)允许用某一类全部样本线性组合;当正确类子空间足够准确时,SRC 与 NS 接近。
- SRC 在全字典上先做稀疏选择,可以避免某一类用所有样本过度拟合,并利用不同类别之间的竞争提高判别性。
若最小残差仍很大,或系数分散到许多类别,可拒绝识别,而不是强行输出训练集中某个人。课件的开放集实验中只有一半测试身份在训练集出现,正是在检验这一点。
九、常见误区与 sanity check
- 不是数学意义上的范数,它只是非零元素计数。
- 稀疏不等于系数绝对值都很小,而是大多数系数恰为零或接近零。
- 求出稀疏系数后,SRC 应比较逐类重构残差,不能只看单个最大系数。
- 字典列应做尺度归一化;否则范数大的原子可能用很小系数占便宜。
- 噪声容忍阈值 或正则强度 必须与噪声尺度匹配。
- 课件“特征选择不重要”的结论有条件:只有稀疏可恢复、维数足够且类别子空间可分时才成立,不能理解成任意糟糕特征都一样好。