前言:最近在学习机器学习,但是在看AE(AutoEncoder)时,感觉到了其与PCA(Principal
Component Analysis)的联系,从而对SVD(Singular Value
Decomposition)产生了较大的兴趣。借此机会,对之前上过的高等代数课的部分知识做一个复健整理。
说到线代,我们首先能想到嘴边的概念有:向量,矩阵,秩,线性空间,线性变化,逆矩阵,单位矩阵,相似矩阵,特征值分解。核心还是矩阵,我们可以把矩阵看作一组基或者看作一个线性变换。
基和坐标
例如, 代表一个向量,
代表一个矩阵,我们令
则有 。即矩阵的每一列代表一个基。
我们常见的单位矩阵 即是把 当作基。
当然,谈到矩阵的基,自然会回忆起线性无关,正交基,施密特正交化这一系列东西,但是这些知识还比较熟悉,不是复习的重点。给定一个向量 ,我们可以把它看作一个向量,也可以把它看作一个坐标,即 ,事实上,我们既然写成了这个样子,就潜意识地将标准基作为基底了。
线性变换的引出
另外一种看法是将矩阵看成一种线性变换,确切来说,矩阵是某个线性变换在一组基上的表示。
按照课本的叙述方式:
设 是数域 上一个 维向量空间,令 是 的一个线性变换。取定 的一个基 考虑 中任意一个向量 仍是 的一个向量。设
自然要问,如何计算 的坐标 。
令 这里 就是$( _j )
关 于 基 _1,_2,,_n$的坐标。
令 阶矩阵 叫做线性变换 关于基 的矩阵。矩阵 的第 列的元素就是 关于基 的坐标。
这样,取定 上 维向量空间 的一个基后,对于 的每一线性变换,有唯一确定的 上 阶矩阵与之对应。
事实上: 这意味着从基 到基 的过渡矩阵 即是线性变换 关于基 的矩阵。
从拉伸角度理解线性变换
我们将坐标轴进行拉伸,即相当于对 做变换 ,即 ,显然,对标准正交基做的拉伸这一类线性变换对应的矩阵都是对角矩阵。那么,当一个线性变换对于标准正交基的矩阵不是对角矩阵时,我们能不能用拉伸来理解呢?事实上,可以,这就是特征向量和特征值的一个很重要的意义。
我们先反过来看,假如有一个线性变换对于基 的矩阵是 ,那么我们只需要命名基 到基 的过渡矩阵 ,命名这一线性变换关于基 的矩阵为 ,根据相似矩阵的知识,有 ,据此求得 ,所以,如果一个线性变换关于标准正交基的矩阵可以相似对角化,那么这个变换就可以被理解为对某组基的拉伸,这组基上的向量就是特征向量,对应的拉伸强度就是对应的特征值,至此,我们找到了一个更为直观的视角去看待线性变换。
书上给出了一个对角化的充要条件,即 维向量空间 的一个线性变换 可以对角化的充要的条件是, 可以分解为 个在 之下不变的一维子空间 的直和。我们可以简单地理解为,这一个线性变换不会让空间坍塌降维。
另外一点值得记录的是,这种拉伸是针对指定的方向的,并不是针对方向上的某一个向量,如果我们在选定的方向上选择标准基作为基,那么我们得到的特征向量矩阵将是一个正交矩阵,即它只表示方向。我们用 来表示特征向量矩阵,用对角阵 来表示拉伸强度,则有 ,因为我们选取的 为正交矩阵,所以有 ,所以 。
非方阵
我们将 作用于 ,即 ,根据很多视频的说法,这个矩阵将平面映射成了斜面,我的理解是,非方阵会将基从 维映射到 维,但是由这些映射完的基所张成的空间的维度还是没有变大。
奇异值分解
根据这个文章的思路作为主线奇异值分解(SVD) - 知乎
(zhihu.com)
存在一个mxn的矩阵 ,我们定义 的SVD为 ,其中 是mxm的矩阵, 是mxn的矩阵, 是nxn的矩阵,我们可以理解为, 是在原平面找的特征向量矩阵, 是在变换后的斜面找的特征向量矩阵。 所以我们可以根据 来求得 和 ,进而求出 。
根据文中的例子: 然后对方阵 和 进行分解。 所以得: 细心的话可以发现 ,但 的最后一个特征值是零,其实就代表着三维空间中一个维度坍塌了,而这一切的根源则是 ,这激起了我对 和 之间关系的兴趣,等以后学矩阵论或许有机会探索下。
Pake