特征提取与特征选择(一)主成分分析PCA:小朋友,你是否有很多问号???

一、前言

毫不夸张地说,主成分分析(Principal Component Analysis)面前,在座的各位都是小朋友,PCA算法距离1901年提出已经过了一百多年,纵然世纪更迭,但是许多人对PCA算法在人脸识别领域中的应用仍然逃不过真香定律,它仍然是目前最简单的以特征量分析多维度统计分布的方法,没有之一,可以说是算法必掌握之利器。


image

二、为什么要有主成分分析

和这个系列名对应,主成分分析是特征提取的一个常用算法。这时肯定有人对特征提取和特征选择的区别产生疑问,简单来说,特征提取是从N个特征中,通过构造M个函数的方式,获得M个特征,这里每个特征都是包含了前N个特征得出的。而特征选择就是“单纯的”从样本的N个特征中选出前M个最matter(比如在人脸识别中使得识别率最高的)的特征。这两种情况下,M都是小于N的,直观来讲,比如我从样本集中拿出一个神奇宝贝X_i,他可能包含有N个特征,比如X_{i1}是它的类系,X_{i2}使它的攻击力,X_{i3}使它的防御力,等等,那么由此得来的样本X_{i}的特征空间可以表示为X_i = \left[ \begin{matrix} X_{i1}\\ X_{i2} \\ X_{i3} \\ ... \\ X_{iN} \\ \end{matrix} \right],而这样的N个维度有时对于实际问题来说可能太多了,需要减少样本的维度,而这时候,主成分分析就要来秀一波了,它是降低数据维度的一把好手,比如这个问题,他就可以提取出M个特征使得神奇宝贝的胜率达到最高。
但是要注意,这里重新得到的X_{i1}X_{i2},等等已经和之前的不一样了,事实上,这里的每个新特征(X_{im} ,m \in 1到M)是关于之前N个特征的综合考虑,可以表示为,X_i = \left[ \begin{matrix} f_{1}(X_{i1},...,X_{iN})\\ f_{2}(X_{i1},...,X_{iN}) \\ f_{3}(X_{i1},...,X_{iN}) \\ ... \\ f_{M}(X_{i1},...,X_{iN}) \\ \end{matrix} \right],\,M<N

三、二维主成分分析

OK,我们由浅入深,先来考虑一下二维情况时的主成分分析,也就是N=2,M=1的情况,这样每个样本点都分布在一个二维平面上,我们可以用一个二维坐标系表示。

优化问题得出

好,那我们要拿主成分分析来干嘛呢?我们想要作特征提取,也就是把X_1,X_2这两个特征“融合”成一个特征用来作后续胜率的分析。试想一下,如果我们要考虑皮卡丘和杰尼龟(假设只有攻击力和防御力这两个特征)战斗的胜率,X_1表示攻击力,X_2表示防御力,那么我们希望找一个特征(也就是找一个轴),把原本在二维坐标系上的点还能投影到这个坐标轴上的对应位置,以使得所有样本分布尽可能不变。

image

我们可以画出这样的坐标系,皮卡丘和杰尼龟分别用P和J点代替,皮卡丘的攻击力较高,杰尼龟的防御力较高,那怎么判断谁获胜的可能性比较大呢?很显然,对这两个特征做个综合,具体怎么说呢?就是给分别一个权重,然后得到一个新的特征能力值综合考虑了他们的攻击力和防御力,这样把P1,J1这两个二维坐标投影到一维上,然后比较P2,J2,就能估计胜率啦!

image

很好,照着这个思路,也就是我们需要构造一个函数,也就是找出A和b使得所有的样本点在这条线上的投影尽可能分散,以便我们借助我们新得的这个特征Y尽可能区分开他们,由此我们得出,也就是上图中的F1方向。

假设现在我们有P个样本点,\left\{X_i\right\},i= 1到p,这样,可以把Y = AX + b改造为Y = A(X - \bar X),其中\bar X = \frac{1}{p}\sum_{i=1}^pX_p,当我们想要把N维向量降为M维时,很显然(X - \bar X)应该是Mx1的矩阵,而A应该是NxM的矩阵,假设A = \left[ \begin{matrix} a1\\ a2 \\ a3 \\ ... \\ a_M \\ \end{matrix} \right],其中a向量是Mx1的矩阵,这里的a1等等实际上就表示M个方向,在这M个方向上投影就得到M个值。(Tips:搞清楚各个向量的维度对理解后续推导至关重要,请停下来思考一下。),所以Y向量为,Y = \left[ \begin{matrix} Y_{i1}\\ Y_{i2} \\ Y_{i3} \\ ... \\ Y_{iM} \\ \end{matrix} \right] =\left[ \begin{matrix} a1(X_i-\bar X)\\ a2(X_i-\bar X) \\ a3(X_i-\bar X) \\ ... \\ a_M(X_i-\bar X) \\ \end{matrix} \right]

Great!通过前面这样的一通分析,我们终于有了目标,有了目标就可以尝试得出优化问题的目标函数和约束,现在,我们只考虑有p个样本的二维情况,所以N=2,M=1,这样很简单,Y就是一个值,我们要最大化方差,也就是最大化\sum_{i=1}^p(y_{i1}-\bar y_{i1})^2,接下来我们就尝试把这个目标函数化为样本点X相关,过程很容易。
实际上\bar y_{i1} = 0,所以
\sum_{i=1}^p(y_{i1}-\bar y_{i1})^2 =\sum_{i=1}^p(y_{i1})^2=\sum_{i=1}^p[a1(X_i-\bar X)]^2

=\sum_{i=1}^p[a1(X_i-\bar X)][a1(X_i-\bar X)]^T

= a1[\sum_{i=1}^p(X_i-\bar X)(X_i-\bar X)^T] a1^T

我们定义\sum_{i=1}^p(X_i-\bar X)(X_i-\bar X)^T为协方差矩阵\sum(covariance matrix),这样目标函数可以简化为Maxmize \,\,a1\sum a1^T,约束条件可以在a1方向上单位化,不影响方向表示,却可以极大简化后续计算。所以优化问题为,
Maxmize \,\,(a_1\sum a_1^T)$$$$Subject \,to:\,a_1a_1^T = 1 \tag 1

解优化问题

得到要解的优化问题后,又又又到了我们喜闻乐见的拉格朗日乘子法和求导运算,求极值的阶段了。(贴一下这位可爱的科学家)

image

这次优化问题的解相比于前面几篇支持向量机的推导要简单很多,我会用最简单的方法介绍,各位看官耐心且看。
首先利用拉格朗日乘子法构造函数
接下来,祖传手艺求导,
所以,,怎么样?看这个式子是不是很熟悉,没错,是协方差矩阵的特征向量,是协方差矩阵的特征值。
怎么理解特征值和特征向量呢?比如我们把矩阵看作运动,对于运动而言,它最重要的特征当然是速度和方向,

  • 特征值就表示运动的速度
  • 特征向量就表示运动的方向

那这里的这里的特征值和特征向量表示什么意义呢?我们思考一波,我们要最大化a_1\sum a_1^T,由上面(1)式,也就是最大化a_1\lambda a_1^T,又约束条件a_1 a_1^T =1,所!以!我们就是要最大化特征值\lambda(也就是最大化目标函数方差呀朋友萌!),到这里,我们总结出,
{\color{red} a_1 表示使Y分布方差最大的方向}, {\color{red}而 \lambda 表示方差}
所以\lambda\sum最大的特征值,a_1\sum最大的特征值\lambda对应的特征向量,并且a_1 a_1^T =1

Good job!我们找到了a_1,也就找到了二维问题中使方差最大的方向。

四、多维情况求解

解决掉可以直观想象的分布统计问题之后,我们来点稍有挑战性的,怎么求多维(N>2)向量除a_1外的其它维度a_2,a_3,a_4,....,a_M呢?一开始,我们就说明矩阵A的各个维度实际上表示的是不同的方向,我们要在每个方向都尽可能使方差大,比如我们要找a_2方向,那么同样,Maxmize \,\,(a_2\sum a_2^T)$$$$Subject \,to: \,\,\,\,\,a_2a_2^T = 1$$$$a_2a_1^T = a_1 a_2^T = 0 \tag 3,注意,这里唯一的不同就是,要添加a_1a_2正交,说明在三维降二维时,a_2方向是唯一确定的,莫得选择。
接下来,继续祖传手艺拉格朗日乘子法加求导,引入系数\lambda\beta,构造函数\Theta(a_1) = a_2\sum a_2^T - \lambda(a_2a_2^T-1) - \beta a_1 a_2^T接下来,和前面二维情况差不多,\frac{\partial \Theta}{\partial a_2} = (\sum a_2^T - \lambda a_2^T-\beta a_1^T)^T =0
以下,简单推导一下吧,方便理解,\frac{\partial \Theta}{\partial a_2} = (a_2 \sum - \lambda a_2-\beta a_1)^T =0,两边同乘以a_1^T,得到\frac{\partial \Theta}{\partial a_2} = (a_2 \sum a_1^T - \lambda a_2a_1^T-\beta (a_1a_1^T))^T =0,就等于\frac{\partial \Theta}{\partial a_2} = (a_2 \lambda a_1^T - \lambda a_2a_1^T-\beta) =0看看这个式子,u1s1,漂亮!全都能照着约束条件约去(现在体会到约束的好处了吧),得到
\beta =0,同时,\sum a_2^T = \lambda a_2^T,所以怎么样,是不是第二个优化问题(3)和第一个优化问题(1)就一样了?最大化a_2\sum a_2^T = \lambda,再次求最大的\lambda,但是此时最大已经被a_1占去,咋办?嗐,退而求其次,取第二大吧。

image

所以,严肃严肃,我们要放大招了,抛出结论,

相信聪明的你已经猜到了NxM矩阵A的其他维度的值了,就不用我一遍一遍重复推导了吧。
image

得出结论,就是协方差矩阵第三大特征值对应的特征向量,依次类推。由此确定了NxM矩阵,这就是一个M维度的坐标系呀,盆友萌,我们成功把N维坐标系的样本成功移到我们自己构建的M维坐标系上了呀,撒花撒花!其中每个轴都是我们自己辛苦求出来的哦。

五、总结一波

好的,经过你不懈的努力,总算把PCA算法盘下来了,我们最后总结一下,回顾一遍,你能有更深的理解。

  1. 拿到一堆样本,果断求协方差矩阵\sum =\sum_{i=1}^p(X_i-\bar X)(X_i-\bar X)^T
  2. 有了结论,直接用。求出\sum的特征值及其对应的特征向量,并且从大到小排序,以备取用;
  3. 归一化所有的方向a_i;
  4. 得到前M维方向向量A = \left[ \begin{matrix} a1\\ a2 \\ a3 \\ ... \\ a_M \\ \end{matrix} \right]
  5. 得到M维坐标系后,果断把这P个在N维坐标系上的样本点映射过去,Y = A(X_i - \bar X),其中i=1 到 P。

PCA:“小朋友,读到这里,你还有很多问号吗?”

原文搬运自我的博客,欢迎持续关注。
创作不易,你的鼓励是我创作的动力,如果你有收获,点个赞吧👍


我接下来还会陆续更新机器学习相关的学习笔记,补充这个系列。如果看到这里的话,说明你有认真看这篇文章,希望你能有所收获!最后,欢迎交流指正!

还有不明白的欢迎阅读其他文章:
通俗讲解支持向量机SVM(一)面试官:什么?线性模型你不会不清楚吧?
通俗讲解支持向量机SVM(二)另辟蹊径!对偶性的几何解释
通俗讲解支持向量机SVM(三)SVM处理非线性问题及软间隔之引出
通俗讲解支持向量机SVM(四)用尽洪荒之力把核函数与核技巧讲得明明白白(精华篇)

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

推荐阅读更多精彩内容