浅析 K-L 变换
前言
K-L 转换(Karhunen-Loève Transform)是建立在统计特性基础上的一种转换,它是均方差(MSE, Mean Square Error)意义下的最佳转换,因此在资料压缩技术中占有重要的地位。
K-L 变换的本质就是一个线性变换
y=UTx
K-L 变换的目的: 对输入的向量 x,做一个正交变换,使得输出的向量得以去除数据的相关性
原理简述
设x={x1,x2,⋯,xn}为n维随机向量
为了找到 K-L 变换矩阵U,令
y=UTx
我们希望新向量y的各个分量是独立的,因此有
E(yiyj)=0,i=j
可以计算y的相关系数矩阵Ry
Ry=E(yyT)=E(UTxxTU)=E(UTRxUT)
显然Rx=E(xxT)是对称矩阵,因此它的特征向量是相互正交的,若将U的列向量置为Rx的特征向量,此时Ry可以转换成对角矩阵。
Ry=E(yyT)=E(UTRxUT)=Λ
将相关函数矩阵对角化,即通过 K-L 变换消除原有向量x的各分量间的相关性,从而有可能去掉那些带有较少信息的分量以达到降低特征维数的目的。
Ry=Λ=λ1⋮0⋯⋱⋯0⋮λn
K-L 变换的产生矩阵由数据的二阶统计量决定,即 K-L 坐标系的基向量为某种基于数据 x 的二阶统计量的产生矩阵的特征向量
K-L 变换的产生矩阵可以有多种选择:
- x的相关函数矩阵: R=E(xxT)
- x的协方差矩阵: C=E((x−μ)(x−μ)T)
- 样本总类内离散度矩阵: Sw=∑PiΣi
离散 K-L 变换实现
设x={x1,x2,⋯,xn}为n维随机向量,Ω是来自M个模式类的样本集,总样本数为 N。
利用 K-L 变换将x变成d维。
step 1. 计算样本集Ω的相关系数矩阵R;
R=E(xxT)≈N1i=1∑NxixiT
step 2. 计算R的特征值λi(i=1,2,⋯,n),选择前d个较大值;
step 3. 计算d个特征值对应的特征向量ui(i=1,2,⋯,n),并归一化;
U=[u1,u2,⋯,ud]
step 4. 对Ω中的每个向量进行 K-L 变换;
y=UTx
简单示例
两个模式类的样本分别为
w1:X1=[2,2]T,X2=[2,3]T,X3=[3,3]T
w2:X4=[−2,−2]T,X5=[−2,−3]T,X6=[−3,−3]T
利用自相关矩阵R作 K-L 变换,把原样本集压缩成一维。
解: 第一步: 计算样本集的自相关矩阵R。
R=E(XXT)=61i=1∑6XiXiT=[5.76.36.37.3]
第二步: 计算R的特征值λ,选择较大值。由∣λE−R∣=0得
λ1=12.85,λ2=0.15
第三步: 根据Ru1=λ1u1计算λ1对应的特征向量u1,并归一化
u1=2.31[1,1.14]T=[0.66,0.75]T
变换矩阵为
U=[u1]=[0.660.75]
第四步: 利用U对样本集中的每个样本进行 K-L 变换
X1∗=UTX1=[0.660.75][22]=2.82
变换结果为:
w1:X1∗=2.82,X2∗=3.57,X3∗=4.23
w2:X4∗=−2.82,X5∗=−3.57,X6∗=−4.23