我所理解的SVD与PCA

Motivation

之所以要写本文,是因为我先在矩阵课上学了SVD,后又在机器学习课上了解到了PCA,当时就觉得两者十分相似,但是一时又难以融会贯通。遂在网上查阅相关资料,然而网上绝大多数文章要么不加思考就转载,要么掺杂着不少谬误。行文语言和逻辑均清晰的更是少有,读完后甚至会更加迷茫。

因而写作此文,期望用较短的篇幅简要说明SVD、PCA以及两者之间的联系,也希望本文能成为讲义级易懂而严谨的文章。

言归正传,首先一句话概括SVD和PCA的联系:对中心化后的样本矩阵做SVD的过程就是PCA

接下来本文将对SVD与PCA进行简要介绍。


SVD

SVD(Singular Value Decomposition,奇异值分解)就是将任意一矩阵A_{n\times m}rank(A)>0)分解为三个矩阵相乘的形式,但对这三个矩阵的形式有要求,其过程如下:

(1)求A^TA的正特征根:\lambda _{1},\lambda _{2},...,\lambda _{k}>0,与正交特征向量:u_{1}\bot u_{2}\bot... \bot u_{k}

(2)令Q=\left(\frac{u_{1}}{\vert u_{1} \vert },\frac{u_{2}}{\vert u_{2} \vert },..., \frac{u_{k}}{\vert u_{k} \vert } \right)_{m\times k}

(3)令P=\left(\frac{Au_{1}}{\vert Au_{1} \vert },\frac{Au_{2}}{\vert Au_{2} \vert },..., \frac{Au_{k}}{\vert Au_{k} \vert } \right)_{n\times k}

(4)令S=\begin{bmatrix}  \sqrt{\lambda _{1}}  & 0 & \cdots & 0 \\  0 & \sqrt{\lambda _{2}} & \cdots & 0 \\  \vdots  & \vdots  & \ddots & \vdots  \\  0 & 0 & \cdots & \sqrt{\lambda _{k}}  \end{bmatrix}_{k\times k} 

         对角线元素称为A正奇异值,除此之外,A还有m-k个为0的奇异值。

(5)即得到简奇异值分解A=PSQ^T 其又称为正奇异值分解

(6)将P_{n \times k}扩为正交矩阵(扩充的列应与原有列正交)W=(P,\tilde{P} )_{n \times n}

             Q_{m\times k}同样扩为正交矩阵V=(Q,\tilde{Q})_{m\times m}

              则得到奇异值分解A=W\begin{bmatrix} S & 0 \\ 0 & 0 \end{bmatrix}_{n\times m}V^T

其实在PCA中,使用到的是简SVD。


PCA

PCA(Principal Component Analysis,主成分分析)顾名思义,就是研究数据所含有的主要成分的方法,常用于矩阵降维。与SVD不同的是,PCA有明确的实际意义,即要尽可能多地保留原数据隐含的信息。其过程如下:

(0)设有nm维的数据x_{i} \in R^m,i=1,2,...,n

(1)将这n条数据按行组成矩阵X_{n\times m}=[x_{1}, x_{2},..., x_{n}]^T

(2)将X进行中心化处理得到\hat{X} :即对每一行减去\bar{x}^T = \frac{1}{n}{\sum_{i=1}^n{x_{i}^T}}

(3)求出协方差矩阵C_{m\times m} = \frac{1}{n} \hat{X}^T\hat{X}

         这里的因子\frac{1}{n} 也可省略,并不会影响降维后的结果(因为C的特征根虽会等比改变,但特征根的大小关系与其对应的特征向量均不变)。而之所以在这里写出来,是为了和后文PCA的推导部分相对应。

(4)求出C的特征根与特征向量

(5)将特征根从大到小排列并取前k\lambda _{1}>\lambda _{2}>...>\lambda _{k},再用这k个特征根对应的特征向量组成矩阵Q_{m\times k}=\left(\frac{u_{1}}{\vert u_{1} \vert },\frac{u_{2}}{\vert u_{2} \vert },..., \frac{u_{k}}{\vert u_{k} \vert } \right)

(6)Y_{n\times k}=XQ的每一行为降到k维后的数据

可见,若将SVD中的A与PCA当中的\hat X对应起来并忽略掉协方差矩阵C的因子\frac{1}{n} ,那么我们就发现了SVD和PCA之间的联系:对中心化后的样本矩阵做SVD的过程就是PCA。

也许读者会有这样的疑惑:为什么协方差矩阵C前面有个因子?为什么PCA的计算的过程是上述那样呢?接下来本文将从最小均方误差的角度对PCA的原理进行推导。


最小均方误差指的是:使先降维后升维的新数据与原数据的误差最小。

先定义一组m维的标准正交基

\{u_{i}\},i=1,...,m,u^T_{i}u_{j}=\begin{cases}    1       & \quad \text{if } i=j\\    0  & \quad \text{if } i\neq j  \end{cases}

每条m维的原数据均可以表示为上述基的线性组合

x_{j}=\sum_{i=1}^m \alpha _{ji}u_{i} \quad (1)

相当于进行了坐标变换

\{x_{j1},...,x_{jm}\}\xrightarrow {\{u_{i}\}}\{\alpha _{j1},...,\alpha_{jm}\}

(1)式等号两侧同左乘u_{i}^T易得

\alpha_{ji}=u_{i}^Tx_{j}=x_{j}^Tu_{i}

将上式带入(1)式得

x_{j}=\sum_{i=1}^m(x_{j}^Tu_{i})u_{i}

k个向量近似表示x_{j},即下式的第一个求和部分的权值z_{ji}对每个x_{j}是不同的,但所有的x_{j}共享第二个求和部分的权值b_{i}\hat x_{j}就是x_{j}先降维后升维得到的新数据。

x_{j}\approx \hat x_{j}=\sum_{i=1}^k z_{ji}u_{i}+\sum_{i=k+1}^mb_{i}u_{i}

目标是使失真度(均方误差)J最小

\begin{align}J & = \frac{1}{n} \sum_{j=1}^n ||x_{j}- \hat x_{j}||^2\\& =\frac{1}{n} \sum_{j=1}^n (x_{j}- \hat x_{j})^T(x_{j}- \hat x_{j})\\& =\frac{1}{n} \sum_{j=1}^n \left( \sum_{i=1}^k(x^T_{j}u_{i}-z_{ji})^2 + \sum_{i=k+1}^m(x^T_{j}u_{i}-b_{i})^2 \right) \ (2)\end{align}

(2)式含有的参数无非是u_{i}、z_{ji}、b_{i},但u_{i}z_{ji}、b_{i}的关系可看做“蛋和鸡”的关系:知道了u_{i}便能确定权重z_{ji}、b_{i},反之亦然。因而接下来我们不妨先将目标定为通过调整权重z_{ji}、b_{i}来求上式的最小值,之后再反过来确定基u_{i}。根据多元函数的凸优化理论(本例为2元2次),上式在对各个参数(z_{ji}、b_{i})的导数均为零时取得最小值,因而:

(2)式对参数z_{ji}求导,得到如下kn个等式

\frac{\partial J}{\partial z_{ji}}=\frac{2}{n}(z_{ji}-x_{j}^Tu_{i})=0\ (i=1,...,k,\ j=1,...,n)

易得

z_{ji}=x_{j}^Tu_{i} \ (i=1,...,k,\ j=1,...,n)

(2)式对参数b_{i}求导,得到如下m-k个等式

\frac{\partial J}{\partial b_{i}}=\frac{2}{n}\sum_{j=1}^n (b_{i}-x_{j}^Tu_{i}) \ (i=k+1,...,m)

易得

b_{i}=\frac{1}{n}\sum_{j=1}^nx_{j}^Tu_{i}=\bar {x} ^T u_{i} \ (i=k+1,...,m, \ \bar {x}=\frac {1}{n}\sum_{j=1}^n x_{j})

因而

x_{j}-\hat {x}_{j}=\sum_{i=k+1}^m\{(x_{j}-\bar{x} )^Tu_{i}\}u_{i}

J = {\frac{1}{n}\sum_{j=1}^n\sum_{i=k+1}^m(x_{j}^Tu_{i}-\bar{x}^Tu_{i})^2} = {\sum_{i=k+1}^m}{u_{i}^T} C u_{i}

C为之前出现过的协方差矩阵。由于所求目标为带限制条件(u_{i}^Tu_{i}=1)的最优化问题,因而使用拉格朗日乘子法:

J= {\sum_{i=k+1}^m}{u_{i}^T} C u_{i}+ {\sum_{i=k+1}^m}\lambda_{i}(1-u_{i}^Tu_{i})

上式为矩阵表达式,其对基向量u_{i}求导并化简可得到m-k个式子(此处用到了矩阵表达式对向量的求导公式,请读者自行查阅)

Cu_{i}=\lambda_{i}u_{i}\ (i=k+1,...,m)

由上式可知,J的最小值对应协方差矩阵Cm-k个最小的特征根及其特征向量,对应的失真度为

J= {\sum_{i=k+1}^m}{u_{i}^T} C u_{i}=\sum_{i=k+1}^m \lambda_{i}

进一步我们可以得出\hat x_{j}=\sum_{i=1}^k z_{ji}u_{i}+\sum_{i=k+1}^mb_{i}u_{i} \ (z_{ji}=x_{j}^Tu_{i}, \ i=1,...,k,\ j=1,...,n)的前k个成分u_{i}k个最大特征根对应的特征向量,即原数据在最小均方误差目标下的降维后的结果就是Y_{n\times k}=XQ\ \left( X_{n\times m}=[x_{1}, x_{2},..., x_{n}]^T,\ Q_{m\times k}=\left(\frac{u_{1}}{\vert u_{1} \vert },\frac{u_{2}}{\vert u_{2} \vert },..., \frac{u_{k}}{\vert u_{k} \vert } \right)\right)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343