1 - 线性降维
样本在高维情形下会出现数据样本稀疏(因为样本不是均匀分布在每个维度表示的空间中),距离计算困难(欧式距离也不如人想象的那么有效),可视化困难,容易过拟合等问题。所以不论是机器学习,还是人类理解角度,高维都是个不喜欢的话题(当然对于低维样本线性不可分而上升到高维线性可分的情形并不是这里指的情况)。
因为基于大多人类观测和收集到的样本,与学习任务密切相关的也许只是某些低维分布。所以如果适当的降维,可以让样本在所需维度上达到更密集的分布,且距离计算问题也能缓解不少。
一般来说,想要获得低维子空间,最简单的是对原始高维空间进行线性变换。给定(d)维空间中的样本({f X}=({f x}_1,{f x}_2,...,{f x}_N)in R_{d imes N}),变换后得到(d{'} leq d)维空间中的样本:
其中({f W} in R^{d imes d{'}})是变换矩阵,({f X'}in R^{d{'} imes N})是样本在新坐标空间中的表达。变换矩阵(f W)可以看成是(d')个(d)维基向量,({f x'}_i={f W}^T{f x}_i)是第(i)个样本(即(f X)中的第(i)个列向量)与这(d')个基向量分别做内积而得到的(d')维特征列向量。({f x'}_i)同时也可以看成是第(i)个(d)维的样本({f x}_i)在新坐标系({{f w}_1,{f w}_2,...,{f w}_{d{'}}})中的坐标向量,若({f w}_i)与({f w}_j),((i
eq j)),则新的坐标系是一个正交坐标系(我们通常的(x,y,z)就是一个正交坐标系),此时(f W)为正交变换。显然,新空间中的特征是原空间中特征的线性组合。
基于线性变换来降维的方法称为线性降维方法,不同的线性降维方法基本上就是对低维子空间的性质有不同要求,对降维效果的评估,就是比较降维前后学习器的性能。其中主成分分析是一种无监督的线性降维方法,线性判别分析(LDA)是一种有监督线性降维方法。
2 - PCA
PCA是一种降维方法,其可以用来1)可视化;2)预处理;3)建模;4)压缩。
假设有(N)个样本({{f x}_i}),其中每个样本都是(d)维:({f x}_iin R^d)。我们的目标就是用更低维的样本表示({{f x}_i'})来代替这些高维样本,其中低维样本维度为(d')且(d'<d)。
这可以看成是一个线性变换的形式:
其中(f W)是一个(d imes d')的变换矩阵;(x_i)为一个低维样本表示的列向量,({f w}_i)为矩阵(f W)的第(i)个列向量。矩阵(f W)同样可以看成是(d')个基向量即(f W=[w_1,...,w_{d'}])。如果假定样本获取过程中会混入高斯噪音,那么该模型就是一个线性回归模型了,只是这里(f x')是一个未知的线性参数。
为了学习这个模型,对该模型建立目标函数,这里采用最小二乘方法:
这里的限制使得求得的变换矩阵式一个正交矩阵,即等同于:
其中(f x')所在空间的坐标系为潜在坐标系。具体过程如下:
1)先计算原有样本矩阵基于样本的均值向量:
2):计算原有样本矩阵中心化后的协方差均值矩阵:
3):对上述矩阵进行矩阵分解,并计算其特征值和特征向量:
其中(f Lambda)是由特征值组成的对角矩阵({f Lambda}=diag(lambda_1,...lambda_d));(f V)是对应特征值的特征向量,且该矩阵是正交矩阵即,({f V}=[{f V}_1,...{f V}_d]),(f V^TV=I)
对特征值矩阵进行从大到小排序,选取足够多精度的特征值(即丢弃特征值较小的)
4):用保留的特征值对应的特征向量组成正交矩阵({f W}=[{f V}_1,...{f V}_{d'}])
5):从而新的样本为({f x}_i'={f W}^T({f x}_i-{f b})),(iin{1,2,...,N})
2.1 为什么选取特征值较大的,而不是较小的
假设投影后空间的坐标系为({f W} = {{f w}_1,{f w}_2,{f w}_3,...{f w}_{d'}}),且其两两正交,且原始样本已经进行了中心化,即均值为0。原始样本({{f x}_i})在新空间中投影为({{f x}_i'}),且({x}_{ij}'={f w}_j^T{f x}_i),是({{f x}_i'})在低维坐标系下第(j)维的坐标值。以此重构得到(hat {f x}_i={f Wx}_i'=sum_{j=1}^{d'}{ x}_{ij}'{f w}_j)
基于整个训练集,原样本点({f x}_i)与基于新空间样本点重构的样本点(hat {f x}_i)之间距离为:
因为训练集给定,所以基于当前训练集样本自我相乘可以看成是一个固定常数const。上式即PCA的目标函数。
假设当前得到了低维空间样本(X'),为了使在低维上尽可能分开,则应该使低维样本集的方差尽可能大。
投影到新空间的样本方差为:(sum_{i=1}^N{f x'}_i{f x'}_i^T)即(sum_{i=1}^N{f W}^T{f x}_i{f x}_i^T{f W})
等同于求样本矩阵相乘后的矩阵的迹,即:
通过使用拉格朗日乘子法:
因为有公式(frac{dtr(f X^TBX)}{df X}=f BX+B^TX),
将上式关于(f W)求导得:
即$${f XX^TW}=lambdaf W$$
刚好是求(f XX^T)的特征值问题
3 - LDA
ps:这里所说的LDA用来降维指的是1936年fisher的论文。
决策分析是分类问题的一个生成模型方法,需要对特征拟合一个多元高斯变量模型,正如之前说的,这在高维情况下问题比较棘手,所以如果能将特征从(d)维降低到(d')维,那么困难就能缓解一些。最简单的线性投影方法,也就是({f X'}=f W^TX)。PCA是一种寻找(f W)的无监督方法,可是却没利用上当样本有标签时候的标签信息;一种代替方法就是使用高斯条件类别密度模型(gaussian class-conditional density model).该方法的合理之处在于我们只是计算潜在特征(非高斯)的线性组合而已。该方法也叫做fisher的线性决策分析(FLDA).
FLDA是一种决策和生成方法的混合模型,它的缺点在于其映射后的维度(d'<|c|-1)这里(|c|)是类别个数。例对于2类问题,那么只能寻找一个向量(f w)来作为变化矩阵。
3.1 两类问题
对于2类问题,先分别求出不同类别的均值向量:
假设均值向量映射在某个1维坐标(一条直线)后,得(m_k={f w}^T{f mu}_k)且每个样本映射后(x'_i={f w}^T{f x}_i),那么投影后新样本点的方差正比于:
当前目标是找到能够让在新样本空间中类间距离最大,类内距离最小,即:
将上式写成关于(f w)的式子:
上式只做了分子的运算,分母运算省略了,且因为新空间是1维样本,所以({f w^Tmu}_2=({f w^Tmu}_2)^T=mu_2^T{f w})
其中(f S_B)是类别之间的距离矩阵:
({f S_B}=({f mu_2-mu_1})({f mu_2-mu_1})^T ag{3.1.5});
而(f S_W)是类间距离矩阵:
({f S_W}=sum_{i:c_1}({f x}_i-mu_1)({f x}_i-mu_1)^T+sum_{i:c_2}({f x}_i-mu_2)({f x}_i-mu_2)^T ag{3.1.6})
因为式子3.1.3分子分母都是标量,故而,3.1.4可以表示成:
即转换成了一个求特征值的问题,如果({f S_W})可逆的话,则:
且({f S_Bw}=(mu_2-mu_1)(mu_2-mu_1)^T{f w}=(mu_2-mu_1)(m_2-m_1))
所以:
左右消去标量值,因为只关心坐标系,即方向,而不关心缩放因子,即缩放多少,所以:
故而最后可以直接取:({f w}={f S_W^{-1}}(mu_2-mu_1))
3.2 多类问题
因为主旨还是为了新空间中类间最大,类内最小的fisher准则。因为LDA的限制,(d'leq |c|-1)。
假定类别(k)的样本均值以及所有类的样本均值为:
假设({f x}_i^k,{f x}_j^l)分别为类(c_k,c_l)类的原始(d)维特征向量,(delta({f x}_i^k,{f x}_j^l))为这两个向量的距离,则各类特征向量之间的平均距离为:
其中(|c|)为类别个数,(N_k,N_l)为对应类别中样本个数,(P_k,P_l)为对应类别的先验概率。
对于简单的欧式距离来说:
将3.2.3,3.2.1带入3.2.2,得
上式中括号第二项为第(k)类的均值向量与总体均值向量之间的欧式距离,用先验概率加权平均后可以代表各类均值向量的平均平方距离,即类间距离:
令:
({f S_B}= sum_{i=1}^{|c|}P_k(mu_k-mu)(mu_k-mu)^T)
${f S_W}=sum_{k=1}^{|c|}P_kleft[frac{1}{N_k}sum_{i=1}^{N_k}({f x}_i^k-mu_k)({f x}_i^k-mu_k)^T
ight] (
那么)D_d({f x})=tr({f S_B}+{f S_W})(
因为对于原始空间,)max J_d({f x})=frac{tr({f S_B})}{tr({f S_W})}(~)frac{|{f S_B}|}{|{f S_W}|}$
则
上式可以如2类情况一样得到结果:
当({f S_W})非奇异时,可得:
即。得到最后的解(个人认为mlapp这部分有问题,prml这部分是对的):
({f W})就是矩阵({f S_W^{-1}}{f S_B})的前(d')个特征向量构成的矩阵(从大到小的特征值排序)
ps:矩阵的秩小于等于各个相加矩阵的秩的和,所以一共(|c|)类,那么({f S_B})的秩最多为(|c|-1)(第(|c|)个矩阵可以通过前面矩阵线性表示出来)。
参考资料:
[] 周志华 机器学习
[] Computer Science Department University of Toronto. Machine Learning and Data Mining Lecture Notes
[] Machine learning A Probabilistic Perspective
[] 边肇祺,模式识别第二版
[] http://www.cnblogs.com/jerrylead/archive/2011/04/21/2024384.html
[] Introduction to Statistical Pattern Recognition 2nd ed. - K. Fukunaga p454
[] prml p192