Lecture 5:特征选择与特征提取
408 学习笔记:Lecture 5:特征选择与特征提取。保留原有知识内容、公式与图示;有对应原件时提供查看和下载入口。
本页目录
描述:本节区分特征选择和特征提取,推导 PCA 的最大方差与特征值问题,整理特征脸应用,并说明前向/后向特征选择与 AdaBoost 的样本权重、弱分类器权重和最终集成公式。
5.1 特征选择与特征提取
设原始样本:
$$ \boldsymbol{x}_i
\begin{bmatrix} x_{i1} & x_{i2} & \cdots & x_{iN} \end{bmatrix}^{\mathrm T} \in\mathbb R^N. $$
5.1.1 特征选择
从原有 $N$ 个特征中选出 $M$ 个:
$$ M<N. $$
输出仍是原始特征的子集,不改变每个特征的语义。
目标通常是:在减少冗余、噪声和计算量的同时,尽量保持或提高验证集上的任务性能。
5.1.2 特征提取
构造映射:
$$ f:\mathbb R^N\rightarrow\mathbb R^M, $$
得到新特征:
$$ \boldsymbol{y}=f(\boldsymbol{x}). $$
新特征通常是原特征的组合,不再直接对应某个原始维度。PCA 是线性特征提取方法;神经网络、自编码器可学习非线性特征。
5.1.3 对比
| 维度 | 特征选择 | 特征提取 |
|---|---|---|
| 输出 | 原特征子集 | 新构造的特征 |
| 可解释性 | 通常较强 | 取决于变换,可能较弱 |
| 典型方法 | 过滤、包装、嵌入式选择 | PCA、LDA、自编码器 |
| 是否必须降维 | 通常是 | 通常是,也可做等维变换 |
5.2 PCA 基本模型
主成分分析(Principal Component Analysis,PCA)寻找数据方差最大的正交方向,并把样本投影到这些方向。
PCA 是:
- 无监督方法,不使用类别标签。
- 线性降维方法。
- 保留最大方差方向,也等价于在给定维数下最小化线性正交重构误差。
设保留 $M$ 个主成分,令:
$$ U_M
\begin{bmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_M \end{bmatrix} \in\mathbb R^{N\times M}. $$
降维:
$$ \boldsymbol{y}_i
U_M^{\mathrm T} (\boldsymbol{x}_i-\boldsymbol{\mu}) \in\mathbb R^M. $$
这可看成仿射层:
$$ \boldsymbol{y}=A\boldsymbol{x}+\boldsymbol{b}, $$
其中 $A=U_M^T$、$b=-U_M^T\mu$。但 PCA 的参数由协方差特征分解/SVD 决定,不是普通神经网络那样依靠标签和反向传播训练。
5.3 数据中心化与协方差
有 $p$ 个样本:
$$ {\boldsymbol{x}_1,\ldots,\boldsymbol{x}_p}. $$
均值:
$$ \boldsymbol{\mu}
\frac{1}{p} \sum_{i=1}^{p}\boldsymbol{x}_i. $$
中心化样本:
$$ \tilde{\boldsymbol{x}}_i
\boldsymbol{x}_i-\boldsymbol{\mu}. $$
协方差矩阵可写为:
$$ \Sigma
\frac{1}{p} \sum_{i=1}^{p} \tilde{\boldsymbol{x}}_i \tilde{\boldsymbol{x}}_i^{\mathrm T}. $$
统计学无偏样本协方差常用 $1/(p-1)$。两种缩放不会改变特征向量,只会按同一比例缩放特征值。
5.4 第一主成分的推导
5.4.1 最大化投影方差
选单位方向 $\boldsymbol{u}$:
$$ \boldsymbol{u}^{\mathrm T}\boldsymbol{u}=1. $$
样本投影:
$$ y_i
\boldsymbol{u}^{\mathrm T} (\boldsymbol{x}_i-\boldsymbol{\mu}). $$
投影方差:
$$ \frac{1}{p} \sum_{i=1}^{p}y_i^2
\boldsymbol{u}^{\mathrm T} \Sigma \boldsymbol{u}. $$
PCA 求解:
$$ \max_{\boldsymbol{u}} \boldsymbol{u}^{\mathrm T}\Sigma\boldsymbol{u}, \qquad \text{s.t. } \boldsymbol{u}^{\mathrm T}\boldsymbol{u}=1. $$
源课件说“让每个点到直线距离的方差最大”,不准确。应是让点在该方向上的投影方差最大;从重构角度看,则是让点到所选子空间的平方距离总和最小。
5.4.2 拉格朗日乘子
$$ \mathcal L(\boldsymbol{u},\lambda)
\boldsymbol{u}^{\mathrm T}\Sigma\boldsymbol{u}
\lambda (\boldsymbol{u}^{\mathrm T}\boldsymbol{u}-1). $$
令梯度为零:
$$ \frac{\partial\mathcal L} {\partial\boldsymbol{u}}
2\Sigma\boldsymbol{u} -2\lambda\boldsymbol{u} =0. $$
因此:
$$ \Sigma\boldsymbol{u}
\lambda\boldsymbol{u}. $$
$\boldsymbol{u}$ 是协方差矩阵特征向量,目标值为:
$$ \boldsymbol{u}^{\mathrm T}\Sigma\boldsymbol{u}
\lambda. $$
所以第一主成分是最大特征值对应的单位特征向量。
5.5 多个主成分
第二主成分还要满足与第一主成分正交:
$$ \boldsymbol{u}_2^{\mathrm T}\boldsymbol{u}_2=1, $$
$$ \boldsymbol{u}_2^{\mathrm T}\boldsymbol{u}_1=0. $$
一般地:
$$ \boldsymbol{u}_i^{\mathrm T}\boldsymbol{u}_j
\begin{cases} 1, & i=j,\ 0, & i\neq j. \end{cases} $$
把协方差特征值降序排列:
$$ \lambda_1\geq\lambda_2\geq\cdots\geq\lambda_N\geq0. $$
前 $M$ 个特征向量构成 $U_M$。
保留方差比例:
$$ \operatorname{EVR}(M)
\frac{\sum_{j=1}^{M}\lambda_j} {\sum_{j=1}^{N}\lambda_j}. $$
可根据累计解释方差或下游验证性能选择 $M$。
5.6 PCA 算法流程
- 组织样本,计算均值 $\mu$。
- 中心化每个样本 $\tilde x_i=x_i-\mu$。
- 计算协方差矩阵 $\Sigma$,或直接对中心化数据做 SVD。
- 求特征值和特征向量。
- 按特征值从大到小排序。
- 取前 $M$ 个单位正交特征向量组成 $U_M$。
- 投影:
$$ y_i=U_M^T(x_i-\mu). $$
- 需要重构时:
$$ \hat x_i
U_My_i+\mu. $$
高维且样本较少时,直接对数据矩阵做经济型 SVD 通常比显式构造巨大协方差矩阵更稳定高效。
5.7 PCA 的注意事项
- PCA 只看方差,不看标签;高方差方向不一定最有分类能力。
- 特征量纲差异很大时,应先标准化,否则大尺度特征会主导主成分。
- PCA 对异常值较敏感。
- 主成分方向的正负号可以整体翻转,不影响所表示子空间。
- 必须只在训练集拟合均值和主成分,再应用到验证/测试集,防止数据泄漏。
5.8 特征脸应用
课件示例使用 XM2VTS 人脸数据:
- 295 人。
- 每人 8 张图片,分 4 次拍摄,每次 2 张。
- 人脸检测和对齐后缩放为 $128\times128$ 灰度图。
- 每人前 4 张训练、后 4 张测试。
- 训练集和测试集各:
$$ 295\times4=1180 $$
张。
每张图展平后维度:
$$ 128\times128=16384. $$
取前 100 个主成分:
$$ U_{100} \in \mathbb R^{16384\times100}, $$
输出特征:
$$ y\in\mathbb R^{100}. $$
- 平均脸是训练图像均值 $\mu$。
- 主成分向量重新排列成图像后称为特征脸(eigenfaces),表示人脸数据中方差最大的变化模式。
- 它们不是“某个局部最有特征的部位”,而是覆盖整张图像的正交基方向。
课件实验结果:
| 分类器 | 识别率 |
|---|---|
| 最近邻 | $76.02%$ |
| SVM | $80.25%$ |
该结果只对应课件的数据划分、预处理、PCA 维数和分类器设置,不能直接当作数据集统一基准。
5.9 特征子集搜索
从 $M$ 个候选特征选 $N$ 个,组合数为:
$$ \binom{M}{N}
\frac{M!}{N!(M-N)!}. $$
当 $M$ 较大时,穷举代价很高。
5.9.1 顺序前向选择
- 从空集合开始。
- 每轮尝试加入一个未选特征。
- 选择使验证指标提升最大的特征。
- 达到目标维数或提升不足时停止。
5.9.2 顺序后向消除
- 从全部特征开始。
- 每轮尝试删除一个特征。
- 删除对验证指标损害最小的特征。
- 达到目标维数时停止。
两者都是贪心启发式,不能保证全局最优。
源课件说“神经网络已经做了这些事情,所以递增/递减法不好用”,过于绝对。深度网络能学习表示,但显式特征选择仍可用于高维小样本、可解释性、降低采集成本和表格数据任务。
5.10 AdaBoost 基本思想
训练集:
$$ T={(x_i,y_i)}_{i=1}^{N}, \qquad y_i\in{-1,+1}. $$
AdaBoost 顺序训练多个弱分类器:
- 每轮关注当前被错分的样本。
- 错误率低的弱分类器获得更大组合权重。
- 最后对弱分类器加权投票。
若弱分类器是只使用单个特征的决策树桩,被选中的弱学习器也会间接完成特征选择;但 AdaBoost 本质是提升/集成算法,不是对任意基学习器都天然等于特征选择。
5.11 AdaBoost 公式
5.11.1 初始化样本权重
$$ w_{1,i}=\frac{1}{N}, \qquad i=1,\ldots,N. $$
记:
$$ D_m=(w_{m,1},w_{m,2},\ldots,w_{m,N}). $$
5.11.2 训练弱分类器
第 $m$ 轮根据 $D_m$ 训练:
$$ G_m(x)\in{-1,+1}. $$
经典 AdaBoost 可以直接让基学习器使用样本权重;按权重有放回重采样是可选实现,不是算法必须步骤。
5.11.3 加权错误率
$$ e_m
\sum_{i=1}^{N} w_{m,i} \mathbb I(G_m(x_i)\neq y_i). $$
5.11.4 弱分类器权重
$$ \alpha_m
\frac{1}{2} \ln \frac{1-e_m}{e_m}. $$
- 若 $e_m<1/2$,则 $\alpha_m>0$。
- 若 $e_m=0$,公式趋于无穷,实现时需提前停止或做数值裁剪。
- 若 $e_m\geq1/2$,该弱分类器不比随机猜测好,应停止、重训或调整学习器。
5.11.5 更新样本权重
$$ w_{m+1,i}
\frac{ w_{m,i} \exp[-\alpha_my_iG_m(x_i)] }{Z_m}, $$
其中归一化因子:
$$ Z_m
\sum_{i=1}^{N} w_{m,i} \exp[-\alpha_my_iG_m(x_i)]. $$
若分类正确,$y_iG_m(x_i)=1$,权重乘 $e^{-\alpha_m}$;若分类错误,乘 $e^{\alpha_m}$。归一化后,错分样本的相对权重上升。
5.11.6 最终分类器
$$ f(x)
\sum_{m=1}^{M} \alpha_mG_m(x), $$
$$ G(x)=\operatorname{sign}[f(x)]. $$
5.12 AdaBoost 流程
- 初始化所有样本权重为 $1/N$。
- 训练一个加权错误率尽量小的弱分类器。
- 计算 $e_m$ 和 $\alpha_m$。
- 提高错分样本权重,降低正确样本权重并归一化。
- 重复 $M$ 轮。
- 按 $\alpha_m$ 对所有弱分类器加权投票。
AdaBoost 对噪声和异常点可能敏感,因为持续错分的样本会获得很高权重。
5.13 易错点
- 特征选择保留原维度子集,特征提取生成新维度,两者不能混用。
- PCA 最大化的是投影方差,不是点到主轴距离的方差。
- PCA 投影前必须中心化;量纲差异大时还应标准化。
- 第一主成分是最大特征值对应方向,后续主成分还要与已选方向正交。
- 变换矩阵取法要统一:若主成分按列组成 $U_M$,则降维是 $U_M^T(x-\mu)$。
- PCA 不使用标签,高方差方向不一定最适合分类。
- $128\times128$ 图像展平维度是 16384;100 个特征脸组成的基矩阵是 $16384\times100$。
- 从 $M$ 个特征选 $N$ 个的组合数是 $M!/[N!(M-N)!]$。
- 顺序前向和后向选择是贪心算法,不能保证最优子集。
- AdaBoost 通常直接使用样本权重;重采样只是可选实现。
- AdaBoost 样本权重更新必须包含指数项和归一化因子 $Z_m$。
- AdaBoost 是集成算法;只有在弱学习器按特征构造时,才自然体现特征选择效果。
相关知识
5.14 本节复盘
- 特征选择从原特征中挑子集,特征提取把原特征映射为新表示。
- PCA 是无监督线性降维,选择协方差矩阵最大特征值对应的正交方向。
- 前 $M$ 个主成分最大化保留方差,并在正交线性投影中最小化重构误差。
- PCA 流程包括中心化、协方差/SVD、特征排序、投影和可选重构。
- 特征脸把高维人脸图像投影到少量主成分坐标,再交给最近邻或 SVM 分类。
- 特征子集穷举具有组合爆炸,顺序前向和后向方法用贪心方式近似搜索。
- AdaBoost 顺序训练弱分类器,提高错分样本权重,并按弱分类器可靠性加权投票。
- AdaBoost 的核心公式是加权错误率、$\alpha_m$、指数样本权重更新和最终符号函数。