给定n个m维样本X-(1), X(2),…,X(n),假设我们的目标是将这n个样本从m维降低到k维,并且尽可能保证这种降维的操作不会产生很大的代价(重要信息的丢失)。换句话说,我们要把n个样本点从m维空间投影到k维空间。对于每一个样本点,我们都可以用下式表示此投影过程:
Z=ATX (1)
其中X是m维样本点,
Z
是投影后得到的k维样本点,A是一个
m
*
k
的矩阵。
回顾一下,如果采用主成分分析法(PCA)来进行降维的话,我们首先求出样本的均值:
再求出散布矩阵(scatter matrix):
接着求得散布矩阵S前k大特征值所对应的特征向量s1,s2,…,sk,然后对s1,s2,…,sk这k个向量进行单位化,即使得||s1||=||s2||=…=||sk||=1,最后得到式(1)中的矩阵A:
(2)
例子: 为了更直观地从几何上理解式(1)的含义,我们以一组2维数据作为例子,在这个例子当中,我们使用PCA的方法将这组2维数组降到1维。矩阵A所存储的这些特征向量,实际上降维后的是新坐标轴,而在这个例子当中,我们得到的是一个新的1维坐标轴。如图1所示,图中的红色叉点代表2维样本点垂直投影到这个新坐标轴上的点。对于每一个2维空间上的样本点X,只要我们将它代入式(1)就可以计算出其降维后的表达(在这个例当中,则是一个1维的向量,即一个值):
(3)
图1 10个样本点在2维空间上的表达
而式(3)算出来的这个值,实际上是这些投影点离原点的距离。因此,我们可以画出一个数轴来表示这个新的坐标轴,再根据式(3)算出来的这些值,在数轴上标出它们的位置,如图2所示。
图2 10个样本点降到1维空间后的表达
这一组样本点降维后所产生的损失,可以通过下式来计算:
(4)
为了理解式(4),我们首先需要理解AATX(i)。回顾刚刚所说的,计算ATX(i)所得到的,实际上是样本点在低维空间上的表达(参考图2)。相对而言,X(i)是样本点在高维空间上的表达。然而,我们知道不同纬度空间的点是无法做比较的,举例来说,一个在2维空间上的点(x1, x2)是无法跟一个在1维空间上(y1)的点做比较的,因为它们纬度不一样(它们的所存在的世界不一样,它们不在同一个世界里)。
为了对2个不同纬度的样本点作比较,我们需要将它们放在同一个纬度空间下。一种合理的做法是,将低维空间上的点投影到高维空间,并假设高纬度的值为0。AATX(i)所做的工作就是把降维后的样本点反投影到高维空间上。以刚刚所举的例子来说,ATX(i)是图2上的叉点,而AATX(i)实际上是图1中直线(新坐标轴)上的叉点。
值得注意的是,图2和图1上的这些叉点是一一对应的,无论在高维空间上还是在低维空间上,它们离原点的距离是不变的(仔细观察图1和图2中叉点离原点的距离)。我们仍然可以围绕这个例子,从理论上证明这一点,首先假设其中一个样本点
X降维后的表达为
Z=[
s
1
x
1+
s
2
x
2],那么对它从低维到高维(在此例中,是从1维到2维)的反向投影为:
(5)
现在,我们来证明式(5)中的Xapprox所表示的就是图1中的叉点。要证明这一点,我们需要证明两样东西:①Xapprox到原点的距离与Z到原点的距离相等,即||X||=||Z|| ②Xapprox在高维空间的超平面上(在此例中,高维空间是2维空间,低维空间是1维空间,超平面是一条直线)。
证明①:
由于s经过单位化,即||s||=s12+s22=1,所以||Xapproax||=(s1x1+s2x2)2=||Z||,证毕.
证明②:
首先要得到超平面的一般表达式,而要得到超平面的一般表达式,就要计算出超平面所对应的法平面n,在此例中,法平面满足nTs=0,其中sT=[s1, s2]。我们可以得到n=[-s2/s1, 1],则超平面的一般表达式为(-s2/s1)x-1+x2=0。将XapproxT=[s1(s1x1+s2x2), s2(s1x1+s2x2)]代入(-s2/s1)x-1+x2,得到(-s2/s1) *s1(s1x1+s2x2)+s2(s1x1+s2x2)= -s2(s1x1+s2x2)+ s2(s1x1+s2x2)=0,说对于任意的Xapprox,都在超平面上,证毕.
回到式(4)当中,L所计算的是每个样本点在高维空间投影到低维空间后的距离总和。