Karhunen-Loeve Transform(KLT)是一种数据变换与分析方式,常用于数据压缩和PCA降维。
1. KLT是什么变换,KLT的目的是什么?
KLT是对向量x做的一个正交变换y=Φx,目的是变换到y后去除数据相关性。
PS:其中,Φ是x特征向量组成的矩阵,满足ΦTΦ=I,当x都是实数时,Φ是正交矩阵。
2. 为什么说KLT可以去除数据相关性?
用my表示向量y的平均值,y的协方差矩阵记为Σy,通过变换 y=ΦTx,有
写成矩阵形式:
由此可见,做了KLT变换之后呢,Σy成为了对角阵,也就是对于任意i≠j,有cov(yi,yj)=0;i=j有cov(yi,yj)=λi,所以说去除了数据相关性。而且,yi的方差与x协方差矩阵的第i个特征值相等,即。
3. 如何将KLT用于PCA?
PCA降维可以用于压缩(详见主成分分析的介绍),这里做一个概要:
假设待压缩数据为N维向量x,通过KLT变换压缩成M维信号y(M<N)
- 找到x的均值Mx和协方差矩阵 Σx
- 计算 Σx的特征值λi和特征向量φi,并按照λi递减(从大到小)的顺序重新组合,i∈[0,N-1]
- 根据能量比>=threshold 进行m个主成分的选择
- 将M个最大特征值对应的特征向量重新组合成N*M的特征向量矩阵 Φm
- 做KLT变换 y = ΦmTx,形成压缩向量y
- 逆KLT变换恢复x,x = Φmy
Reference:
1. http://fourier.eng.hmc.edu/e161/lectures/klt/node4.html
2. http://fourier.eng.hmc.edu/e161/lectures/klt/node3.html