📔
国科大模式识别与机器学习笔记 2023
  • 课程概况
  • 第一章 概述
    • 1.1 概述
  • 第二章 生成式分类器
    • 2.1 模式识别与机器学习的目标
    • 2.2 正态分布模式的贝叶斯分类器
    • 2.3 均值向量和协方差矩阵的参数估计
    • 附 第二章作业
  • 第三章 判别式分类器
    • 3.1 判别式分类器与生成式分类器
    • 3.2 线性判别函数
    • 3.3 广义线性判别函数
    • 3.4 Fisher线性判别
    • 3.5 感知器算法
    • 3.6 可训练的确定性分类器的迭代算法
    • 3.7 势函数法
    • 3.8 决策树
    • 附 第三章作业
  • 第四章 特征选择和提取
    • 4.1 模式类别可分性的测度
    • 4.2 特征选择
    • 4.3 离散K-L变换
    • 附 第四章作业
  • 第五章 统计机器学习
    • 5.1 机器学习简介
    • 5.2 统计机器学习
  • 第六章 有监督学习
    • 6.1 有监督学习
    • 6.2 回归任务
    • 6.3 分类问题
    • 附 第六章作业
  • 第七章 支持向量机
    • 7.1 线性支持向量机
    • 7.2 核支持向量机
    • 7.3 序列最小优化算法
    • 附 第七章作业
  • 第八章 聚类
    • 8.1 基本概念
    • 8.2 经典聚类算法
    • 附 第八章作业
  • 第九章 降维
    • 9.1 基本概念
    • 9.2 维度选择
    • 9.3 维度抽取
  • 第十章 半监督学习
    • 10.1 基本概念
    • 10.2 半监督学习算法
  • 第十一章 概率图模型
    • 11.1 PGM简介
    • 11.2 有向图模型(贝叶斯网络)
    • 11.3 无向图模型(马尔科夫随机场)
    • 11.4 学习和推断
    • 11.5 典型概率图模型
    • 附 第十一章作业
  • 第十二章 集成学习
    • 12.1 简介
    • 12.2 Bagging
    • 12.3 Boosting
    • 附 第十二章作业
由 GitBook 提供支持
在本页
  • 4.3.1 离散的有限K-L展开
  • 一、展开式的推导
  • 二、K-L展开式的性质
  • 三、变换矩阵和系数的计算
  • 4.3.2 按照K-L展开式选择特征
  • 推导
  • 结论
  • 绘图代码

这有帮助吗?

在GitHub上编辑
  1. 第四章 特征选择和提取

4.3 离散K-L变换

上一页4.2 特征选择下一页附 第四章作业

最后更新于1年前

这有帮助吗?

  • 前面讨论的特征选择是在一定准则下,从n个特征中选出k个来反映原有模式

  • 这种简单删掉某n-k个特征的做法并不十分理想,因为一般来说,原来的n个数据各自在不同程度上反映了识别对象的某些特征,简单地删去某些特征可能会丢失较多的有用信息

  • 如果将原来的特征做正交变换,获得的每个数据都是原来n个数据的线性组合,然后从新的数据中选出少数几个,使其尽可能多地反映各类模式之间的差异,而这些特征间又尽可能相互独立,则比单纯的选择方法更灵活、更有效

K-L变换(Karhunen-Loeve变换)就是一种适用于任意概率密度函数的正交变换

4.3.1 离散的有限K-L展开

一、展开式的推导

设有一连续的随机实函数x(t)x(t)x(t),T1≤t≤T2T_1\leq t\leq T_2T1​≤t≤T2​,则x(t)x(t)x(t)可用已知的正交函数集{φj(t), j=1,2,… }\{\varphi_j(t),\ j=1,2,\dots\}{φj​(t), j=1,2,…}的线性组合展开,即:

x(t)=a1φ1(t)+a2φ2(t)+⋯+ajφj(t)+⋯=∑j=1∞ajφj(t),  T1≤t≤T2\begin{align} x(t) &= a_1\varphi_1(t) + a_2\varphi_2(t) + \cdots+a_j\varphi_j(t) + \cdots \nonumber \\ &= \sum_{j=1}^\infty a_j\varphi_j(t),\ \ T_1\leq t\leq T_2 \nonumber \end{align}x(t)​=a1​φ1​(t)+a2​φ2​(t)+⋯+aj​φj​(t)+⋯=j=1∑∞​aj​φj​(t),  T1​≤t≤T2​​

其中aja_jaj​为展开式的随即系数,φj(t)\varphi_j(t)φj​(t)为一连续的正交函数,满足:

∫T1T2φn(t)φ~m(t)dt={1m=n0m≠n\int_{T_1}^{T_2}\varphi_n(t)\tilde{\varphi}_m(t)dt=\begin{cases} 1 & m=n \\ 0 & m\neq n \end{cases}∫T1​T2​​φn​(t)φ~​m​(t)dt={10​m=nm=n​

其中,φ~m(t)\tilde{\varphi}_m(t)φ~​m​(t)为φm(t)\varphi_m(t)φm​(t)的共轭复数形式

写成向量形式,则有:

二、K-L展开式的性质

三、变换矩阵和系数的计算

则自相关矩阵可以写成:

总结而言,计算l K-L展开式系数可以分为以下三步:

4.3.2 按照K-L展开式选择特征

  • K-L展开式用于特征选择相当于一种线性变换

推导

则产生的误差为:

从而

因此

由此可以看出,特征值越小,误差也越小

结论

若首先采用前面的m个特征向量,便可使变换误差最小。此时的变换矩阵为:

K-L变换是在均方误差最小的意义下获得数据压缩(降维)的最佳变换,且不受模式分布的限制。对于一种类别的模式特征提取,它不存在特征分类问题,只是实现用低维的m个特征来表示原来高维的n个特征,使其误差最小,亦即使其整个模式分布结构尽可能保持不变。

通过K-L变换能获得互不相关的新特征。若采用较大特征值对应的特征向量组成变换矩阵,则能对应地保留原模式中方差最大的特征成分,所以K-L变换起到了减小相关性、突出差异性的效果。在此情况下, K-L变换也称为主成分变换(PCA变换)。

需要指出的是,采用K-L变换作为模式分类的特征提取时,要特别注意保留不同类别的模式分类鉴别信息,仅单纯考虑尽可能代表原来模式的主成分,有时并不一定有利于分类的鉴别。

K-L变换的一般步骤

给定两类模式,其分布如图所示,试用K-L变换实现一维的特征提取(假定两类模式出现的概率相等)

这符合K-L变换进行特征压缩的最佳条件。

上面的例子中可以看到

绘图代码

import matplotlib.pyplot as plt
import numpy as np

x = [4, 5, 5, 5, 6, -4, -5, -5, -5, -6]
y = [5, 4, 5, 6, 5, -5, -4, -5, -6, -5]

plt.plot([5, -5], [5, -5], color='red', linestyle='--')
plt.arrow(0, 0, 2, 2, head_width=0.2, head_length=0.5, fc='black', ec='black', zorder=2)
plt.arrow(0, 0, 2, -2, head_width=0.2, head_length=0.5, fc='black', ec='black')
plt.plot(x[0:5], y[0:5], 'o', color='white', markeredgecolor='blue')
plt.plot(x[5:10], y[5:10], 'o', color='blue')


plt.annotate('$\\phi_1$', xy=(2, 1.2), xytext=(2, 1.2), fontsize=12)
plt.annotate('$\\phi_2$', xy=(2, -3), xytext=(2, -3), fontsize=12)

plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)

plt.gca().set_aspect('equal', adjustable='box')
plt.grid(True)

plt.show()

将上式写成离散的正交函数形式,使得连续随机函数x(t)x(t)x(t)和连续正交函数φj(t)\varphi_j(t)φj​(t)在区间T1≤t≤T2T_1\leq t \leq T_2T1​≤t≤T2​内被等间隔采样为n个离散点,即:

x(t)→{x(1),x(2),⋯ ,x(n)}φj(t)→{φj(1),φj(2),⋯ ,φj(n)}x(t) \to \{x(1),x(2),\cdots,x(n)\} \\ \varphi_j(t) \to \{\varphi_j(1),\varphi_j(2),\cdots,\varphi_j(n)\}x(t)→{x(1),x(2),⋯,x(n)}φj​(t)→{φj​(1),φj​(2),⋯,φj​(n)}
x=(x(1),x(2),⋯ ,x(n))Tφj=(φj(1),φj(2),⋯ ,φj(n))Tx = (x(1),x(2), \cdots, x(n))^T \\ \varphi_j=(\varphi_j(1),\varphi_j(2),\cdots,\varphi_j(n))^Tx=(x(1),x(2),⋯,x(n))Tφj​=(φj​(1),φj​(2),⋯,φj​(n))T

则可以对公式(1)(1)(1)取n项近似,并写成离散展开形式:

x=∑j=1najφj=φa,  T1≤t≤T2x=\sum_{j=1}^na_j\varphi_j = \varphi a,\ \ T_1\leq t\leq T_2x=j=1∑n​aj​φj​=φa,  T1​≤t≤T2​

其中,aaa为展开式中的随即系数的向量形式,φ\varphiφ为一n×nn\times nn×n矩阵,即:

a=(a1,a2,…,aj,…,an)Tφ=[φ1(1)φ2(1)⋯φn(1)φ1(2)φ2(2)⋯φn(2)⋮⋮⋱⋮φ1(n)φ2(n)⋯φn(n)]a=(a_1,a_2,\dots,a_j,\dots,a_n)^T \\ \\ \varphi = \begin{bmatrix} \varphi_1(1) & \varphi_2(1) & \cdots & \varphi_n(1) \\ \varphi_1(2) & \varphi_2(2) & \cdots & \varphi_n(2) \\ \vdots & \vdots & \ddots & \vdots \\ \varphi_1(n) & \varphi_2(n) & \cdots & \varphi_n(n) \end{bmatrix}a=(a1​,a2​,…,aj​,…,an​)Tφ=​φ1​(1)φ1​(2)⋮φ1​(n)​φ2​(1)φ2​(2)⋮φ2​(n)​⋯⋯⋱⋯​φn​(1)φn​(2)⋮φn​(n)​​

可以看出,φ\varphiφ本质上是一个正交变换矩阵,它将xxx变换成aaa。

如果对c种模式类别{ωi}i=1,…,c\{\omega_i\}_{i=1,\dots,c}{ωi​}i=1,…,c​做离散正交展开,则对每一模式可分别写成:xi=φaix_i=\varphi a_ixi​=φai​,其中矩阵φ\varphiφ取决于所选用的正交函数

对各个模式类别,正交函数都是相同的,但其展开系数向量aia_iai​则因类别的不同模式分布而异

K-L展开式的根本性质是将随机向量x展开为另一组正交向量φj\varphi_jφj​的线性和,且其展开式系数aja_jaj​(即系数向量a的各个分量)具有不同的性质。

设随机向量x的总体自相关矩阵为R=E{xxT}R=E\{xx^T\}R=E{xxT},由:

x=∑j=1najφj=φa,  T1≤t≤T2(2)x=\sum_{j=1}^n a_j\varphi_j=\varphi a,\ \ T_1\leq t\leq T_2 \tag{2}x=j=1∑n​aj​φj​=φa,  T1​≤t≤T2​(2)

将X=φaX=\varphi aX=φa带入自相关矩阵,可得:

R=E{φaaTφT}=φ(E{aaT})φT\begin{align} R &= E\{\varphi a a^T\varphi^T\} \notag \\ &= \varphi (E\{aa^T\})\varphi^T \notag \end{align}R​=E{φaaTφT}=φ(E{aaT})φT​

要求系数向量a\boldsymbol{a}a的各个不同分量应独立,即应使(a1,a2,…,aj,…,an)(a_1, a_2, …, a_j, …, a_n)(a1​,a2​,…,aj​,…,an​)满足如下关系:

E(ajak)={λjj=k0j≠kE(a_ja_k) = \begin{cases} \lambda_j & j=k \\ 0 & j\neq k \end{cases}E(aj​ak​)={λj​0​j=kj=k​

写成矩阵形式,应使:E{aaT}=DλE\{a a^T\} = D_\lambdaE{aaT}=Dλ​,其中DλD_\lambdaDλ​为对角形矩阵,其互相关成分均为0,即:

Dλ=[λ10⋯⋯00⋱0⋯00⋯λj⋯00⋯0⋱00⋯⋯0λn]D_\lambda = \begin{bmatrix} \lambda_1 & 0 & \cdots & \cdots 0 \\ 0 & \ddots & 0 & \cdots & 0 \\ 0 & \cdots & \lambda_j & \cdots & 0 \\ 0 & \cdots & 0 & \ddots & 0 \\ 0 & \cdots & \cdots & 0 & \lambda_n \end{bmatrix}Dλ​=​λ1​0000​0⋱⋯⋯⋯​⋯0λj​0⋯​⋯0⋯⋯⋱0​000λn​​​
R=φDλφTR=\varphi D_\lambda \varphi^TR=φDλ​φT

由于φ\varphiφ中各个向量都相互归一正交,因此有:

Rφ=φDλφTφ=φDλR\varphi = \varphi D_\lambda \varphi^T \varphi = \varphi D_\lambdaRφ=φDλ​φTφ=φDλ​

其中,φj\varphi_jφj​向量对应为:

Rφj=λjφjR \varphi_j=\lambda_j\varphi_jRφj​=λj​φj​

可以看出,λj\lambda_jλj​是x的自相关矩阵R的特征值,φj\varphi_jφj​是对应的特征向量。因为R是实对称矩阵,其不同特征值对应的特征向量应正交,即:

φjTφk={1j=k0j≠k\varphi_j^T\varphi_k = \begin{cases} 1 & j=k \\ 0 & j\neq k \end{cases}φjT​φk​={10​j=kj=k​

带入式(2)(2)(2),K-L展开式的系数为:

a=φTxa = \varphi^Txa=φTx

求随机向量x的自相关矩阵:R=E{xxT}R = E\{xx^T\}R=E{xxT}

求R的特征值和特征向量,得到矩阵φ=(φ1,φ2,…,φn)\varphi=(\varphi_1,\varphi_2,\dots,\varphi_n)φ=(φ1​,φ2​,…,φn​)

求展开式系数:a=φTxa=\varphi^Txa=φTx

若从n个特征向量中取出m个组成变换矩阵φ\varphiφ,即:

φ=(φ1 φ2 … φm), m<n\varphi = (\varphi_1\ \varphi_2\ \dots\ \varphi_m),\ m<nφ=(φ1​ φ2​ … φm​), m<n

此时,φ\varphiφ是一个n*m维矩阵,x是n维向量,经过φTx\varphi^TxφTx变换,即得到降维为m的新向量

问题:选取变换矩阵φ\varphiφ,使得降维后的新向量在最小均方差条件下接近原来的向量x

对于x=∑j=1nx=\sum\limits_{j=1}^nx=j=1∑n​,现在仅仅取m项,对略去的系数项用预先选定的常数b代替,此时对x的估计值为:

x^=∑j=1maiφi+∑j=m+1nbφj\hat{x} = \sum_{j=1}^ma_i\varphi_i + \sum_{j=m+1}^nb\varphi_jx^=j=1∑m​ai​φi​+j=m+1∑n​bφj​
Δx=x−x^=∑j=m+1n(aj−b)φj\Delta x = x - \hat{x} = \sum_{j=m+1}^n(a_j-b)\varphi_jΔx=x−x^=j=m+1∑n​(aj​−b)φj​

此时Δx\Delta xΔx的均方差为:

ε2‾=E{∥Δx∥}2=∑j=m+1n{E(aj−b)2}\begin{align} \overline{\varepsilon^2} &= E\{\Vert\Delta x\Vert\}^2 \nonumber \\ &= \sum_{j=m+1}^n\{E(a_j-b)^2\} \nonumber \end{align}ε2​=E{∥Δx∥}2=j=m+1∑n​{E(aj​−b)2}​

要使得ε2‾\overline{\varepsilon^2}ε2最小,则对b的选择应满足:

∂∂b[E(aj−b)2]=∂∂b[E(aj2−2ajb+b2)]=−2[E(aj)−b]=0\begin{align} \frac{\partial}{\partial b}[E(a_j-b)^2] &= \frac{\partial}{\partial b}[E(a_j^2-2a_jb+b^2)] \nonumber \\ &= -2[E(a_j)-b] \nonumber \\ &=0 \nonumber \end{align}∂b∂​[E(aj​−b)2]​=∂b∂​[E(aj2​−2aj​b+b2)]=−2[E(aj​)−b]=0​

因此,b=E[aj]b=E[a_j]b=E[aj​],即对省略掉的a中的分量,应使用它们的数学期望来代替,此时的误差为:

ε2‾=∑j=m+1nE[(aj−E{aj})2]=∑j=m+1nφjTE[(x−E{x})(x−E{x})T]φj=∑j=m+1nφjTCxφj\begin{align} \overline{\varepsilon^2} &= \sum_{j=m+1}^nE[(a_j-E\{a_j\})^2] \nonumber \\ &= \sum_{j=m+1}^n\varphi^T_jE[(x-E\{x\})(x-E\{x\})^T]\varphi_j \nonumber \\ &= \sum_{j=m+1}^n\varphi_j^TC_x\varphi_j \nonumber \end{align}ε2​=j=m+1∑n​E[(aj​−E{aj​})2]=j=m+1∑n​φjT​E[(x−E{x})(x−E{x})T]φj​=j=m+1∑n​φjT​Cx​φj​​

其中,CxC_xCx​为x的协方差矩阵

设λj\lambda_jλj​为CxC_xCx​的第j个特征值,φj\varphi_jφj​是与λj\lambda_jλj​对应的特征向量,则:

Cxφj=λjφjC_x\varphi_j = \lambda_j\varphi_jCx​φj​=λj​φj​

由于φj\varphi_jφj​是一个正交阵,因此有:

φjTφj=1\varphi_j^T\varphi_j=1φjT​φj​=1
φjTCxφj=λj\varphi_j^TC_x\varphi_j = \lambda_jφjT​Cx​φj​=λj​
ε2‾=∑j=m+1nφjTCxφj=∑j=m+1nλj\begin{align} \overline{\varepsilon^2} &= \sum_{j=m+1}^n\varphi_j^TC_x\varphi_j \nonumber \\ &= \sum_{j=m+1}^n\lambda_j \end{align}ε2​=j=m+1∑n​φjT​Cx​φj​=j=m+1∑n​λj​​​

从K-L展开式的性质和按最小均方差的准则来选择特征,应使E[aj]=0E[a_j]=0E[aj​]=0。由于E[a]=E[φTx]=φTE[x]E[a]=E[\varphi^Tx]= \varphi^TE[x]E[a]=E[φTx]=φTE[x],故应使E[x]=0E[x]=0E[x]=0。基于这一条件,在将整体模式进行K-L变换之前,应先将其均值作为新坐标轴的原点,采用协方差矩阵C或自相关矩阵R来计算特征值。如果E[x]≠0E[x]\neq0E[x]=0,则只能得到“次最佳”的结果。

将K-L展开式系数aja_jaj​(亦即变换后的特征)用yjy_jyj​表示,写成向量形式:y=φTxy= \varphi^Txy=φTx。此时变换矩阵φ\varphiφ用m个特征向量组成。为使误差最小,不采用的特征向量,其对应的特征值应尽可能小。因此,将特征值按大小次序标号,即

λ1>λ2>⋯>λm>⋯>λn≥0\lambda_1\gt\lambda_2\gt\dots\gt\lambda_m\gt\dots\gt\lambda_n\geq0λ1​>λ2​>⋯>λm​>⋯>λn​≥0
φT=(φ1Tφ2T⋮φmT)\varphi^T = \begin{pmatrix} \varphi_1^T\\ \varphi_2^T\\ \vdots\\ \varphi_m^T \end{pmatrix}φT=​φ1T​φ2T​⋮φmT​​​

给定N个样本x1,…,xNx^1,\dots,x^Nx1,…,xN,利用KL变换将其降至m维的步骤:

计算样本均值:m=E(x)\boldsymbol m =E(\boldsymbol x)m=E(x)

平移样本:z=x−m\boldsymbol{z=x-m}z=x−m

计算z\boldsymbol zz的自相关矩阵:R(z)=∑i=1Np(ωi)E(z zT)=CxR(z)=\sum\limits_{i=1}^N p(\omega_i)E(\boldsymbol{z\ z}^T)=C_xR(z)=i=1∑N​p(ωi​)E(z zT)=Cx​

求协方差矩阵CxC_xCx​的特征向量,取最大的m个特征值对应的m个特征向量构成变换矩阵Φ\PhiΦ

m=15∑j=1Nix1j+15∑j=1Nix2j=0m = \frac{1}{5}\sum_{j=1}^{N_i}x_{1j}+\frac{1}{5}\sum_{j=1}^{N_i}x_{2j}=0m=51​j=1∑Ni​​x1j​+51​j=1∑Ni​​x2j​=0

由于P(ω1)=P(ω2)=0.5P(\omega_1)=P(\omega_2)=0.5P(ω1​)=P(ω2​)=0.5,故:

R=∑j=12P(ωi)E{xxT}=12[15∑j=15x1jx1jT]+12[15∑j=15x2jx2jT]=(25.425.025.025.4)\begin{align} R &= \sum_{j=1}^2P(\omega_i)E\{xx^T\} \nonumber \\ &= \frac{1}{2}\left[\frac{1}{5}\sum_{j=1}^5x_{1j}x_{1j}^T\right] + \frac{1}{2}\left[\frac{1}{5}\sum_{j=1}^5x_{2j}x_{2j}^T\right] \nonumber \\ \\ &= \begin{pmatrix} 25.4 & 25.0\\ 25.0 & 25.4 \end{pmatrix} \end{align}R​=j=1∑2​P(ωi​)E{xxT}=21​[51​j=1∑5​x1j​x1jT​]+21​[51​j=1∑5​x2j​x2jT​]=(25.425.0​25.025.4​)​​

解特征值方程∣R−λE∣\vert R-\lambda E\vert∣R−λE∣,求R的特征值:λ1=50.4,λ2=0.4\lambda_1=50.4,\lambda_2=0.4λ1​=50.4,λ2​=0.4,求解对应的特征向量,得到:

φ1=12(11)φ2=12(1−1)\varphi_1=\frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} \\ \varphi_2=\frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \end{pmatrix}φ1​=2​1​(11​)φ2​=2​1​(1−1​)

取较大的特征值λ1\lambda_1λ1​对应的变换向量作为变换矩阵,由y=φTxy=\varphi^Txy=φTx得到变换后的一维模式特征为:

ω1:{−102,−92,−92,−112,−112}ω2:{102,112,112,92,92}\omega_1:\left\{-\frac{10}{\sqrt2},-\frac{9}{\sqrt2},-\frac{9}{\sqrt2},-\frac{11}{\sqrt2},-\frac{11}{\sqrt2}\right\} \\ \omega_2:\left\{\frac{10}{\sqrt2},\frac{11}{\sqrt2},\frac{11}{\sqrt2},\frac{9}{\sqrt2},\frac{9}{\sqrt2}\right\}ω1​:{−2​10​,−2​9​,−2​9​,−2​11​,−2​11​}ω2​:{2​10​,2​11​,2​11​,2​9​,2​9​}