PCA 原理及其在图像压缩中的应用

PCA(主成分分析),Principle Component Ananlysis

如果有很多个样本数据,需要从这些样本数据中找出“冗余”的信息,然后剔除这些冗余信息,PCA就可以完成这个任务。

将所有的样本数据 xi (列向量)拼成一个矩阵 { x1,x2,...,xi,...,xK }。
第一步是预处理,要保证数据的均值为0。那么

μ:=1Ki=1Kxi

xi:=xiμ

求这个矩阵的协方差矩阵:
Σ=1Ki=1K(xi)(xi)T

当然,我们在使用PCA处理数据之前需要进行白化处理,那么 x=0 ,也就是说,此时的协方差矩阵是:

Σ=1Ki=1K(xi)(xi)T

然后求出矩阵 Σ 对应的特征向量和特征值。将特征值按从大到小排列{ λ1,λ2,...,λK },其对应的特征向量为{ u1,u2,...,uK }

可以证明, u1 就是所有数据点的主要分布方向。

那么,我们就可以据此排除一些次要的分布方向,保留更重要的分布方向。

我们保留前k个特征向量,那么它们对应的矩阵

Û ={u1,u2,...,uk},k<=K

如果选择这k个向量作为新的坐标系,那么数据点 xi 的坐标是:
{u1xi,u2xi,...,ukxi}T

对数据进行降维:
xi^=Û Û Txi

那么 xi^ 就是将原来的 xi 投影在前k个最重要的特征向量方向上之后,在原始坐标系中的坐标。

这种投影方式可以保证降维的同时,信息量损失最小。

PCA在图像压缩中的应用

在图像中,选取L列作为训练样本,进行PCA降维,假设原始数据为N维,降维到M维。
为了保证算法对于图像的整体亮度改变具有鲁棒性,在使用训练数据之前,需要对每个数据进行零均值处理。

xi:=xiμi

μi:=1Nj=1Nxi(j)

然后,将降维方法应用到图像的所有列。
那么,整张图像就降为M维,实现了数据压缩。

你可能感兴趣的:(机器学习,数学模型,机器学习,算法)