当前位置: 华文星空 > 知识

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

2022-06-02知识

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

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

简单举几个例子吧。

1、现在有两个n维向量(x_1,x_2,...x_n) 、(y_1,y_2,...y_n) ,我们可以定义内积:<x,y>=x_1\cdot y_1+x_2 \cdot y_2+...+x_n\cdot y_n 。有了内积的定义,我们可以另外定义两个概念:距离和正交。范数可以定义为:||x||=\sqrt{<x,x>} ,相应的距离可以定义为d(x,y)=||x-y|| ,两个向量x和y正交如果:<x,y>=0 。

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

现在定义a_i=<x,e_i> ,那么可以得到x=\sum_{i=1}^n a_i\cdot e_i ,或者写成:

x=Ea, a=(a_1,a_2,...a_n)', E=[e_1,e_2,...e_n] ,同时有E'E=I 。

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

说这么多有什么用呢?你可能还记得傅里叶级数。好了,我们现在把任何一个函数想象成一个向量,我们找一组函数,比如sin(nx), cos(mx) ,我们可以知道,\int_0^{2\pi} sin(nx)cos(mx)dx=0

\int_0^{2\pi} cos(nx)cos(mx)dx=0,n\ne m

\int_0^{2\pi} sin(nx)sin(mx)dx=0,n\ne m

你想到了啥?对了。如果把积分看成是「内积」,那么以上的sin cos函数就变成了一组正交基,再仔细看一下傅里叶级数的公式,傅里叶级数无非就是把一个函数往这个正交基上进行投影。所以傅里叶级数其实就是得到了一组「坐标」而已。当然了,这个坐标是无穷维的。学好了线性代数,一般意义上的n维空间能够想象,扩展到无穷维的傅里叶变幻也就没啥了。而一旦你掌握了傅里叶级数,那么声音频谱处理、图像压缩等等一些初级技术,也就没啥问题了。

2、现在考虑一个矩阵A,n-by-n维。一个x维的向量与其相乘意味着什么?

y=Ax=[a_1,a_2...a_n](x_1,x_2...x_n)'=\sum_{i=1}^n a_i\cdot x_i

也就是把A的列向量的一个线性组合。同时,A这个矩阵把一个n维空间的点x映射到了n维空间的另一个点y,我们把这种映射叫做变换。(关于线性变换,有一大堆可以写的,在此不说了,理解了线性变换才真正理解了矩阵)

线性变换有很多实用的例子,比如最简单的,如果我有一个图像,需要旋转、放大该怎么做呢?用线性变换。比如:

A=\left[\begin{array}{cc}cos\theta & -sin\theta\\ sin\theta & cos\theta \end{array} \right]

这个矩阵乘以任意一个向量x,就把这个点逆时针旋转了\theta 度。以上也就是计算机处理二维、三维图像的原理。

3、说起线性变换,有一类特殊的线性变换,叫做投影。比如我有k个n维空间的向量[x_1,...,x_k]=X ,我现在希望找到一个X的线性组合,使得新得到的点与空间上的其他点y距离最小。那么可以证明,这个点为:

\hat y=X(X'X)^{-1}X'y

现在记矩阵P=X(X'X)^{-1}X', M=I-P ,可以得到:P^2=P, M^2=M, MP=PM=0 。

上面的两个矩阵,P和M,因为其乘积等于其本身,所以成为幂等矩阵。幂等矩阵跟正交投影是一一对应的。

对于任何两个向量x,y ,可以得到(Mx)'(Py)=x'MPy=0 ,所以经过M和P的变换之后的向量正交。

如果你仔细观察,会发现以上推导的东西就是最小二乘法OLS。最小二乘法的很多优良性质都可以使用幂等矩阵推导出来,特别是小样本性质,基本上离不开幂等矩阵。比如最简单的,根据勾股定理:

y'y=\hat y' \hat y +e'e=y'Py+y'My

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

4、说个实际点的应用吧。Morkov链相信大家都听说过。如果向量x_t 代表了t期的状态概率分布,根据马尔科夫性的假设,下一期的状态分布x_{t+1} 只跟上一期有关,跟x_{t-1},x_{t-2},... 都没有关系,那么可以把下一期的状态分布写成:

x_{t+1}=Tx_t

其中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的一个简化版本