PCA主成分分析

https://wenku.baidu.com/view/a6c65131172ded630b1cb6d9.html

假设输入数据集为\{x^{1},x^{2},...,x^{m} \},维度n=2,即x^{i}\in R^{2}

\frac{1}{m} \sum_{i=1}^m(x^i)(x^i)^T

假设x的均值为0,那么\Sigma 就是x的协方差矩阵

数据变化的主方向u_{1} 就是协方差矩阵\Sigma 的主特征向量

可以通过标准的数值线性代数运算软件求得特征向量,我们先计算出协方差矩阵\Sigma 的特征向量,按列排放,而组成矩阵U


其中u1是主特征向量(对应最大特征值),u2是次特征向量,以此类推,另外记λ1λ2...λn为相应的特征值

上面的两维数据案例中,u1,u2构成了一个新基,可以令其用来表示数据,令x\in R^2 为训练样本,那么u_{1}^T x就是样本点x在u1上的投影的长度(幅值),同理,u_{2}^T x是x投影到u2上的幅值。

旋转数据



降维

数据的主方向就是旋转数据的第一维x_{rot,1},若想把数据降到一维,可令

\tilde{x}^{(i)}=x_{rot,1}^{(i)}=u_{1}^{T}x^{(i)}\in R

更一般地,如果想把数据x \in R^n降到k维表示,即,\tilde {x} \in R^k(令k<n)

只需取x_{rot}的前k个成分,分别对应前K个数据变化的主方向。

PCA的另外一种解释是x_{rot}是一个n维向量,其中前几个成分可能比较大(例如,上例中的大部分样本第一个成分x_{rot,1}=u_1^Tx^{(i)}的取值相对较大),而后面的成分可能会比较小(例如上例中的大部分样本的x_{rot,2}=u_2^Tx^{(i)}较小)

PCA算法做的其实就是丢弃x_{rot}中后面(取值较小的)的成分,就是将这些成分近似为零。具体的说,设\tilde {x}是x_{rot}的近似表示,那么将x_{rot}除了k个成分外,其余全赋值为零,就得到:


\tilde{x}的后n-k项均为零,没有必要把这些零项保留下来。所以我们仅用前k个(非零)成分来定义k维向量\tilde{x},要决定保留哪些成分变得很简单,只需要取前k个成分即可,这时也可以说,我们“保留了前k个PCA (主)成分”

还原近似数据

现在我们得到了原始数据x \in R^n的低维“压缩”表征量\tilde{x} \in R^k,反过来,如果给定\tilde{x},我们如何还原数据x呢?

要转换回来,只需要x = U x_{rot}

进一步,我们把\tilde {x}看做将x_{rot}的最后n-k个元素被设置为0所得的近似表示,因此如果给定\tilde {x} \in R^{k},可以通过在其末尾添加n-k个零来得到对x_{rot} \in R^n的近似,最后,左乘U便可以近似还原出原数据x

在实现时,我们实际上并不先给\tilde {x}填充0,然后再左乘U,因为这意味着大量的乘零运算。我们可以用\tilde {x} \in R^k来与U的前k列相乘,即上式中最右项,来达到同样的目的,得到重构的\hat{x}

我们得到的是原始数据集的一维近似重构。

选择主成分个数

我们该如何选择k,即保留多少个PCA主成分?

如果k过大,数据压缩率不高,在极限情况k=n时,等于是在使用原始数据(只是旋转投射到了不同的基);相反地,如果k过小,那近似误差太大。

决定k值时,我们通常会考虑不同k值可保留的方差百分比。

如果k=n,那么我们得到的是对数据的完美近似,也就是保留了100%的方差,即原始数据的所有变化都被暴力下来;

如果k=0,那等于是用零向量来逼近输入数据,也就是只有0%的方差被保留下来。

一般而言,设\lambda _1,\lambda _2,...,\lambda _n表示\Sigma 的特征值(按由大到小顺序排列),使得\lambda _j为对应于特征向量u_j的特征值,那么,如果我们保留前k个成分,则保留的方差比可计算为:

\frac{\sum_{j=1}^k \lambda_j }{\sum_{j=1}^n \lambda_j}

上面的简单二维实验中,\lambda_1 = 7.29,\lambda_2 = 0.69.因此,如果保留k=1个主成分,等于我们保留了7.29/(7.29+0.69)=0.913即91.3%的方差。

保留方差百分比更正式的定义,这篇文章不谈。

\lambda _j = \sum_{i=1}^m x_{rot,j} ^2

因此,如果\lambda _j\approx 0,则说明x_{rot,j}也就基本接近于0,所以用0 来近似它并不会产生多大损失,这也就解释了为什么要保留前面的主成分,因为对应的\lambda _j值较大,而不是末尾的那些。这些前面的主成分x_{rot,j}变化性更大,取值也更大,如果将其设为0势必引入较大的近似误差。

以图像处理为例,一个惯常的经验法则是选择k以保留99%的方差,换句话说,我们选取满足以下条件的最小k值:

\frac{\sum_{j=1}^k \lambda_j }{\sum_{j=1}^n \lambda_j} \geq 0.99

对于其他应用,如果不介意引入稍大的误差,有时也保留90%-98%的方差范围。若向他人介绍PCA算法详情,告诉他们你选择的k保留了95%的方差,比告诉他们你保留了前120个或任意个数字的主成分更多理解。

对图像应用PCA

为了使PCA算法能有效工作,通常我们希望所有的特征x_1,x_2,...,x_n都有相似的取值范围,并且均值接近于0。如果你曾经在其他应用中使用过PCA算法,你可能知道有必要单独对每个特征做预处理,即通过估算每个特征x_j的均值和方差,而后将其取值范围规整化为零均值和单位方差。但是,对于大部分图像类型,我们却不需要进行这样的预处理。假定我们将在自然图像上训练算法,此时特征x_j代表的是像素j的值。所谓“自然图像”,不严格的说,是指人或动物他们一生中所见的那种图像。


白化

又叫sphering。

例如,假设训练数据是图像,由于图像中相邻像素之间有很强的相关性,所以用于训练时输入是冗余的。白化的目的就是降低输入的冗余性。我们希望通过白化过程使得学习算法的输入具有如下性质(i)特征之间相关性较低

(ii)所有特征具有相同的方差

使用先前2D的例子来描述白化的主要思想,然后介绍如何将白化与平滑和PCA结合。

如何消除输入特征之间的相关性,上面提到的x_{rot}^{(i)} = U^T x^{(i)}时实际上已经消除了除了输入特征x^{(i)}之间的相关性。

x_{rot}的协方差矩阵对角元素的值为\lambda_{1}和\lambda_{1},非对角元素的值为0;因此,x_{rot,1}和x_{rot,2}是不相关的,满足我们对白化结果的第一个要求(特征间相关性降低)。

为了使每个输入特征具有单位方差,我们可以直接使用\frac{1}{\sqrt{\lambda_{i} } } 来缩放每个特征x_{rot,i}。具体地,我们定义白化后的数据x_{PCA_{white}} \in R^n如下:

x_{PCA_{white,i}}=\frac{x_{tot,i}}{\lambda_i}   ,   其中x_{tot,i} = u_i^T x

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