前言:最近在学习机器学习,但是在看AE(AutoEncoder)时,感觉到了其与PCA(Principal Component Analysis)的联系,从而对SVD(Singular Value Decomposition)产生了较大的兴趣。借此机会,对之前上过的高等代数课的部分知识做一个复健整理。

说到线代,我们首先能想到嘴边的概念有:向量,矩阵,秩,线性空间,线性变化,逆矩阵,单位矩阵,相似矩阵,特征值分解。核心还是矩阵,我们可以把矩阵看作一组基或者看作一个线性变换。

基和坐标

例如,代表一个向量,

代表一个矩阵,我们令

则有。即矩阵的每一列代表一个基。

我们常见的单位矩阵即是把当作基。

当然,谈到矩阵的基,自然会回忆起线性无关,正交基,施密特正交化这一系列东西,但是这些知识还比较熟悉,不是复习的重点。给定一个向量,我们可以把它看作一个向量,也可以把它看作一个坐标,即,事实上,我们既然写成了这个样子,就潜意识地将标准基作为基底了。

线性变换的引出

另外一种看法是将矩阵看成一种线性变换,确切来说,矩阵是某个线性变换在一组基上的表示。

按照课本的叙述方式:

是数域上一个维向量空间,令的一个线性变换。取定的一个基 考虑中任意一个向量 仍是的一个向量。设 自然要问,如何计算的坐标

这里就是$( _j ) _1,_2,,_n$的坐标。

阶矩阵叫做线性变换关于基的矩阵。矩阵的第列的元素就是关于基的坐标。

这样,取定维向量空间的一个基后,对于的每一线性变换,有唯一确定的阶矩阵与之对应。

事实上: 这意味着从基到基的过渡矩阵即是线性变换关于基的矩阵。

从拉伸角度理解线性变换

我们将坐标轴进行拉伸,即相当于对做变换 ,即,显然,对标准正交基做的拉伸这一类线性变换对应的矩阵都是对角矩阵。那么,当一个线性变换对于标准正交基的矩阵不是对角矩阵时,我们能不能用拉伸来理解呢?事实上,可以,这就是特征向量和特征值的一个很重要的意义。

我们先反过来看,假如有一个线性变换对于基的矩阵是,那么我们只需要命名基到基的过渡矩阵,命名这一线性变换关于基的矩阵为,根据相似矩阵的知识,有,据此求得,所以,如果一个线性变换关于标准正交基的矩阵可以相似对角化,那么这个变换就可以被理解为对某组基的拉伸,这组基上的向量就是特征向量,对应的拉伸强度就是对应的特征值,至此,我们找到了一个更为直观的视角去看待线性变换。

书上给出了一个对角化的充要条件,即维向量空间的一个线性变换可以对角化的充要的条件是,可以分解为个在之下不变的一维子空间的直和。我们可以简单地理解为,这一个线性变换不会让空间坍塌降维。

另外一点值得记录的是,这种拉伸是针对指定的方向的,并不是针对方向上的某一个向量,如果我们在选定的方向上选择标准基作为基,那么我们得到的特征向量矩阵将是一个正交矩阵,即它只表示方向。我们用来表示特征向量矩阵,用对角阵来表示拉伸强度,则有,因为我们选取的为正交矩阵,所以有,所以

非方阵

我们将作用于,即,根据很多视频的说法,这个矩阵将平面映射成了斜面,我的理解是,非方阵会将基从维映射到维,但是由这些映射完的基所张成的空间的维度还是没有变大。

奇异值分解

根据这个文章的思路作为主线奇异值分解(SVD) - 知乎 (zhihu.com)

存在一个mxn的矩阵,我们定义的SVD为,其中是mxm的矩阵,是mxn的矩阵,是nxn的矩阵,我们可以理解为,是在原平面找的特征向量矩阵,是在变换后的斜面找的特征向量矩阵。 所以我们可以根据来求得,进而求出

根据文中的例子: 然后对方阵进行分解。 所以得: 细心的话可以发现,但的最后一个特征值是零,其实就代表着三维空间中一个维度坍塌了,而这一切的根源则是,这激起了我对之间关系的兴趣,等以后学矩阵论或许有机会探索下。

Pake