线性代数有什么用?学习线性代数的意义在哪?


(Edisonfang) #1

学线性代数有什么用?用处可大了!可以说线性代数不管是实用性上来说,还是从对未来更有用的课程的理解上来说,都是作用大大的。

这里不得不提一句,国内的线性代数教材非常的差。翻一翻国内的教材,基本上着重点在运算上,然而在计算机如此发达的今天,绝大多数情况下怎么去计算矩阵的乘积、矩阵的秩实际上并没有太大意义,重要的是计算的原理。而线性代数中最为重要的理念,比如线性空间、线性变换对于理解代数甚至高层次的数学都是非常有帮助的。如果想仔细深入理解线性代数,推荐看国外的教材。

简单举几个例子吧。

一.

现在有两个n维向量<x,y>=0<x,y>=0,我们可以定义内积:<x,y>=0。有了内积的定义,我们可以另外定义两个概念:距离和正交。范数可以定义为:<x,y>=0,相应的距离可以定义为<x,y>=0,两个向量x和y正交如果:<x,y>=0

现在假设有n个向量:||e_i||=1,且满足:||e_i||=1,那么我们说这n个向量组成了一组正交基。下面讨论规范化的正交基,即||e_i||=1

现在定义E'E=I,那么可以得到E'E=I,或者写成:
E'E=I,同时有E'E=I

好了,那么a就是x在由e_i=(0,0,...1,...0)'组成的坐标系中的坐标。最简单的比如e_i=(0,0,...1,...0)',也就是我们经常使用的坐标系。

说这么多有什么用呢?你可能还记得傅里叶级数。好了,我们现在把任何一个函数想象成一个向量,我们找一组函数,比如\int_0^{2\pi} sin(nx)sin(mx)dx=0,n\ne m,我们可以知道,\int_0^{2\pi} sin(nx)sin(mx)dx=0,n\ne m
\int_0^{2\pi} sin(nx)sin(mx)dx=0,n\ne m
\int_0^{2\pi} sin(nx)sin(mx)dx=0,n\ne m
你想到了啥?对了。如果把积分看成是“内积”,那么以上的sin cos函数就变成了一组正交基,再仔细看一下傅里叶级数的公式,傅里叶级数无非就是把一个函数往这个正交基上进行投影。所以傅里叶级数其实就是得到了一组“坐标”而已。当然了,这个坐标是无穷维的。学好了线性代数,一般意义上的n维空间能够想象,扩展到无穷维的傅里叶变幻也就没啥了。而一旦你掌握了傅里叶级数,那么声音频谱处理、图像压缩等等一些初级技术,也就没啥问题了。

二.

现在考虑一个矩阵A,n-by-n维。一个x维的向量与其相乘意味着什么?
y=Ax=a_1,a_2...a_n'=\sum_{i=1}^n a_i\cdot x_i
也就是把A的列向量的一个线性组合。同时,A这个矩阵把一个n维空间的点x映射到了n维空间的另一个点y,我们把这种映射叫做变换。(关于线性变换,有一大堆可以写的,在此不说了,理解了线性变换才真正理解了矩阵)

线性变换有很多实用的例子,比如最简单的,如果我有一个图像,需要旋转、放大该怎么做呢?用线性变换。比如:
\theta
这个矩阵乘以任意一个向量x,就把这个点逆时针旋转了\theta度。以上也就是计算机处理二维、三维图像的原理。

三.

说起线性变换,有一类特殊的线性变换,叫做投影。比如我有k个n维空间的向量y'y=\hat y' \hat y +e'e=y'Py+y'My,我现在希望找到一个X的线性组合,使得新得到的点与空间上的其他点y距离最小。那么可以证明,这个点为:
y'y=\hat y' \hat y +e'e=y'Py+y'My
现在记矩阵y'y=\hat y' \hat y +e'e=y'Py+y'My,可以得到:y'y=\hat y' \hat y +e'e=y'Py+y'My
上面的两个矩阵,P和M,因为其乘积等于其本身,所以成为幂等矩阵。幂等矩阵跟正交投影是一一对应的。
对于任何两个向量y'y=\hat y' \hat y +e'e=y'Py+y'My,可以得到y'y=\hat y' \hat y +e'e=y'Py+y'My,所以经过M和P的变换之后的向量正交。
如果你仔细观察,会发现以上推导的东西就是最小二乘法OLS。最小二乘法的很多优良性质都可以使用幂等矩阵推导出来,特别是小样本性质,基本上离不开幂等矩阵。比如最简单的,根据勾股定理:
y'y=\hat y' \hat y +e'e=y'Py+y'My

如果把正交投影这个概念推广到概率空间,那就是条件期望的概念了。什么迭代期望公式之类的,都可以用这个正交投影进行类比。

四.

说个实际点的应用吧。Morkov链相信大家都听说过。如果向量T=\left[\begin{array}{ccc}0.8 & 0.1 & 0.1\ 0.2 & 0.6 & 0.2\ 0.1 & 0.1 & 0.8 \end{array} \right]代表了t期的状态概率分布,根据马尔科夫性的假设,下一期的状态分布T=\left[\begin{array}{ccc}0.8 & 0.1 & 0.1\ 0.2 & 0.6 & 0.2\ 0.1 & 0.1 & 0.8 \end{array} \right]只跟上一期有关,跟T=\left[\begin{array}{ccc}0.8 & 0.1 & 0.1\ 0.2 & 0.6 & 0.2\ 0.1 & 0.1 & 0.8 \end{array} \right]都没有关系,那么可以把下一期的状态分布写成:
T=\left[\begin{array}{ccc}0.8 & 0.1 & 0.1\ 0.2 & 0.6 & 0.2\ 0.1 & 0.1 & 0.8 \end{array} \right]
其中T为马尔科夫矩阵,即第(i,j)个元素为从状态i到状态j的概率,且每行加起来等于1.
比如:
T=\left[\begin{array}{ccc}0.8 & 0.1 & 0.1\ 0.2 & 0.6 & 0.2\ 0.1 & 0.1 & 0.8 \end{array} \right]
那么一个自然的问题是,当t趋向于无穷,稳定状态是什么呢?很简单,把T进行特征值分解,对于特征值为1的特征向量就是平稳的分布,比如在这个例子里,平稳的分布是(2/5, 1/5, 2/5)。

另外一个有趣的例子是,如果T代表的不是状态,而是几个网页。比如
T=\left[\begin{array}{ccc}0 & 0.5 & 0.5\ 1 & 0 & 0\ 0.5 & 0.5 & 0 \end{array} \right]
这里的T意味着,第一个页面引用了第2\3个页面,第2个页面引用了第1个页面,第三个页面引用了第1、2个页面,那么这几个页面的重要程度如何呢?

这里可以这么想,一个无聊上网的人,从随机的任何一页开始看,并完全随机的点击页面上的链接,那么当这个无聊透顶的人不断的点击之后,这些网页被点击的概率分布是怎样的?

同样的思路,特征值分解,得到最终稳定的分布为(4/9,3/9,2/9),那么这些网页的重要性也就评出来了。

这也就是Google的排序算法PageRank的一个简化版本

最后,一张图解决你心中所有的疑问:


整理自《知乎慧航》