矩阵——特征向量(Eigenvector)
矩阵的基础内容以前已经提到,今天我们来看看矩阵的重要特性——特征向量。
矩阵是个非常抽象的数学概念,很多人到了这里往往望而生畏。比如矩阵的乘法为什么有这样奇怪的定义?实际上是由工程实际需要定义过来的。如果只知道概念不懂有何用处,思维就只有抽象性而没有直观性,实在是无法感受矩阵的精妙。
直观性说明
我们先看点直观性的内容。矩阵的特征方程式是:
A * x = lamda * x
这个方程可以看出什么?上次我们提到矩阵实际可以看作一个变换,方程左边就是把向量x变到另一个位置而已;右边就是把向量x作了一个拉伸,拉伸量是lamda。那么它的意义就很明显了,表达了矩阵A的一个特性就是这个矩阵可以把向量x拉长(或缩短)lamda倍,仅此而已。
任意给定一个矩阵A,并不是对所有的x它都能拉长(缩短)。凡是能被A拉长(缩短)的向量称为A的特征向量(Eigenvector);拉长(缩短)量就为这个特征向量对应的特征值(Eigenvalue)。
值得注意的是,我们说的特征向量是一类向量,因为任意一个特征向量随便乘以一个标量结果肯定也满足以上方程,当然这两个向量都可以看成是同一个特征向量,而且它们也都对应同一个特征值。
如果特征值是负数,那说明了矩阵不但把向量拉长(缩短)了,而且让向量指向了相反的方向。
一个矩阵可能可以拉长(缩短)好几个向量,所以它可能就有好多个特征值。有趣的是,如果A是实对称矩阵,那么那些不同的特征值对应的特征向量肯定是互相正交的,原因是(?)。
我们也可以说,一个变换矩阵的所有特征向量组成了这个变换矩阵的一组基。所谓基可以理解为坐标系的轴。我们平常用到的大多是直角坐标系,在线形代数中可以把这个坐标系扭曲、拉伸、旋转,称为基的变换。我们可以按我们的需求去设定基,但是基的轴之间必须是线形无关的,也就是保证坐标系的不同轴不要指向同一个方向或可以被别的轴组合而成,否则的话原来的空间就“撑”不起来了。在主成分分析(Principal Component Analysis)中我们通过在拉伸最大的方向设置基,忽略一些小的量,可以极大地压缩数据而减小失真。
变换矩阵的所有特征向量作为空间的基之所以重要,是因为在这些方向上变换矩阵可以拉伸向量而不必扭曲和旋转它,使得计算大为简单。所以特征值固然重要,我们的终极目标却是特征向量。
几个重要的抽象概念
我们回到矩阵的意义上,先介绍几个抽象概念:
核:所有经过变换矩阵后变成了零向量的向量组成的集合,通常用Ker(A)来表示。假如你是一个向量,有一个矩阵要来变换你,如果你不幸落在了这个矩阵的核里面,那么很遗憾转换后你就变成了虚无的零。特别指出的是,核是“变换”(Transform)中的概念,矩阵变换中有一个相似的概念叫“零空间”。有的材料在谈到变换的时候使用T来表示,联系到矩阵时才用A,本文把矩阵直接看作“变换”。核所在的空间定义为V空间,也就是全部向量原来在的空间。
值域:某个空间中所有向量经过变换矩阵后形成的向量的集合,通常用R(A)来表示。假设你是一个向量,有一个矩阵要来变换你,这个矩阵的值域表示了你将来可能的位置,你不可能跑到这些位置之外。值域的维度也叫做秩(Rank)。值域所在的空间定义为W空间。W空间中不属于值域的部分等会儿我们会谈到。
空间:向量加上加、乘运算构成了空间。向量可以(也只能)在空间中变换。使用坐标系(基)在空间中描述向量。
不管是核还是值域,它们都是封闭的。意思是如果你和你的朋友困在核里面,你们不管是相加还是相乘都还会在核里面,跑不出去。这就构成了一个子空间。值域同理。
数学家证明了,V的维度一定等于它的任意一个变换矩阵的核的维度加上值域的维度。
dim( V ) = dim( Ker( A ) ) + dim( R( A) )
严格的证明过程可以参考教科书,这里说一个直观的证法:
V的维度也就是V的基的数目,这些基分为两部分,一部分在核中,一部分是值域中非零象的原象(肯定可以分,因为核和值域都是独立的子空间)。如果把V中的任意向量用基的形式写出来,那么这个向量必然也是一部分在核中,另一部分在值域中非零象的原象里。现在对这个向量作变换,核的那部分当然为零了,另一部分的维度刚好等于值域的维度。
变换矩阵行空间和零空间的关系
另外我们根据矩阵的性质,变换矩阵的行数等于V的维度,变换矩阵的秩等于值域R的维度,所以也可以记成:
A的行数= dim( A的零空间 )+ A的秩
因为A的秩又是A行空间的维度(注意在非满秩矩阵中这个数肯定小于行数):
A的行数= dim( A的零空间 )+ dim( A的行空间 )
为什么要写成这个形式?因为从这里我们可以发现A的零空间和A的行空间是正交互补的。正交是因为零空间就是核,按定义乘以A的行向量当然为零。互补是因为它们加起来刚好张成整个V空间。
这个正交互补导致了非常好的性质,因为A的零空间和A的行空间的基组合起来刚好可以凑成V的基。
变换矩阵列空间和左零空间的关系
如果把以上方程取转置,可得:
A的列数= dim( A^T的零空间 )+ dim( A的列空间 )
因为A^T的实际意义是把值域和定义域颠倒了过来,所以A^T的零空间就是从值域以外的区域投向V中零点的所有向量的空间(有点拗口!),有人把它称为“左零空间”(LeftNull Space)。这样:
A的列数= dim( A的左零空间 )+ dim( A的列空间 )
同样A的左零空间与A的列空间也正交互补,它们加起来刚好可以张成W空间。它们的基也构成了W的基。
变换矩阵行空间和列空间的关系
不要忘了变换矩阵实际上是把目标向量从行空间转化到列空间。
矩阵的行空间,列空间,零空间,左零空间构成了我们在线形代数研究中的所有空间,把它们的关系弄清楚,对于分别的基的转换非常重要。
特征方程的秘密
我们试图构造一个这样的变换矩阵A:它把向量变换到一个值域空间,这个值域空间的基是正交的;不仅如此,还要求任意一个基v都有A* u = lamda * v的形式,u是原来空间的一个已知的基。这样我们就能把复杂的向量问题转化到一个异常简单的空间中去。
如果u的数量不等于v,那么用A^T*A取代A,可以变为一个对称且半正定矩阵,它的特征向量正是要求的基v!
再次说明,矩阵不等于变换,把矩阵看成变换只是提供一个理解变换矩阵的方法。或者说矩阵只是变换的其中一种表现形式。
矩阵——特征向量(Eigenvector)的更多相关文章
- 【Math for ML】矩阵分解(Matrix Decompositions) (上)
I. 行列式(Determinants)和迹(Trace) 1. 行列式(Determinants) 为避免和绝对值符号混淆,本文一般使用\(det(A)\)来表示矩阵\(A\)的行列式.另外这里的\ ...
- paper 128:奇异值分解(SVD) --- 线性变换几何意义[转]
PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理问题,简单形象,真 ...
- Machine Learning in Action – PCA和SVD
降维技术, 首先举的例子觉得很好,因为不知不觉中天天都在做着降维的工作 对于显示器显示一个图片是通过像素点0,1,比如对于分辨率1024×768的显示器,就需要1024×768个像素点的0,1来表示, ...
- Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)
网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...
- 转载:奇异值分解(SVD) --- 线性变换几何意义(上)
本文转载自他人: PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理 ...
- A tutorial on Principal Components Analysis | 主成分分析(PCA)教程
A tutorial on Principal Components Analysis 原著:Lindsay I Smith, A tutorial on Principal Components A ...
- Reading | 《DEEP LEARNING》
目录 一.引言 1.什么是.为什么需要深度学习 2.简单的机器学习算法对数据表示的依赖 3.深度学习的历史趋势 最早的人工神经网络:旨在模拟生物学习的计算模型 神经网络第二次浪潮:联结主义connec ...
- 主成分分析 PCA算法原理
对同一个体进行多项观察时,必定涉及多个随机变量X1,X2,…,Xp,它们都是的相关性, 一时难以综合.这时就需要借助主成分分析 (principal component analysis)来概括诸多信 ...
- DL四(预处理:主成分分析与白化 Preprocessing PCA and Whitening )
预处理:主成分分析与白化 Preprocessing:PCA and Whitening 一主成分分析 PCA 1.1 基本术语 主成分分析 Principal Components Analysis ...
随机推荐
- c++ 封装线程库 1
1.Pthread条件变量简介 条件变量也是线程间同步一个重要的内容,如果说互斥是一个种竞争关系,那么条件变量用于协调线程之间的关系,是一种合作关系. 条件变量的应用很多,例如:BlockingQue ...
- python_爬虫基础学习
——王宇阳—根据mooc课程总结记录笔记(Code_boy) Requests库:自动爬去HTML页面.自动网络请求提交 robots.txt:网络爬虫排除标准 Beautiful Soup库:解析H ...
- telnet不能用,提示:-bash: telnet: command not found
1.[root@localhost ~]# telnet bash: telnet: command not found 2. 查询了是否安装Telnet包,结果如下: [root@localhos ...
- HDU 4349——Xiao Ming's Hope——————【Lucas定理】
Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- c# 截取picturebox部分图像
Bitmap bit = new Bitmap(renderImage.Width, renderImage.Height); using (Graphics g = Graphics.FromIma ...
- 链表例题2:链表的倒数第k个节点是多少
解题思想: 1.创建一个结点类(为后面实现链表做基础) 2.创建一个查询倒数元素的方法 3.使用快慢指针的思想(主要的部分) 图中的表示的是查询倒数第k个结点的操作: 创建一个快慢指针后pre(慢指针 ...
- css3之移动平台资源
随着移动端越来越普及,前端技术也是百花齐放,但目前移动平台的技术已经趋向于成熟,记得刚实习的时候就是接触的移动端,但现在2年多来,期间遇到了很多莫名其妙的问题,见证了手机用户量的突飞猛进,兴喜的是更多 ...
- zookeeper的几种使用场景
1.数据的发布与订阅 通过发布与订阅实现配置的信息的统一管理,主要采用zk节点可以存储数据的特性,我们可以将一些配置信息存放到某一节点上,订阅这个节点的服务就可以动态的获取这个节点的数据.在应用启动的 ...
- 变更hostname
具有dns解析的主机名 # vim /etc/sysconfig/network ... HOSTNAME=webserver.mydomain.com ... # hostname webserve ...
- javascript:json对象和json字符串的相互转换
json对象和字符串的相互转换 //使用json中的parser方法转换: var str='{"name":"fendouer", "age&quo ...