PCA主成分分析(下)

美,是在高潮处陡然消逝,不落凡尘。

数学中的美,是不是也是寻找那个导数为零的极值点?

实际问题中,我们认为凸型函数是函数中是相对完美而且最容易求极值点的。

哦……可惜数学实际上没那么多想象的浪漫,它的极致应如潜入深海之渊,耐得住寂寞,踏实严谨。

所以上图不是凸函数,相反,它叫凹函数。凹凸函数定义如下图:

在2维空间内,凸函数类似于这样的二次函数

其中:

显然,实际问题若符合凸函数性质,往往方便求出其极小值。

在机器学习过程中,衡量一个分类(判断问题)或回归(拟合问题)是否精确的,就是取得这些损失函数的极小值。

而损失函数,如对数损失函数、平方损失函数,都是凸函数,探求凸函数的“谷底”,就是我们追求的目标。

但是机器学习处理的往往是高维数据,所以,将上述一元二次函数,扩展到多维空间的多元二次型。标量x被向量X(x1,x2,x3....xn)替代,系数a被代替矩阵A,依然得到一个凸函数:

其中

即:A为正定矩阵(特征值全部大于0)

考虑多元二次型的实际意义,我们先从包含两个变量(x,y)的二次型出发。

形如:

的方程,可以表示为:

其中:

我们得出:

1. 二次型矩阵A,若是一个对角矩阵,对角线上的元素值,决定了图形的形状。

2. 左图的A决定了图形为正圆,右图则为椭圆

3. 两个图像具有线性(拉伸)关系,即通过变换二次型矩阵A,将正圆拉伸为椭圆。

4. 但是线性变换,只有拉伸,没有旋转。

再来变换:

两边乘以正交向量,令:

得到一个旋转后拉伸后的圆——倾斜椭圆

实际上:

现在,借助二次型矩阵A,我们又可以将函数

表示回

进一步分析问题前,先来考虑y的极值问题

我们已经知道上述二次型符合凸函数性质,实际中凸函数的极值问题,往往是带约束的求极值问题,也就是说我们要在求极值的同时加上一个条件——凸优化问题

比如在X的2范式——X的长度——为1的情况下,求上述二次型的极值。情况变成这样

就是我们要在(2)的条件下求(1)的极大/小值。带入拉格朗日乘数,将上述问题归结为以下函数的极值问题:

类比一元函数的极值问题,我们求L的梯度,令梯度为0。得出

当(4)式成立,我们得到原式(1)的极值,故将结果式(4)带入(1),原问题为

又根据约束条件,式(2)

故极值问题又可化解为

它就是A的特征值,也就是说,求二次型(1)的最大最小,最终归结为,求二次型矩阵A最大最小特征值的问题。

回忆二次型矩阵的几何意义。对于二次型矩阵A,特征值就是图形进行伸缩的量,对应特征向量的就是图形旋转的方向。

而对称矩阵的特征向量两两正交,实际上正是构成了旋转后的坐标方向。

总结:求二次型的极值问题,就是求二次型矩阵特征值极值问题,就是求一个原始球在旋转后的空间中最大/最小拉伸。而这个特征值对应的特征向量,就是球最大/最小拉伸的方向。就是旋转后新的坐标轴

问题分析到这里,我们引出了特征值,似曾相识。

PCA就是利用了协方差矩阵的较大特征值,得到坐标旋转变换后,保留数据点最大拉伸(最分散)的那个坐标“轴”,即最佳数据投影方向。

为什么要使数据点最分散?

因为数据点压缩后集中到一起,如果重合为一点,那么信息就会严重受损。如下图

压缩后数据点的分散程度,决定了我们保留原信息的程度。

下篇,我们接着分析PCA压缩数据的实质出发,引入求二次型极值问题,最终套用今天的分析结果。使得分解协方差矩阵得最大特征值从而解决原始数据降维问题。

未完结

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据可视化的开源方案: Superset vs Redash vs Metabase (一)

    人是视觉动物,要用数据把一个故事讲活,图表是必不可少的。如果你经常看到做数据分析同事,在SQL客户端里执行完查询,把结果复制/粘贴到 Excel 里再做成图表,...

    流川疯
  • windows下实现win32俄罗斯方块练手,编程的几点心得

    一个运筹学者接到任务,设计末座大楼的电梯调度策略,使乘客等待的时间最短,在走访了这座大楼之后,他认识到雇主真正想要解决的问题是,尽量减少乘客的不适( 乘客不喜欢...

    流川疯
  • OpenCV导向滤波(引导滤波)实现(Guided Filter)代码,以及使用颜色先验算法去雾

     论文下载地址:http://research.microsoft.com/en-us/um/people/jiansun/papers/GuidedFilte...

    流川疯
  • three.js中的矩阵计算

    three.js中自带了矩阵运算库,不过在使用的过程中总是容易混淆。不知道是行主序还是列主序,前乘和后乘也很容易弄反。就在这里辨析一下。

    charlee44
  • 光纤跳线类型、尾纤类型

            通讯用光纤由外覆塑料保护层的细如毛发的玻璃丝组成。玻璃丝实质上由两部分组成:核心直径为9到62.5µm,外覆直径为125µm的低折射率的玻璃材料...

    杨强生
  • Android回调接口的写法

    六月的雨
  • 重新定义时间轴

    最近读了Reid Havens在PowerPivotPro上发表的一篇《产品上线时间后比较表现》的文章,不同产品上线的时间不同,通过自定义时间轴来把所有产品的上...

    公众号PowerBI大师
  • Java 学习笔记(7)——接口与多态

    上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据...

    Masimaro
  • 面试题34(关于接口的理解?)

    对接口的描述正确的是? A 一个类可以实现多个接口 B 接口可以有非静态的成员变量 C 接口可以实现方法 D 实现接口的任何类,都需要实现接口的方法 考点:考察...

    Java学习
  • AXU3CG开发板

    这款 MPSoCs 开发平台采用核心板加扩展板的模式,方便用户对核心板的二次开发利用。核心板使用 XILINX Zynq UltraScale+ CG 芯片 Z...

    碎碎思

扫码关注云+社区

领取腾讯云代金券