机器学习:降维算法-主成分分析PCA算法两种角度的推导

若把高维空间的样本点(可以想象是一个3维的)映射到一个超平面,怎样的超平面可以认为是“好的”,可以想到这个超平面大概有这样的性质:

  1. 最近重构行:样本点到超平面的距离都足够近;(样本点变化尽可能小,丢失的信息尽可能少)
  2. 最大可分性:样本点在这个超平面上的投影尽可能分开.(样本点在低维空间区分度尽可能高)

神奇的是,从两个角度出发,可以分别得到主成分分析PCA算法的两种等价推导

根据最近重构性推导

假设样本进行了中心化,即:

\sum _{i=1}^{m}x_{i} = 0.

假设投影变换后新的坐标系为W={w_{1},w_{2},...,w_{d}},其中w_{i}是标准正交基向量,\left \| w_{i} \right \|_{2} = 1,w_{i}^{T}w_{j} = 0(i\neq j).

若丢弃坐标系中部分坐标,即将维度降低到d'<d,得到W'={w_{1},w_{2},...,w_{d'}},则样本点x_{i}在低维坐标系中的投影为z_{i} = \{z_{i1},z_{i2},...,z_{id'}\},其中z_{ij} = w_{j}^{T}x_{i}.若基于z_{i}来重构x_{i},则会得到:

\hat{x}_{i} = \sum _{j=1}^{d'}z_{ij}w_{j}

(上式\hat{x}_{i}只是原样本点x_{i}的的近似,因为丢弃了部分坐标w_{d'+1},...,w_{d}).

对于整个样本集,原样本点x_{i}和基于投影重构的样本点\hat{x}_{i}间的距离为:

\begin{align*} \sum_{i=1}^{m}\left \| \sum_{j=1}^{d'}z_{ij}w_{j} - x_{i} \right \|_{2}^{2} &= \sum_{i=1}^{m} \left \| W'z_{i} - x_{i} \right \|_{2}^{2} \\ &=\sum _{i=1}^{m}\left \| W'z_{i} \right \|_{2}^{2} - 2\sum_{i=1}^{m}(W'z_{i})^{T}x_{i} + \sum_{i=1}^{m}\left \| x_{i} \right \|_{2}^{2} \\ &= \sum_{i=1}^{m}z_{i}^{T}W'^{T}W'z_{i} - 2\sum_{i=1}^{m}z_{i}^{T}z_{i} + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &=-\sum_{i=1}^{m}z_{i}^{T}z_{i} + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -\sum_{i=1}^{m}tr(z_{i}z_{i}^{T}) + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -tr(\sum_{i=1}^{m}z_{i}z_{i}^{T}) +\sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -tr(\sum_{i=1}^{m}W'^{T}x_{i}x_{i}^{T}W') + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -tr(W'^{T}(\sum_{i=1}^{m}x_{i}x_{i}^{T})W') + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -tr(W'^{T}XX^{T}W') + \sum_{i=1}^{m}x_{i}^{T}x_{i} \end{align*}.

根据最近重构性,上式应被最小化,得到主成分分析的优化目标

\min_{W'} -tr(W'^{T}XX^{T}W')

s.t.  W'^{T}W' = I.

根据最大可分性推导

投影后,样本点的方差之和为(样本X已中心化:(\sum _{i=1}^{m}x_{i} = 0),所以投影后的Z也是中心化的):

\begin{align*} tr(\sum_{i=1}^{m}z_{i}z_{i}^{T}) &= tr(\sum_{i=1}^{m}W'^{T}x_{i}x_{i}^{T}W') \\ &= tr(W'^{T}(\sum _{i=1}^{m}x_{i}x_{i}^{T})W')\\ &= tr(W'^{T}XX^{T}W') \end{align*}.

根据最大可分性,投影后的样本点应尽量分开,所以方差应尽量大,于是从最大可分性角度得到主成分分析的优化目标

\max_{W'} tr(W'^{T}XX^{T}W')

s.t.  W'^{T}W' = I.

显然,跟从最近重构性角度得到的优化目标是等价的。

利用拉格朗日乘子法,可得:XX^{T}w_{i} = \lambda_{i}w_{i}.

发现w_{i}须是XX^{T}的特征向量。于是,对XX^{T}进行特征值分解,将求得的特征值排序:\lambda_{1}\geqslant \lambda_{2}\geqslant ...\geqslant\lambda_{d},取前d'个特征值对应的特征向量构成W'={w_{1},w_{2},...,w_{d'}}(个人觉得,这里还需保证w_{1},w_{2},...,w_{d'}相互正交,才能满足约束,因为如果有相同的特征值,那么其对应的特征向量不一定正交。顺便补充一个定理:对称矩阵不同特征值对应的特征向量相互正交),这就是主成分分析的解。

算法描述如下:

其他补充:

有三种方法确定降维后的维度d':

  1. 人为指定;
  2. 在d'值不同的低维空间对k近邻分类器(或其他开销较小的学习器)进行交叉验证来选取较好的d'值;
  3. 设置一个重构阈值,如t = 95%,然后选取使 \frac{\sum_{i=1}^{d'}\lambda_i}{\sum_{i=1}^{d}\lambda_{i}}\geqslant t成立的最小d'值.

PCA算法除了保存投影矩阵W',还需保存样本的均值向量,这是为了对新样本同样进行中心化。PCA降维看似舍弃了一部分信息,但这么做是必要的:1、这样做使样本的采样密度增大;2、当数据受到噪声影响时,最小特征值对应的特征向量往往与噪声有关

参考资料:

周志华《机器学习》

David.C.Lay《线性代数及其应用》

史荣昌《矩阵分析》

参考博文:

主成分分析(PCA)原理总结

PCA的数学原理

相关博文:

拉格朗日乘子法原理:等式约束和不等式约束

猜你喜欢

转载自blog.csdn.net/weixin_35732969/article/details/81556904