线性代数精华——矩阵的特征值与特征向量

今天和大家聊一个非常重要,在机器学习领域也广泛使用的一个概念——矩阵的特征值与特征向量。[1]

我们先来看它的定义,定义本身很简单,假设我们有一个n阶的矩阵A以及一个实数lambda,使得我们可以找到一个非零向量x,满足:

如果能够找到的话,我们就称lambda是矩阵A的特征值,非零向量x是矩阵A的特征向量。[2]

几何意义

光从上面的式子其实我们很难看出来什么,但是我们可以结合矩阵变换的几何意义,就会明朗很多。

我们都知道,对于一个n维的向量x来说,如果我们给他乘上一个n阶的方阵A,得到Ax。从几何角度来说,是对向量x进行了一个线性变换。变换之后得到的向量y和原向量x的方向和长度都发生了改变。

但是,对于一个特定的矩阵A来说,总存在一些特定方向的向量x,使得Ax和x的方向没有发生变化,只是长度发生了变化。我们令这个长度发生的变化当做是系数lambda,那么对于这样的向量就称为是矩阵A的特征向量,lambda就是这个特征向量对应的特征值

求解过程

我们对原式来进行一个很简单的变形:

这里的I表示单位矩阵,如果把它展开的话,可以得到一个n元的齐次线性方程组。这个我们已经很熟悉了,这个齐次线性方程组要存在非零解,那么需要系数行列式

不为零,也就是系数矩阵的秩小于n。

我们将这个行列式展开:

这是一个以lambda为未知数的一元n次方程组,n次方程组在复数集内一共有n个解。我们观察上式,可以发现 lambda 只出现在正对角线上,显然,A的特征值就是方程组的解。因为n次方程组有n个复数集内的解,所以矩阵A在复数集内有n个特征值。

我们举个例子,尝试一下:

假设:

那么

我们套入求根公式可以得出使得 f(lambda) = 0 的两个根 lambda1 lambda2,有:

这个结论可以推广到所有的n都可以成立,也就是说对于一个n阶的方阵A,都可以得到:

案例

我们下面来看一个例子:

我们带入

可以得到:

使用Python求解特征值和特征向量

在我们之前的文章当中,我们就介绍过了Python在计算科学上的强大能力,这一次在特征值和特征矩阵的求解上也不例外。通过使用numpy当中的库函数,我们可以非常轻松,一行代码,完成特征值和特征向量的双重计算。

我们一起来看代码:

import numpy as npa = np.mat([[3, 1], [1, 3]])lam, vet = np.linalg.eig(a)

np.linalg.eig 方法会返回两个值,第一个返回值是矩阵的特征值,第二个返回值是矩阵的特征向量,我们看下结果:

这里的特征向量为什么是0.707呢?因为Python自动帮我们做好了单位化,返回的向量都是单位向量,不得不说实在是太贴心了。

总结

关于矩阵的特征值和特征向量的介绍到这里就结束了,对于算法工程师而言,相比于具体怎么计算特征向量以及特征值。理解清楚它们的概念和几何意义更加重要,因为这两者在机器学习的领域当中广泛使用,在许多降维算法当中,大量使用矩阵的特征值和特征向量。

对于降维算法的原理,这里不过多赘述,我们会在以后的文章当中更新相关内容。感兴趣的同学可以小小期待一下。

文章到这里就结束了,这也是线性代数专题的最后一篇文章,短短六篇文章当然不能涵盖线性代数这门学科当中的所有知识点,但实际当中常用的内容基本上已经都包括了。

今天的文章就到这里,如果觉得有所收获,请顺手点个关注或者转发吧,你们的支持是我最大的动力。

参考资料

[1]《线性代数-第五版》: 上海交通大学出版社。

[2] 程序员的数学2: 结城浩

(0)

相关推荐

  • 线性代数:第四章 特征值与特征向量

    本讲义是自己上课所用幻灯片,里面没有详细的推导过程(笔者板书推导)只以大纲的方式来展示课上的内容,以方便大家下来复习. 本章主要介绍特征值与特征向量的知识,前一章我们介绍了线性变换可以把一个向量映射到 ...

  • 机器学习和线性代数 - 特征值和特征向量

    特征值和特征向量可能是线性代数中最重要的概念之一.从机器学习.量子计算.物理到许多数学和工程的问题,都可以通过找到一个矩阵的特征值和特征向量来解决. 根据定义(标量λ.向量v是特征值.特征向量A): ...

  • 线性代数精华——讲透矩阵的初等变换与矩阵的秩

    承志的算法课堂2020-01-07 14:10:00 这篇文章和大家聊聊矩阵的初等变换和矩阵的秩. 矩阵的初等变换这个概念可能在很多人听来有些陌生,但其实我们早在初中的解多元方程组的时候就用过它.只不 ...

  • 专题:《矩阵特征值、特征向量与对角化》内容小结、题型与典型题求解

    一.向量的内正交性 1.基本概念 (1) 内积 (2) 向量的长度 (3) 正交性 (4) 标准正交基 (5) 正交矩阵 (6) 正交变换 2.运算性质与结论 (1) 内积运算性质 (2) 向量长度的 ...

  • 线性代数:矩阵基本运算

    在本文中,我们将介绍矩阵的大部分基本运算,依次是矩阵的加减法.矩阵的标量乘法.矩阵与矩阵的乘法.求转置矩阵,以及深入了解矩阵的行列式运算.本文将不会涉及逆矩阵.矩阵的秩等概念,将来再探讨它们. 矩阵的 ...

  • 使用openCV与C++求图片特征值及特征向量并进行图片处理

    利用openCV求图片特征值及特征向量 1.运用openCV与c++所涉及的头文件 #include<iostream> #include<cstring> #include& ...

  • 线性代数精华2——逆矩阵的推导过程

    上一讲当中我们复习了行列式的内容,行列式只是开胃小菜,线性代数的大头还是矩阵. 矩阵的定义很简单,就是若干个数按照顺序排列在一起的数表.比如m * n个数,排成一个m * n的数表,就称为一个m * ...

  • 帮你理解特征值与特征向量

    原创 田草 高等数学课外辅导 2020-11-02 十一月了,工科院校少学时<线性代数>差不多结课了吧,but,不少同学对这门课还是感到一头雾水.从"线性相关性"到&q ...

  • 【特征值 / 特征向量】- 图解线性代数 11

    "特征"一词译自德语的eigen, 意味着"自身的","有特征的" - 这强调了特征值对于定义特定的线性变换上是很重要的. ☺ 特征值 / ...