第10讲 概率模型(一)
一、媒体数据特征表示
1.1 概述
媒体数据既可用深度学习处理,也可采用“特征工程+概率模型”的传统路线。后者先做标准化、归一化等预处理,再从时域、频域或时频域提取特征,通过特征选择、线性或非线性方法降维,最后使用贝叶斯分类器、隐含马尔可夫模型等概率模型。
特征可以按多个角度设计:时域、频域及时频联合方法包括 FFT、DCT、Gabor 滤波器组和小波;统计、结构及混合方法包括直方图和属性—关系图;按语义层次可分为颜色、形状、纹理等底层特征,梯度等中层特征和语义等高层特征;根据信号模型还可设计自回归 AR、线性预测系数 LPC 和梅尔倒谱系数 MFCC。课件以 Gabor 滤波器组的人脸特征提取说明“输入图像→滤波响应→图像特征”的传统流程。
Gabor 滤波器是加窗傅里叶变换,其响应与视觉皮层简单细胞相似。二维函数写为
课件并列展示简单细胞响应和 Gabor 滤波响应,也指出二者仍有差异。
1.2 基于时频分析的特征提取
连续时间傅里叶变换及逆变换为
它把信号分解为不同频率、幅值和相位的正弦波。短时傅里叶变换 STFT 也称加窗傅里叶变换或 Gabor 变换:
其中 \(f(t)\) 为信号,\(g(t-\tau)\) 为平移到 \(\tau\) 的窗。若 \(g(t)\) 的傅里叶变换为 \(G(\omega)\),尺度变换满足
小波是在有限时间范围内变化且平均值为零的函数。函数表示方法经历了 Fourier、Gabor 到 wavelet transform 的发展。对平方可积函数 \(\psi(t)\),若其傅里叶变换 \(\Psi(\omega)\) 满足容许条件
则课件定义的连续小波函数族和变换为
\(a\) 是尺度因子,\(b\) 是可正可负的位移因子;横线表示复共轭。信号和小波都可以是复函数,复内积的第二项取共轭才能满足内积定义。例如
连续小波变换的计算过程是:先让 \(\psi(t)\) 与 \(f(t)\) 起始部分比较,计算相似系数 \(C\),\(C\) 越高表示越相似;再把小波右移 \(k\) 成 \(\psi(t-k)\),重复比较直到信号末端;随后扩展尺度,如得到 \(\psi(t/2)\),重新执行平移与比较,继续遍历其他尺度。
STFT 的窗宽固定,时间与频率局部化不能同时满足不同信号片段的需求。小波可以随尺度改变窗宽,对突变信号灵敏,适合非平稳信号,但要针对任务选择合适的小波函数。
若 \(g(t)\) 是时域窗,时窗中心与半径定义为
其傅里叶变换 \(G(\omega)\) 是频域窗,频窗中心与半径为
课件通过时频图示意不同窗在时间、频率上的定位。多分辨率分析则用尺度函数 \(\phi_{j,k}(t)\) 构造低通滤波器,提取粗略信息,用小波函数 \(\psi_{j,k}(t)\) 构造高通滤波器,提取精细信息;对 \(x(t)\) 递归使用低通、高通滤波器,把信号逐层分解成低频和高频分量。
二维 Gabor 小波中的 \((x_0,y_0)\) 是指定像素位置,\((\alpha,\beta)\) 决定二维窗的有效宽、高,\((u_0,v_0)\) 是频率调制参数。中心空间频率和方向为
其二维傅里叶变换为
当中心为原点、窗宽高比为 1 时,课件展示了 Gabor 实部及其二维频谱,并以 CPD(cycle per degree)表示空间频率。滤波器组可覆盖 5 个尺度、8 个方向。另一个特征提取例使用 16 个滤波器:先把图像归一化为 \(32\times32\),每幅滤波响应经 \(4\times4\) Average Pooling 变成 \(8\times8\),最终拼成 \(8\times8\times16=1024\) 维特征。
1.3 主成分分析 PCA
高维机器学习面临“维数灾难”:训练所需样本数随特征维数指数增长。降维可以克服这一问题、获取本质特征、节省存储、去除无用噪声并帮助大数据可视化。三维工程制图投影到三视图是线性降维,地图和毕加索画作则说明非线性降维。
给定 \(n\) 个 \(p\) 维样本组成 \(X=[x_1,\ldots,x_n]\),降维映射 \(f_{dr}\) 产生 \(Z=[z_1,\ldots,z_n]\),其中 \(z_i\) 为 \(k\) 维且 \(k<p\)。有效特征应保持同类不变性、异类鉴别性和对噪声的鲁棒性。特征选择从原始特征中直接挑选子集,特征变换则生成新坐标。
特征变换在优化判据 \(J\) 下把高维映到低维。PCA 在最小均方误差准则下尽量保留原数据;LDA 最大化类间散度、最小化类内散度。线性方法有 PCA、LDA;非线性方法包括 Kernel PCA、Kernel LDA、LLE、ISOMAP、LPP、AutoEncoder、t-SNE 和 UMAP。直观上,PCA 找方差最大的方向,它未必利于分类;LDA 找有利于类别分离的方向。
PCA 对协方差矩阵作特征分解,构造正交变换,把可能相关的变量变成线性不相关的主成分。对随机向量 \(x=(x_1,\ldots,x_d)^T\),均值为 \(\mu\),协方差矩阵为 \(\Sigma=[\sigma_{ij}]\),其中
为了推导最优正交变换,令
输入 \(X\) 变为 \(Y=TX\),协方差变为
并可重构为
若只保留前 \(M\) 个分量,其余用常数 \(b_i\) 近似,
均方误差为
令误差对 \(b_i\) 的导数为 0,得 \(b_i=\mathbb E[y_i]\)。代回后,每个方向的误差项是
约束为 \(\Phi_i^T\Phi_i=1\)。用拉格朗日乘子 \(\beta_i\),目标写为
利用
驻点满足
因此最优正交基是协方差矩阵的特征向量,变换后
保留最大特征值对应方向,等价于保留最大方差并让舍弃部分的重构误差最小。
若 \(\Sigma x=\lambda x\),则 \(\lambda\)、\(x\) 是特征值和特征向量,特征值由
求得。实对称 \(n\) 阶矩阵有 \(n\) 个线性无关特征向量,可写成
所有特征值还满足
任意 \(m\times n\) 矩阵的奇异值分解为
其中 \(U\) 是 \(m\times m\) 正交矩阵,\(D\) 是 \(m\times n\) 非负对角矩阵,\(V\) 是 \(n\times n\) 正交矩阵。若 \(\sigma^2\) 是 \(XX^T\) 的特征值,则 \(\sigma\) 是 \(X\) 的奇异值,并且
实际 PCA 对 \(D\times D\) 样本协方差矩阵作特征分解,将特征值降序排列,取前 \(d\) 个归一化特征向量组成
再把 \(D\) 维输入投影为
数值例中,两类二维样本为
总体均值 \(\mu=0\),最大似然协方差近似为
其特征值按降序为 \(\lambda_1=12.85,\lambda_2=0.15\),取最大特征值对应方向
六个样本的一维投影为
在人脸识别中,先对每幅训练图像 \(X_i\) 减均值 \(m\),计算协方差 \(\Sigma_{xx'}\);求其归一化特征向量,取最大 \(d\) 个作为子空间基;再对所有图像做 PCA。课件展示 7 个“特征脸”基,一幅人脸在新坐标中的开头为
PCA 的优点是基向量与样本统计特性完全匹配,在最小均方误差准则下是最优线性变换;缺点是变换矩阵随数据而异,没有快速算法。几何上,样本形成椭球状云团,散度/协方差矩阵特征向量是椭球主轴,PCA 保留散度最大的主轴。但最大散度方向不一定最利于区分类别,例如字符 Q 与 O 的鉴别,因此分类任务可利用标签选择最大类间、最小类内散度的空间。
1.4 线性判别分析 LDA
设有 \(n\) 个 \(p\) 维样本 \(x_1,\ldots,x_n\),标签为 \(y_1,\ldots,y_n\),类别为 \(\omega_j,j=1,\ldots,C\)。第 \(j\) 类有 \(N_j\) 个样本、均值 \(\mu_j\),总体均值为 \(\mu\)。LDA 寻找投影 \(z=w^Tx\),使类别区分度最大;Fisher 于 1936 年首先研究两类线性判别。
按课件的归一化定义,类内、类间与总散度矩阵为
LDA 最大化 Fisher 准则
利用迹的导数
把分母约束为常数。只求一条投影轴时可用标量拉格朗日乘子;同时求多列 \(W\) 时应使用矩阵乘子 \(\Lambda\):
令导数为 0,由 \(S_b,S_w\) 对称可得
最优 \(W\) 可由广义特征值分解,即 QZ 分解求得。
数值例给出
两类协方差、类别均值和总体均值为
由此
广义特征问题化成
最大特征值为 \(7.8284\),对应归一化方向
投影后两类分别为
对于类内协方差相同的三类问题,可把 LDA 理解成三步线性变换:旋转使类内分布对角化,放缩将类内分布白化,再旋转使类间分布对角化。LDA 的有效投影维数最多是 \(C-1\),且 \(S_w\) 必须非奇异。PCA 与 LDA 都是降维和特征分解方法,并涉及高斯假设;PCA 无监督,取投影方差最大的方向,LDA 有监督、可直接用于分类,取分类性能最好的方向。人脸任务中二者分别形成 Eigen Faces 和 Fisher Faces。课件还把 1024 维字符特征用 PCA、LDA 降至二维,显示 A、B、C 在 LDA 空间中分离得更清楚。
1.5 非线性降维与软件工具
自编码器通过重构任务学习非线性低维表示:
可以比较无激活、Sigmoid 和 ReLU 等配置;线性自编码器的编码部分等价于 PCA。
t-SNE 把当前点到邻居的距离转成概率:原空间相似性用高斯概率度量,低维嵌入空间用 Student-\(t\) 分布度量,再最小化两个概率分布的 KL 散度:
通过梯度下降求低维坐标 \(y_i\)。课件第 54 页的式子把对数项排成了 \(\log(q_{ij}/p_{ij})\);这恰好是上式的相反数,应视作排版错误,否则“最小化”会把两个分布推远。课件列出的 Scikit-learn 接口默认参数包括 n_components=2, perplexity=30.0, early_exaggeration=12.0, learning_rate=200.0, n_iter=1000, n_iter_without_progress=300, min_grad_norm=1e-7, metric='euclidean', init='random', method='barnes_hut', angle=0.5。UMAP(Uniform Manifold Approximation and Projection)与 t-SNE 类似,是快速的非线性降维方法。
Python 工具中,Gabor 对应 skimage.filters.gabor_kernel,主要参数为 frequency、方向弧度 theta=0、bandwidth=1、sigma_x/sigma_y、核范围 n_stds=3 和相位偏移 offset=0。固定 bandwidth 时,频率增大使 \(\sigma_x,\sigma_y\) 减小;若显式设置二者则忽略 bandwidth;\(\theta=\pi/2\) 时核旋转 \(90^\circ\),\(\sigma_x\) 控制竖直方向。
sklearn.decomposition.PCA 示例使用
X = np.array([[-1, -1], [-2, -1], [-3, -2],
[ 1, 1], [ 2, 1], [ 3, 2]])
pca = PCA(n_components=2).fit(X)
输出解释方差比约为 [0.9924, 0.0075],奇异值约为 [6.30061, 0.54980]。
sklearn.decomposition.TruncatedSVD 示例构造 \(100\times100\) 随机矩阵,把所有偶数列置 0 后转成稀疏矩阵,设置 n_components=5, n_iter=7, random_state=42。解释方差比为 [0.0157,0.0512,0.0499,0.0479,0.0453],总和约 0.2102,奇异值约 [35.2410,4.5981,4.5420,4.4486,4.3288]。
sklearn.discriminant_analysis.LinearDiscriminantAnalysis 的主要参数包括 solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001。对上述六点,标签设为 [1,1,1,2,2,2],训练后预测 [-0.8,-1] 得类别 [1]。
二、基于贝叶斯决策的模式分类
2.1 贝叶斯决策
对事件 \(A,B\),条件概率、联合概率和全概率公式为
模式识别中,特征向量为 \(X=(x_1,\ldots,x_N)^T\),类别为 \(\omega_i,i=1,\ldots,C\)。Bayes 公式为
\(p(\omega_i)\) 是先验概率,\(p(x\mid\omega_i)\) 是类条件概率密度,\(p(\omega_i\mid x)\) 是后验概率,\(p(x)\) 是样本出现概率。已知先验和类条件密度时,最大后验分类为
它实现最小错误率判决。可定义判别函数
若 \(g_i(x)>g_j(x)\) 对所有 \(j\ne i\) 成立,就归入 \(\omega_i\)。两类时令 \(g(x)=g_1(x)-g_2(x)\),\(g(x)>0\) 判为 \(\omega_1\),\(g(x)<0\) 判为 \(\omega_2\),决策面满足 \(g(x)=0\)。
比较类别时,可删去与 \(i\) 无关的 \(p(x)\);在对数域中,乘法变加法:
对一维两类问题,若阈值为 \(t\),错误概率为
也可写成
最大后验规则选择每一点错误概率较小的一侧,因此具有最小总错误率。
实际困难在于 \(P(x\mid\omega_i)\) 是所有特征上的联合概率。朴素贝叶斯采用属性条件独立假设,把它分解为
2.2 正态分布下的贝叶斯决策
\(d\) 维正态类条件密度为
给定样本,最大似然对数目标和参数估计为
协方差的无偏估计把分母换成 \(n-1\):
正态分布的 Bayes 判别函数 \(G_i(x)=p(x\mid\omega_i)p(\omega_i)\)。取对数得到
下面按协方差讨论三种典型情况。为保留一般性,前两式仍写出 \(\ln p(\omega_i)\);若先验相等,它对所有类别都是公共项,可以直接删去。
第一种是 \(\Sigma_i=\sigma^2I\)。删去类别无关项后
这就是最小欧氏距离分类器,两类决策超平面垂直于两个均值的连线,一维、二维情形都如此。
第二种是所有类共享 \(\Sigma_i=\Sigma_0\)。马氏距离定义为
删除公共项后得到最小马氏距离判决:
若先验也相等,展开后是线性判别函数
决策超平面不一定垂直于类别中心连线。课件把这种 LDF 与逻辑回归在线性边界上的结果作了对比。
第三种是各类协方差任意且 \(\Sigma_i\ne\Sigma_j\)。去掉公共项后
形成二次决策边界。在先验相等的情形下,令 \(\mu_M,\Sigma_M\) 为某类均值和协方差的最大似然估计,把需要最小化的代价函数写成
若
特征值按降序排列,则
较小特征值出现在分母中,因此其估计误差对 QDF 结果影响更大。
第一类修正二次判别函数 MQDF 在协方差对角线上加小常量 \(h^2\),保证满秩:
第二类 MQDF 保留前 \(k\) 个主子空间特征值,用 \(h^2\) 代替 \(i=k+1,\ldots,n\) 的较小特征值:
\(h^2\) 可以取所有被替换小特征值的平均。这里 \(g'_{QDF},g'_{MQDF1},g'_{MQDF2}\) 都是由原判别函数乘以负常数得到的代价,分类时取值最小的类别;若改回未加撇号的 \(g\),则应取最大值。
英文字母分类实验先用 PCA 把特征降到 25 维(类别数为 26),再用 LDA 继续降到 2~25 维,并比较不同分类器。LDF、QDF、MQDF 的两组曲线峰值依次报告为 73.0%/67.8%、79.2%/74.2% 和 82.2%/78.5%,MQDF 性能最好。对 MQDF 改变主子空间维数 \(k\) 时,准确率随 \(k\) 先升后降,\(k\) 在总特征维度约一半处表现较好。
本讲要求与思考
本讲应掌握 Gabor 滤波器组特征、PCA/LDA 线性降维,以及以最大后验实现最小错误率的贝叶斯决策和正态分布判别;数学上掌握小波、特征值与奇异值分解、Bayes 公式和正态密度。网络学堂第 10 讲编程实践 tutorial-10.zip 比较手写数字识别的两条路线:tutorial-10-1.ipynb 使用 MLP、CNN,tutorial-10-2.ipynb 使用 Gabor+PCA/LDA 和 LDF/QDF/MQDF。
- 比较 Gabor 滤波器组与 CNN 的特征提取。
- PCA 前若某一特征数量级显著更大,会发生什么?课件房价表示例为
(面积,卧室,层数,年龄,价格):(2104,5,1,45,460)、(1416,3,2,40,232)、(1534,3,2,30,315)、(852,2,1,36,178)。思考降维前应如何处理不同量纲。 - 当数据在线性空间不可分时,应如何处理后再应用 LDA?
- 某城市红色出租车占 85%,蓝色占 15%。目击者在现场正确辨色概率为 80%、错误率为 20%,且称肇事车为蓝色。求肇事车实际为蓝色的概率。

