浅析 K-L 变换

前言

K-L 转换(Karhunen-Loève Transform)是建立在统计特性基础上的一种转换,它是均方差(MSE, Mean Square Error)意义下的最佳转换,因此在资料压缩技术中占有重要的地位。

K-L 变换的本质就是一个线性变换

y=UTx\mathbf{y}=\mathbf{U}^T\mathbf{x}

K-L 变换的目的: 对输入的向量 x,做一个正交变换,使得输出的向量得以去除数据的相关性

原理简述

x={x1,x2,,xn}\mathbf{x} = \{x_1,x_2,\cdots,x_n\}nn维随机向量

为了找到 K-L 变换矩阵UU,令

y=UTx\mathbf{y}=\mathbf{U}^T\mathbf{x}

我们希望新向量y\mathbf{y}的各个分量是独立的,因此有

E(yiyj)=0,ijE(y_iy_j)=0 ,\quad i \neq j

可以计算yy的相关系数矩阵RyR_y

Ry=E(yyT)=E(UTxxTU)=E(UTRxUT)\begin{aligned}R_y=E(\mathbf{y}\mathbf{y}^T)&=E(\mathbf{U}^T\mathbf{x}\mathbf{x}^T\mathbf{U})\\ &=E(\mathbf{U}^TR_x\mathbf{U}^T)\end{aligned}

显然Rx=E(xxT)R_x=E(\mathbf{x}\mathbf{x}^T)是对称矩阵,因此它的特征向量是相互正交的,若将UU的列向量置为RxR_x的特征向量,此时RyR_y可以转换成对角矩阵。

Ry=E(yyT)=E(UTRxUT)=ΛR_y=E(\mathbf{y}\mathbf{y}^T)=E(\mathbf{U}^TR_x\mathbf{U}^T)=\Lambda

将相关函数矩阵对角化,即通过 K-L 变换消除原有向量x\mathbf{x}的各分量间的相关性,从而有可能去掉那些带有较少信息的分量以达到降低特征维数的目的。

Ry=Λ=[λ100λn]R_y=\Lambda=\begin{bmatrix}\lambda_1 & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & \lambda_n \end{bmatrix}

K-L 变换的产生矩阵由数据的二阶统计量决定,即 K-L 坐标系的基向量为某种基于数据 xx 的二阶统计量的产生矩阵的特征向量

K-L 变换的产生矩阵可以有多种选择:

  1. x\mathbf{x}的相关函数矩阵: R=E(xxT)R=E(\mathbf{x}\mathbf{x}^T)
  2. x\mathbf{x}的协方差矩阵: C=E((xμ)(xμ)T)C=E((\mathbf{x}-\mu)(\mathbf{x}-\mu)^T)
  3. 样本总类内离散度矩阵: Sw=PiΣiS_w=\sum P_i\Sigma_i

离散 K-L 变换实现

x={x1,x2,,xn}\mathbf{x} = \{x_1,x_2,\cdots,x_n\}nn维随机向量,Ω\Omega是来自MM个模式类的样本集,总样本数为 NN

利用 K-L 变换将x\mathbf{x}变成dd维。

step 1. 计算样本集Ω\Omega的相关系数矩阵RR;

R=E(xxT)1Ni=1NxixiTR=E(\mathbf{x}\mathbf{x}^T) \approx \frac{1}{N}\sum_{i=1}^N\mathbf{x}_i\mathbf{x}_i^T

step 2. 计算RR的特征值λi(i=1,2,,n)\lambda_i(i=1,2,\cdots,n),选择前dd个较大值;

step 3. 计算dd个特征值对应的特征向量ui(i=1,2,,n)u_i(i=1,2,\cdots,n),并归一化;

U=[u1,u2,,ud]U = [u_1,u_2,\cdots,u_d]

step 4. 对Ω\Omega中的每个向量进行 K-L 变换;

y=UTx\mathbf{y} = U^T\mathbf{x}

简单示例

两个模式类的样本分别为

w1:X1=[2,2]T,X2=[2,3]T,X3=[3,3]Tw_1: \mathbf{X}_1=[2,2]^T,\quad \mathbf{X}_2=[2,3]^T,\quad \mathbf{X}_3=[3,3]^T

w2:X4=[2,2]T,X5=[2,3]T,X6=[3,3]Tw_2: \mathbf{X}_4=[-2,-2]^T,\quad \mathbf{X}_5=[-2,-3]^T,\quad \mathbf{X}_6=[-3,-3]^T

利用自相关矩阵RR作 K-L 变换,把原样本集压缩成一维。

解: 第一步: 计算样本集的自相关矩阵RR

R=E(XXT)=16i=16XiXiT=[5.76.36.37.3]R = E(\mathbf{X}\mathbf{X}^T) = \frac{1}{6}\sum_{i=1}^6 \mathbf{X}_i\mathbf{X}_i^T = \begin{bmatrix}5.7 & 6.3 \\ 6.3 & 7.3\end{bmatrix}

第二步: 计算RR的特征值λ\lambda,选择较大值。由λER=0\vert \lambda E-R\vert=0

λ1=12.85,λ2=0.15\lambda_1=12.85, \quad \lambda_2=0.15

第三步: 根据Ru1=λ1u1R\mathbf{u}_1=\lambda_1\mathbf{u}_1计算λ1\lambda_1对应的特征向量u1\mathbf{u}_1,并归一化

u1=12.3[1,1.14]T=[0.66,0.75]T\mathbf{u}_1=\frac{1}{\sqrt{2.3}}[1,1.14]^T=[0.66,0.75]^T

变换矩阵为

U=[u1]=[0.660.75]U=[\mathbf{u}_1]=\begin{bmatrix}0.66\\0.75\end{bmatrix}

第四步: 利用UU对样本集中的每个样本进行 K-L 变换

X1=UTX1=[0.660.75][22]=2.82X_1^*=U^TX_1=\begin{bmatrix}0.66 & 0.75\end{bmatrix}\begin{bmatrix}2\\2\end{bmatrix}=2.82

变换结果为:

w1:X1=2.82,X2=3.57,X3=4.23w_1: \mathbf{X}_1^*=2.82,\quad \mathbf{X}_2^*=3.57,\quad \mathbf{X}_3^*=4.23

w2:X4=2.82,X5=3.57,X6=4.23w_2: \mathbf{X}_4^*=-2.82,\quad \mathbf{X}_5^*=-3.57,\quad \mathbf{X}_6^*=-4.23