关于矩阵几何意义的理解
学工程的人都在用矩阵,但是很多时候在学校学的东西十分僵硬,让人接受起来很困难,导致想熟练掌握矩阵代数要耗费大量时间,换句话说就是“学了很多,但是还是很费解”,因为矩阵代数直观上似乎不是那么“一眼就懂”(主要是我太菜,数学大师们当我没说2333)。
那么我们或许要考虑一下矩阵代数的集合含义,在对一些内容的理解上应该会有所帮助,至少不会觉得一些东西很“绕”,也更容易让人记住+理解。
本文就整理一下个人理解的矩阵的“意义”吧,感谢网络让我找到不少资料,记录会比较零碎,主要是根据课堂所学内容同步进行,有哪里不太好理解就记下来,均是个人理解。
从向量开始
为什么从向量说起呢?就像标量一个数(1,2j,-3,5.81,-3.121等等所有复数)是标量体系下的基石一样,向量是矩阵运算体系的基石,它是矩阵代数运算(在矩阵代数中应该叫线性变换?)的基本运算单元,事实上向量是标量的扩充,更一般化,而标量只是特殊的向量而已。
向量表示什么?
向量是一组数,这组数的个数称维度。比如一个m维向量:
$$\mathbf{a} = [a_1, a_2, …, a_m]$$
我们可以认为它是在m维空间中的一个“实例”,是一个独一无二的个体。
向量可以用来表示许多物理存在。举个例子来类比吧,Riko是一个根据某种方式定义的空间下存在的人,那么Riko可以看做这个空间下的一个向量:
$$
Riko = [身高,体重,性别,年龄,职业,…]
$$
向量Riko的维度很高,很可能是无穷维的。这个向量描述了Riko这个人在空间下的全部属性。
向量范数
刚开始学的时候我对范数的理解仅仅是去类比Euclidean范数(对,就是那个元素平方和开方,二范数),后来才知道所有范数应该有着更广义的含义。
向量范数是对向量在其存在空间内对其“尺度”或者“大小”(广义上的)一种衡量手段,有着不同的定义方式,是一种存在尺度的描述。
矩阵
开始我们的重点,矩阵是什么?怎么直观去理解?
矩阵的书面样子很简洁,m行n列的一组数:
$$
\mathbf{A} = \begin{bmatrix}
a_{11} & \cdots & a_{1n} \
\vdots & \ddots & \vdots \
a_{m1} & \cdots & a_{mn}
\end{bmatrix}
$$
单独一个矩阵几何意义是一种空间上的变换,将他看成一个算子[^1],表示着一种扭曲原空间的“操作”。
[^1]:用算子这个词在数学上可能不够严谨,但这里方便自己理解就说成这样了。
矩阵与向量乘法
联系矩阵和向量乘法规则,我们可以这样理解矩阵作为因子的作用:
- 对原始向量进行了m维空间→n维(或者反过来)空间的升维/降维映射
- 一定把m维向量映射到n维或者把n维映射到m维,总之是把向量在两个维度空间之间变换
比如:
$$\mathbf{a}{1\times m} \times \mathbf{A}{m\times n} = \mathbf{b}_{1\times n}$$
就是把原来的m维空间中的向量a映射到了n维空间中,起了个新名字叫b。
矩阵与矩阵乘法
矩阵乘法视为许多种空间变换的连续作用,如:
$$
\mathbf{C} = \mathbf{A}\mathbf{B}
$$
矩阵C表示一种变换,这种变换为依次进行变换A和B的等效变换。
我们知道矩阵乘法中左乘和右乘是不同的,而且行、列数必须协调。其实很好理解,如:存在一个矩阵表示从m维到n维变换,每次变换的起始空间必须是m维或者n维空间,因为矩阵描述的就是这两个维度之间的变换方式,不可能直接对m维空间进行一个p维(p≠m)到n维的变换,因此矩阵乘法一定要协调。
至于左右乘,可以理解为进行变换的顺序不一样,其等价变换涉及的空间变换关系也不同。
一些矩阵运算的理解
逆矩阵与伪逆矩阵
矩阵的可逆性可以理解为线性变换的可逆性。若方阵A可逆,表示A这个m维→m维的变换具有可逆性,我可以将m维空间里的向量经过A变换成m维空间的另一个向量,这新向量可以通过逆变换$\mathbf{A}^{-1}$再变换回原来的向量。
如果矩阵不再是方阵呢?我们要是表示m维与n维空间变换关系的可逆性与否呢?这时候引入了伪逆的概念。
伪逆描述了不同维数空间之间线性变换的可逆性。
特征值与特征向量
当时学了特征分解之后,虽然知道如何求解特征值和特征向量,但是对它们的意义还是一头雾水。
实际上特征分解在做这样一件事:
- 将原先用一个矩阵描述的线性变换A分解为基础的变换叠加
特征分解定义是这样:
$$
\mathbf{A} = \mathbf{U}\mathbf{\Sigma}\mathbf{U}^H
$$
酉矩阵U描述了变换发生的维度,特征值矩阵$\mathbf{\Sigma}$描述了每个维度上变换的“强度”或“倍数”,其对角线上元素从上到下是特征值的降序排列。
通过特征值分解可以明确看出一个线性变换的主要变换发生在哪个维度上(根据特征向量判断),以及变换的强度如何(根据特征值大小判断)。
从特征值和特征向量的定义看:
$$
\mathbf{A}\mathbf{x} = \lambda\mathbf{x}
$$
对特征向量进行线性变换只进行在特征向量方向上的伸缩变换,没有其他变换。也就是说,满足这种性质的向量就是一个变换的特征向量,对应伸缩变换的因子就是特征值。
SVD与奇异值
SVD即奇异值分解,起到和特征分解类似的作用,也是将一个线性变换分解成基础的变换叠加。
SVD是对一般矩阵而言的,不要求一定为方阵,分解表示如下:
$$
\mathbf{A} = \mathbf{U}\mathbf{\Sigma}\mathbf{V}^H
$$
含义基本和特征分解相同,不过是描述对象变成了非方阵。
很自然我们想到,对方阵的SVD和特征分解是什么关系呢?它们在方阵的情况下一样么?
SVD和特征分解在方阵情况下不是完全一样的,这是由于计算SVD的时候用到的方法限定的。实际上奇异值的计算是借助了特征值计算而来的,对非方阵A,我们用$\mathbf{A}^H\mathbf{A}$构造一个方阵,对这个方阵进行特征值分解,得到特征值$\lambda_i$,A的奇异值$\sigma_i$就是$\sqrt{\lambda_i}$。
为啥奇异值和特征值就差一个平方关系呢?从两种分解的定义上我们很容易推得,此处不推导。
从SVD和特征分解倒是能看出类似于一种哲学式的思想:我们总是尝试着用熟悉的事物去解释新的事物,建立已知和未知的联系,使我们可以用熟悉的方式处理新事物。 哎,跑远了跑远了。