程序员的自我修养之数学基础08:特征值、特征向量和特征值分解

啊,转行学计算机的过程,就是不断“开倒车”的过程……为了理解概念A,你发现你得先理解概念BCD,为了理解概念B,你发现还得明白概念EFD……一直开倒车到大一的高数线代……不过Anyway,坚持就是胜利,继续看下去吧!!!

特征向量和特征矩阵,真的是非常非常重要的概念啊,不管是课本还是论文里,翻一翻就能看到。那它们到底在说什么呢?先甩概念——

程序员的自我修养之数学基础08:特征值、特征向量和特征值分解_第1张图片

看起来有点晕,不急,让我们理一理。

我们知道,矩阵,代表的是“线性变换”的规则,而矩阵的乘法,则代表这种变换。因此\boldsymbol{Ax},就可以看做是\bg_white \boldsymbol{x} 在\bg_white \boldsymbol{A} 作用下的变化,而这个变化是什么样的呢? \lambda \boldsymbol{x}\lambda是一个数值(可以是实数也可以是虚数),那 \lambda \boldsymbol{x}就是向量 \boldsymbol{x}在它本身方向(\lambda为负则是反方向)上的“拉伸”变化。也就是说,矩阵的特征想留,就是在这个矩阵作用下,不发生旋转、移动,只发生伸缩变换的向量。而伸缩的比例就是特征值。

下面来一个很炫酷的例子~下面这3个图呢,都代表了我们收集到的数据点。当我们将数据点投影到x1轴上时,我们可以看到图一的离散度最高,也就是说,数据在所投影的维度上有更高的区分度,也就是“信息量”更大,这种思想,就是我们所说的“降维”。对于图1,保留x1轴方向上的数据就很好,对于图2,我们可以保留x2轴方向上的维度。那么问题来了,图3中的数据怎么办呢?此时,选用x1或x2轴方向上的数据都会丢失较大的数据量。因此,我们选择将坐标轴“旋转”一下,就可以得到我们想要的结果了。但是我们怎么找到这个传说中“正确的坐标轴”呢?这就用到我们今天讲到的内容了,这也是特征值和特征向量的一个非常重要的实际应用——“得出使数据在各个维度上区分度达到最大的坐标轴”。经过数学推导(我也不知道是怎么推导的,先留坑),特征向量就是我们要找的旋转后“正确的坐标轴”,而特征值就等于数据旋转之后坐标上对应维度的方差。这也是数据挖掘算法中著名的PCA(主成分分析)法的原理。 提出这个PCA法,只是为了开阔一下大家的思路,就是,稍微知道一下特征值和特征向量的作用,提提兴趣,不懂的暂时放过就好,之后学到这块儿再详细讲吧。

程序员的自我修养之数学基础08:特征值、特征向量和特征值分解_第2张图片

求矩阵特征值和特征向量的步骤如下:

程序员的自我修养之数学基础08:特征值、特征向量和特征值分解_第3张图片

下面我们来讲一讲特征值分解

对于方阵\boldsymbol{A},如果其所有的特征值都不相同,也就是说,所有的特征向量线性无关,此时,方阵\boldsymbol{A}是可以被对角化的。特征值分解是将一个矩阵分解成 \boldsymbol{A}=\boldsymbol{Q\Sigma Q^{-1}}的形式。其中,\boldsymbol{Q}是矩阵\boldsymbol{A}的特征向量组成的矩阵,\boldsymbol{Q}=[\boldsymbol{x_1,x_2,...,x_n}]\boldsymbol{\Sigma}是一个对角阵,每一个对角线上的元素都是对应特征向量的特征值,即 \bg_white \boldsymbol{\Sigma}=Diag ( \lambda _1, \lambda _2 ,... , \lambda _n)

什么意思呢?

首先,我们又又又要强调了,矩阵是一个“线性变换”。矩阵乘以一个向量得到另一个向量,也就是说,通过某种线性变换的方式将前一个向量转换为后一个向量。用下图的例子来说明一下,对于对称矩阵M_1=\begin{bmatrix} 3 &0 \\ 0& 1 \end{bmatrix},该矩阵所代表的线性变换,可以看做是对x、y轴坐标的拉伸变换。但是,当矩阵不是对称矩阵的时候,比如说对于\bg_white M_2=\begin{bmatrix} 1 &1 \\ 0& 1 \end{bmatrix},它描述的变换关系并不仅是在轴方向上的拉伸变化,而是一各向着蓝色箭头所示方向上的拉伸变化。刚刚举得这个例子是最简单的一种情况,事实上,我们接触到的矩阵很有可能是非常高维度的,所以,这个矩阵代表的就是在高维空间中的一个线性变换,这种线性变化很难通过图片演示,但是不难想象,这个变换很可能对应非常多的变换方向。我们通过特征值分解的方式,就可以提取这个矩阵最重要的特征。特征值分解可以得到特征值和特征向量,特征值表示的是这个特征到底有多重要,特征向量表示的是这个特征到底谁什么,可以将每一个特征向量理解为一个线性的子空间。我们通过特征值分解得到的前N个特征向量,就对应了这个矩阵最主要的N个变化方向,利用这N个变化方向,就可以很大程度上反映出这个矩阵的作用了,也就是说,实现了我们想要的“降维”。

程序员的自我修养之数学基础08:特征值、特征向量和特征值分解_第4张图片

我们再回过头来看看特征值分解的式子\boldsymbol{A}=\boldsymbol{Q\Sigma Q^{-1}},分解得到的\boldsymbol{\Sigma}是一个对角阵,里面的特征值由大到小排列,这些特征值就对应着 \boldsymbol{Q} 中从主要变化到次要变化的特征向量。

特征分解只是针对方阵而言的,那么所有的方阵都能被特征分解吗?NoNoNo~这里要强调一下,并非所有的方阵都可以被对角化。

接下来,我们来讲一下关于特征值和特征向量的一些常用性质

  • 程序员的自我修养之数学基础08:特征值、特征向量和特征值分解_第5张图片

  • 程序员的自我修养之数学基础08:特征值、特征向量和特征值分解_第6张图片

最后呢,我们稍稍讲一下实对称矩阵

我们之前说了,如果\boldsymbol{R^n}内的方阵\boldsymbol{A} 满足\boldsymbol{A^T=A},也就是说,对于\boldsymbol{A}中的元素,a_{ij}=a_{ji},那么我们就称\boldsymbol{A}为对称矩阵。对称矩阵有以下性质:

程序员的自我修养之数学基础08:特征值、特征向量和特征值分解_第7张图片

如果\boldsymbol{A}是对称矩阵,那么\boldsymbol{A}可以表示为\boldsymbol{A=U\Lambda U^T }。其中,\boldsymbol{U}是正交矩阵(\boldsymbol{U^T=U^{-1}}),\boldsymbol{\Lambda }为对角矩阵,对角线上的值为\boldsymbol{A}的特征值,很容易看出来,这个形式就是特征值分解的表达式。\boldsymbol{U}的列为\boldsymbol{A}的单位正交特征向量,也就是说,\boldsymbol{U}中包含的n个列向量可以组成\boldsymbol{A}的一个完备的标准特征向量系。这一点性质在之后的学习中也会提到。

参考:

https://blog.csdn.net/hjq376247328/article/details/80640544

https://blog.csdn.net/jemila/article/details/52585988

http://k.sina.com.cn/article_6367168142_17b83468e001005yrv.html

https://jingyan.baidu.com/article/27fa7326afb4c146f8271ff3.html

https://wenku.baidu.com/view/7509df2b2af90242a895e50b.html

你可能感兴趣的:(数学基础,特征值,特征向量,特征值分解,实对称矩阵)