本文用于复习并记录机器学习中的相关数学基础,仅供学习参考。很多总结和例子来源于mml项目(mml-book.github.io)十分感谢这本书的作者,PS:这本书目前没有中文版。
线性代数
线性代数在大学阶段都是必修科目,但是由于大学中的线性代数都是从行列式开始,尽管考试能够通过练习拿到高分,但是“线性代数到底是干啥的,很多概念为何要这么定义”这个问题使得线性代数的学习始终是雾里看花。本人也因为这个问题苦恼了很久,故有此文的出现,仅做抛砖引玉,文字加了不少自己的理解而且对于部门内容进行了精简以求快速复习,有不当之处,还请大家指正。
这一篇以基础概念为主,是后面更深层理解的基础。
线性方程组
线性方程组大家是再熟悉不过了,从中学就接触过像下面这样的式子:
x
1
+
x
2
+
x
3
=
3
x
1
−
x
2
+
2
x
3
=
2
2
x
1
+
3
x
3
=
5
\begin{alignedat}{3} & x_1 + &x_2 + &x_3 = 3 \\ & x_1 - &x_2 + &2x_3 = 2 \\ 2& x_1 &+ &3x_3 = 5 \end{alignedat}
2x1+x1−x1x2+x2++x3=32x3=23x3=5
这个式子很简单,我们可以很快的得到解(
x
1
=
x
2
=
x
3
=
1
x_1 = x_2 =x3 =1
x1=x2=x3=1)。
那么对于任意一个线性方程组,我们都会得到这么舒服的解吗?不,要这么舒服就没得研究了。事实上,对于线性方程组的解,我们可能会面对三种情况:
- 无解
- 唯一解
- 无数解
为了更好的理解这三种情况,我们可以从几何的角度来想象。
对于一个仅有2个变量
x
1
,
x
2
x_1,x_2
x1,x2的线性方程组,每个方程代表着二维平面上的一条直线,那么满足所有方程的点自然会有三种情况:
- 所有直线平行(无解)
- 所有直线相交于一点(唯一解)
- 所有直线其实都是同一条直线(无数解)
这种几何上的直观理解也可以继续向高维度推广。
比如一个仅有3个变量
x
1
,
x
2
,
x
3
x_1,x_2,x_3
x1,x2,x3的线性方程组,每个方程代表着三维空间上的一个平面,那么同上我们会面对三种情况:
- 所有的平面都是平行的(无解)
- 所有的平面相交于一条线(唯一解)
- 所有的平面其实都是一个平面(无数解)
至此,我们发现线性方程组解的情况只有三种,而其有对应的几何解释,这一些都十分顺畅,我迫不及待的要看看接下来我们还会对它做什么了,但是有一件事很让人糟心,那就是------线性方程组写起来好麻烦。。。写那么长的式子分析来分析去不会糊涂吗???
但是不慌,我们换种写法就OK,于是就有了下面这样的式子:
x 1 [ a 11 . . a m 1 ] + x 1 [ a 12 . . a m 2 ] + . . . + x 1 [ a 1 n . . a m n ] = [ b 1 . . b m ]    ⟹    [ a 11 . . . a 1 n . . . . . . a m 1 . . . a m n ] [ x 1 . . . x n ] = [ b 1 . . b m ] x_1\begin{bmatrix} a_{11} \\ ..\\ a_{m1} \end{bmatrix} +x_1\begin{bmatrix} a_{12} \\ ..\\ a_{m2} \end{bmatrix} + ... + x_1\begin{bmatrix} a_{1n} \\ ..\\ a_{mn} \end{bmatrix} = \begin{bmatrix} b_{1} \\ ..\\ b_{m} \end{bmatrix}\implies \begin{bmatrix} a_{11}&... & a_{1n} \\ ...&&...\\ a_{m1} &...& a_{mn} \end{bmatrix}\begin{bmatrix} x_1 \\ ...\\ x_n \end{bmatrix}= \begin{bmatrix} b_{1} \\ ..\\ b_{m} \end{bmatrix} x1⎣⎡a11..am1⎦⎤+x1⎣⎡a12..am2⎦⎤+...+x1⎣⎡a1n..amn⎦⎤=⎣⎡b1..bm⎦⎤⟹⎣⎡a11...am1......a1n...amn⎦⎤⎣⎡x1...xn⎦⎤=⎣⎡b1..bm⎦⎤
这么一看,清爽多了,这玩意好啊,我们得给最左边这块个名字-----矩阵。
矩阵
矩阵是线性代数里的核心概念。我们可以用它来表达两种对象:
- 线性方程组
- 线性映射
前者的来历我们已经说明,后者等到我们介绍完向量空间以后再进行讨论。
矩阵的定义本身就不再赘述,对行向量/列向量的定义熟悉即可,不加声明的情况下,向量默认为列向量。
矩阵的加法与乘法
矩阵加法
对于两个矩阵(
A
∈
R
m
×
n
,
B
∈
R
m
×
n
A \in R^{m \times n}, B \in R^{m \times n}
A∈Rm×n,B∈Rm×n)的和,定义如下:
A
+
B
=
[
a
1
1
+
b
1
1
.
.
a
1
n
+
b
1
n
.
.
.
.
.
.
a
m
1
+
b
m
1
.
.
.
a
m
n
+
b
m
n
]
A + B = \begin{bmatrix} a_11 + b_11 &..& a_{1n}+b_{1n} \\ ...&&...\\ a_{m1} + b_{m1} &... & a_{mn} + b_{mn} \end{bmatrix}
A+B=⎣⎡a11+b11...am1+bm1.....a1n+b1n...amn+bmn⎦⎤
矩阵乘法
对于两个矩阵(
A
∈
R
m
×
n
,
B
∈
R
n
×
k
A \in R^{m \times n}, B \in R^{n \times k}
A∈Rm×n,B∈Rn×k)的点乘(dot product),定义如下:
C
=
A
B
∈
R
m
×
k
c
i
j
=
∑
l
=
1
n
a
i
l
b
l
j
,
i
=
1
,
.
.
.
,
m
,
j
=
1
,
.
.
.
,
n
C = AB \in R^{m \times k} \\ c_{ij} = \sum_{l=1}^{n}a_{il}b_{lj}, \quad i=1,...,m, \quad j=1,...,n
C=AB∈Rm×kcij=∑l=1nailblj,i=1,...,m,j=1,...,n。
一定要注意矩阵的维度要符合乘法的定义。
矩阵乘法的定义看起来比较突兀,但目前,我们先记住这个概念,然后到用矩阵表示线性映射的章节再来看这个定义,就是十分流畅的了。
单位矩阵
简单来说,单位矩阵就是一个对角线上全是1,其余部分全是0的方阵。
我们把
n
n
n阶的单位矩阵一般写为
I
n
I_n
In。
与标量相乘
前面说了矩阵之间的乘法,那么如果我们给一个矩阵乘上一个标量呢?
结果是:对矩阵的每个元素乘上这个标量
逆与转置
逆
对于一个方阵
A
∈
R
n
×
n
A \in R^{n \times n}
A∈Rn×n,如果存在一个矩阵
B
∈
R
n
×
n
B \in R^{n \times n}
B∈Rn×n,使得:
A
B
=
I
n
=
B
A
AB = I_n=BA
AB=In=BA
那么我们就称矩阵
B
B
B为逆,并记为
A
−
1
A^{-1}
A−1。
可惜逆并不是所有的矩阵都有的,如果一个矩阵存在逆,那么这个矩阵就被称作可逆/非奇异矩阵。
转置
对于矩阵 A ∈ R m × n A \in R^{m \times n} A∈Rm×n, 矩阵 B ∈ R n × k B \in R^{n \times k} B∈Rn×k满足 b i j = a j i b_{ij} = a_{ji} bij=aji就被称作矩阵 A A A的转置,记为 B = A T B=A^{T} B=AT。
解决线性方程组
通过了解上一章节的,我们已经掌握了解决线性方程组所需要的全部工具。
首先,我们矩阵紧凑的表达出一个线性方程组:
x
1
[
a
11
.
.
a
m
1
]
+
x
1
[
a
12
.
.
a
m
2
]
+
.
.
.
+
x
1
[
a
1
n
.
.
a
m
n
]
=
[
b
1
.
.
b
m
]
  
⟹
  
[
a
11
.
.
.
a
1
n
.
.
.
.
.
.
a
m
1
.
.
.
a
m
n
]
[
x
1
.
.
.
x
n
]
=
[
b
1
.
.
b
m
]
x_1\begin{bmatrix} a_{11} \\ ..\\ a_{m1} \end{bmatrix} +x_1\begin{bmatrix} a_{12} \\ ..\\ a_{m2} \end{bmatrix} + ... + x_1\begin{bmatrix} a_{1n} \\ ..\\ a_{mn} \end{bmatrix} = \begin{bmatrix} b_{1} \\ ..\\ b_{m} \end{bmatrix}\implies \begin{bmatrix} a_{11}&... & a_{1n} \\ ...&&...\\ a_{m1} &...& a_{mn} \end{bmatrix}\begin{bmatrix} x_1 \\ ...\\ x_n \end{bmatrix}= \begin{bmatrix} b_{1} \\ ..\\ b_{m} \end{bmatrix}
x1⎣⎡a11..am1⎦⎤+x1⎣⎡a12..am2⎦⎤+...+x1⎣⎡a1n..amn⎦⎤=⎣⎡b1..bm⎦⎤⟹⎣⎡a11...am1......a1n...amn⎦⎤⎣⎡x1...xn⎦⎤=⎣⎡b1..bm⎦⎤
此时我们的问题就转化为了:
A
x
=
b
A\mathbf{x}=\mathbf{b}
Ax=b
我们经常在课本上看到这个形式,既然目标已经确定,那么怎么解出这些未知的x呢?
特解与通解
我们首先来了解特解和通解的概念。
以一个例子为出发点,考虑我们要解下面的这个线性方程组:
[
1
0
8
−
4
0
1
2
12
]
[
x
1
x
2
x
3
x
4
]
=
[
42
8
]
\begin{bmatrix} 1 & 0 & 8 & -4 \\ 0 & 1 & 2 &12 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\\ x_3\\ x_4 \end{bmatrix}=\begin{bmatrix} 42 \\ 8 \end{bmatrix}
[100182−412]⎣⎢⎢⎡x1x2x3x4⎦⎥⎥⎤=[428]
首先来观察这个式子,这是一个非齐次线性方程组,我们可以很轻易的发现一组解,那就是
[
42
,
8
,
0
,
0
]
T
\lbrack 42,8,0,0 \rbrack^T
[42,8,0,0]T。
也就是第一列乘42次,第二列乘8次再相加。
这个解就被称为特解。
但是就这一个解吗? 不是。
事实上,我们发现:对特解添加0时不会改变特解。
那么意味着,我们可以通过使用矩阵的列向量来构造0从而捕获所有其他的解。
首先,我们使用第一,二列表示第三列,从而得到:
0
=
8
c
1
+
2
c
2
−
1
c
3
+
0
c
4
\mathbf{0} = 8\mathbf{c_1} + 2\mathbf{c_2} -1\mathbf{c_3} + 0\mathbf{c_4}
0=8c1+2c2−1c3+0c4
也就是说有,
[
1
0
8
−
4
0
1
2
12
]
⟮
λ
1
[
8
2
−
1
0
]
⟯
=
0
,
λ
1
∈
R
\begin{bmatrix} 1 & 0 & 8 & -4 \\ 0 & 1 & 2 &12 \end{bmatrix}\lgroup \lambda_1\begin{bmatrix} 8\\ 2\\ -1\\ 0 \end{bmatrix} \rgroup=\mathbf0, \quad \lambda_1 \in R
[100182−412]⟮λ1⎣⎢⎢⎡82−10⎦⎥⎥⎤⟯=0,λ1∈R
再用第一,二列表示第四列,可以得到:
[
1
0
8
−
4
0
1
2
12
]
⟮
λ
2
[
−
4
12
0
−
1
]
⟯
=
0
,
λ
2
∈
R
\begin{bmatrix} 1 & 0 & 8 & -4 \\ 0 & 1 & 2 &12 \end{bmatrix}\lgroup \lambda_2\begin{bmatrix} -4\\ 12\\ 0\\ -1 \end{bmatrix} \rgroup=\mathbf0, \quad \lambda_2 \in R
[100182−412]⟮λ2⎣⎢⎢⎡−4120−1⎦⎥⎥⎤⟯=0,λ2∈R
结合前面的分析,我们可以构造这个线性方程组的解为:
x
∈
R
4
,
x
=
[
4
2
0
0
]
+
λ
1
[
8
2
−
1
0
]
+
λ
2
[
−
4
12
0
−
1
]
,
λ
1
,
λ
2
∈
R
x \in R^4, \quad \mathbf{x} =\begin{bmatrix} 4 \\ 2 \\ 0\\ 0 \end{bmatrix} + \lambda_1\begin{bmatrix} 8\\ 2\\ -1\\ 0 \end{bmatrix}+ \lambda_2\begin{bmatrix} -4\\ 12\\ 0\\ -1 \end{bmatrix}, \quad \lambda_1,\lambda_2 \in R
x∈R4,x=⎣⎢⎢⎡4200⎦⎥⎥⎤+λ1⎣⎢⎢⎡82−10⎦⎥⎥⎤+λ2⎣⎢⎢⎡−4120−1⎦⎥⎥⎤,λ1,λ2∈R
这个解,就叫做通解。
根据上述流程,我们可以得到一个通用的方法来解决非齐次线性方程组:
- 找到 A x = b A\mathbf{x}=\mathbf{b} Ax=b的特解
- 找到 A x = 0 A\mathbf{x}=\mathbf{0} Ax=0的所有解
- 联合1,2的解构造通解
事实上,上述问题中的矩阵形状很好。我们可以很轻松的找出特解和通解。但在现实生活中,大部分矩阵没有这么好的形状,不过我们有一个解决它的利器-----高斯消元法。
高斯消元法
初级变换
高斯消元法的核心就是矩阵的初等变换。在初等变换的过程中,线性方程组的解集是不会发生变化的。这种性质保证了我们能够通过初等变换来把矩阵变换成一个简单的形式。
矩阵初等变换有三种:
- 交换两行(方程)
- 对一行(方程)乘以一个常数 λ ∈ R \ { 0 } \lambda\in R\backslash\{0\} λ∈R\{0}
- 两行(方程)相加
此外,我们还需要了解以下几个概念:
- 增广矩阵
- 行阶梯形
- 主元和自由变量
- 行最简阶梯形
至此,我们使用上述工具和概念定义高斯消元法为:
通过执行初等变换将线性方程组变为行最简阶梯形的算法。
当其变为行最简阶梯形以后,如同特解与通解那节介绍的那样,矩阵就会拥有一个好形状,从而方便的求得解。
应用:“-1” trick
“-1” trick是一种实用的求齐次方程组
A
x
=
0
A\mathbf{x}=\mathbf{0}
Ax=0的方法。
其核心在于添加行。
举个栗子:
一个已经是行最简形的矩阵
[
1
3
0
0
3
0
0
1
0
9
0
0
0
1
−
4
]
  
⟹
  
[
1
3
0
0
3
0
−
1
0
0
0
0
0
1
0
9
0
0
0
1
−
4
0
0
0
0
−
1
]
\begin{bmatrix} 1 & 3 &0 &0 &3 \\ 0 & 0 &1 &0 &9\\ 0&0&0&1&-4\\ \end{bmatrix}\implies\begin{bmatrix} 1 & 3 &0 &0 &3 \\ 0 & -1 &0 &0 &0 \\ 0 & 0 &1 &0 &9\\ 0&0&0&1&-4\\ 0&0&0&0&-1 \end{bmatrix}
⎣⎡10030001000139−4⎦⎤⟹⎣⎢⎢⎢⎢⎡100003−10000010000010309−4−1⎦⎥⎥⎥⎥⎤
可以看出,第二行和第五行都是我们加进去的"-1"行。
至此,我们可以用眼睛看出
A
x
=
0
A\mathbf{x}=\mathbf{0}
Ax=0的解为:
x
∈
R
5
,
x
=
λ
1
[
3
−
1
0
0
0
]
+
λ
2
[
3
0
9
−
4
−
1
]
,
λ
1
,
λ
2
∈
R
x \in R^5, \quad \mathbf{x} = \lambda_1\begin{bmatrix} 3\\ -1\\ 0\\ 0\\ 0 \end{bmatrix}+ \lambda_2\begin{bmatrix} 3\\ 0\\ 9\\ -4\\ -1 \end{bmatrix}, \quad \lambda_1,\lambda_2 \in R
x∈R5,x=λ1⎣⎢⎢⎢⎢⎡3−1000⎦⎥⎥⎥⎥⎤+λ2⎣⎢⎢⎢⎢⎡309−4−1⎦⎥⎥⎥⎥⎤,λ1,λ2∈R
应用:求逆
一行即可言明:
[
A
∣
I
n
]
→
[
I
n
∣
A
−
1
]
[A|I_n] \to [I_n|A^{-1}]
[A∣In]→[In∣A−1]
这也就是说,确定矩阵的逆和解决线性方程组是等价的。
总结-如何解决线性方程组?
对于一个线性方程组 A x = b A\mathbf{x}=\mathbf{b} Ax=b:
- 当矩阵A为方阵且可逆时, x = A − 1 b \mathbf{x}=A^{-1}\mathbf{b} x=A−1b。
- 矩阵A不是一个方阵,或者A是一个不可逆的方阵时,那么: x = ( A T A ) − 1 A T b \mathbf{x}=(A^TA)^{-1}A^T\mathbf{b} x=(ATA)−1ATb,其中 ( A T A ) − 1 A T (A^TA)^{-1}A^T (ATA)−1AT为Moore-Penrose逆矩阵,也就是常说的伪逆。
但由于上述方法耗费时间很久,所以实际运用时会使用迭代法来求解。
向量空间
在遥远的向量空间中里生活了很多向量,这些向量们能够进行两种操作,即相加或者乘上个标量,这两种操作的结果仍然是个向量。 – 马克*向量托夫斯基
群
假定我们有个集合
ð
\eth
ð和一个定义在集合
ð
\eth
ð上的操作
⊗
:
ð
×
ð
→
ð
\otimes:\eth \times \eth \to \eth
⊗:ð×ð→ð。
那么
G
:
=
(
ð
,
⊗
)
G:=(\eth, \otimes)
G:=(ð,⊗),如果满足:
- 封闭性: ∀ x , y ∈ ð , x ⊗ y ∈ ð \forall{x,y} \in \eth, x \otimes y \in \eth ∀x,y∈ð,x⊗y∈ð
- 结合律: ∀ x , y , z ∈ ð , ( x ⊗ y ) ⊗ z = x ⊗ ( y ⊗ z ) \forall{x,y,z} \in \eth, (x \otimes y) \otimes z = x \otimes (y \otimes z) ∀x,y,z∈ð,(x⊗y)⊗z=x⊗(y⊗z)
- 单位元: ∃ e ∈ ð , ∀ x ∈ ð , x ⊗ e = x 且 e ⊗ x = x \exist e \in \eth ,\forall{x} \in \eth, x \otimes e =x 且 e \otimes x =x ∃e∈ð,∀x∈ð,x⊗e=x且e⊗x=x
- 逆元: ∀ x ∈ ð , ∃ y ∈ ð , x ⊗ y = e 且 y ⊗ x = e \forall{x} \in \eth,\exist y \in \eth, x \otimes y =e 且 y \otimes x =e ∀x∈ð,∃y∈ð,x⊗y=e且y⊗x=e
则称 G : = ( ð , ⊗ ) G:=(\eth, \otimes) G:=(ð,⊗)为一个群。
此外,如果还满足:
∀
x
,
y
∈
ð
,
x
⊗
y
=
y
⊗
x
\forall{x,y} \in \eth, x \otimes y =y \otimes x
∀x,y∈ð,x⊗y=y⊗x
那么就称其为Abelian群。
有了群的概念,我们就可以定义向量空间的概念了。
向量空间
一个实值向量空间
V
=
(
V
,
+
,
⋅
)
V = (\mathscr{V}, +,\cdot)
V=(V,+,⋅)是一个带有以下两种操作:
+
:
V
×
V
→
V
+:\mathscr{V} \times \mathscr{V} \to \mathscr{V}
+:V×V→V
⋅
:
R
×
V
→
V
\cdot:R \times \mathscr{V} \to \mathscr{V}
⋅:R×V→V
的集合
V
\mathscr{V}
V。
向量子空间
假定 V = ( V , + , ⋅ ) V = (\mathscr{V}, +,\cdot) V=(V,+,⋅)是一个向量空间,且 U ⊆ V \mathscr{U}\subseteq \mathscr{V} U⊆V且 U ≠ ∅ \mathscr{U} \neq \emptyset U̸=∅,那么当 U \mathscr{U} U是一个向量空间,且空间中的两个操作受限于 V × V \mathscr{V} \times \mathscr{V} V×V和 R × V R \times \mathscr{V} R×V时,我们称之为向量子空间。
为了证明其为某个向量空间的子空间,除去继承向量空间的性质以外,我们还需要证明:
- 非空性
- 每种操作的封闭性
其中,封闭性是向量空间中一个十分重要的性质。正是由于这个性质,我们才能保证向量的相加和向量与标量的乘法结果仍旧是一个合法的向量,为后面线性组合及相关概念做保证。
线性独立
线性组合
考虑向量空间
V
V
V和一组有限的向量
x
1
,
.
.
.
,
x
k
∈
V
x_1,...,x_k \in V
x1,...,xk∈V,那么每个形如下式的
v
∈
V
v \in V
v∈V,
v
=
λ
1
x
1
+
.
.
.
+
λ
k
x
k
,
λ
1
,
.
.
.
,
λ
k
∈
R
v = \lambda_1 x_1 +...+ \lambda_k x_k ,\quad \lambda_1,...,\lambda_k \in R
v=λ1x1+...+λkxk,λ1,...,λk∈R
都是
x
1
,
.
.
.
,
x
k
x_1,...,x_k
x1,...,xk的线性组合。
线性相关\独立
考虑向量空间
V
V
V和一组有限的向量
x
1
,
.
.
.
,
x
k
∈
V
x_1,...,x_k \in V
x1,...,xk∈V,如果:
∑
i
=
1
k
λ
i
x
i
=
0
\sum_{i=1}^{k}\lambda_ix_i = 0
∑i=1kλixi=0
如果存在解中至少有一个
λ
i
\lambda_i
λi不为0,那么就称
x
1
,
.
.
.
,
x
k
x_1,...,x_k
x1,...,xk线性相关,如果解仅有且全部为0,那么就称
x
1
,
.
.
.
,
x
k
x_1,...,x_k
x1,...,xk线性无关。
当一组向量线性无关时,这代表着这组向量没有冗余,去掉任意一个,我们都会丢失一些信息。
当一组向量线性相关时,肯定有所冗余,我们去掉它并不会丢失信息。
以下图为例解释:
我们可以看到,要从Nairobi到Kigali,我们可以选择
- 从Nairobi到Kampala(506),再从Kampala到Kigali(374)
- 从Nairobi直接到Kigali(751)
那么,为了到达目的地,第一种方案中的两个向量是线性无关的,我只有完整的获取到这两个向量的信息才能够到达目的地,这套方案没有冗余。但如果此时我们加入第二种方案中的向量,由于这三个向量线性相关,此时有一套方案冗余了,因为我们我们只会选择一套方案去那里。
对于判断一组向量之间的关系,有以下特性十分有用:
- 一组向量只会相关或者独立。
- 这组向量中若包含有零向量,那么他们相关
- 使用高斯消元法判断,将其化为行阶梯矩阵,那么主元所在列之间线性无关,非主元列能够被它左边的主元列所表示。当所有列均为主元列时,所有列向量线性无关,只要有一个非主元列,那么列向量之间就线性相关。
基与秩
在向量空间中的向量有很多很多,但是事实上我们最为关心的是这样一组向量----任何在该向量空间中的向量,都能用这组向量的线性组合来表示,这就引入了我们接下来要介绍的概念。
生成集与基
生成集
考虑一个向量空间 V = ( V , + , ⋅ ) V = (\mathscr{V}, +,\cdot) V=(V,+,⋅)和一组向量 A = x 1 , . . . , x k \mathscr{A} = {x_1,...,x_k} A=x1,...,xk,如果对于每一个向量 v ∈ V v \in V v∈V,都能用 x 1 , . . . , x k {x_1,...,x_k} x1,...,xk的线性组合来表示,那么我们就把 A \mathscr{A} A称作 V V V的生成集。所有 x 1 , . . . , x k {x_1,...,x_k} x1,...,xk的所能构造线性组合集合被称为 A \mathscr{A} A的张成,记作 s p a n [ x 1 , . . . , x k ] span[x_1,...,x_k] span[x1,...,xk]。
从生成集的定义可以看出,在一个向量空间中,我们能构造出许多的生成集,这太多了,多了怎么办?我们改变关心的点-----最小的那部分生成集是啥?
基
考虑一个向量空间 V = ( V , + , ⋅ ) V = (\mathscr{V}, +,\cdot) V=(V,+,⋅)和向量集合 A = x 1 , . . . , x k ⊆ V \mathscr{A} = {x_1,...,x_k} \subseteq V A=x1,...,xk⊆V,如果不存在更小的集合 A ^ ⊆ A ⊆ A \mathscr{\hat{A}} \subseteq \mathscr{A} \subseteq \mathscr{A} A^⊆A⊆A能够张成 V V V,且是最大线性无关集,那么这个向量集合就被称为向量空间 V V V的基。
我们可以得到以下等价论述:
- $\mathscr{A} 是 是 是V$的基。
- $\mathscr{A} $是最小生成集
- $\mathscr{A} $ 是 V V V中的一个最大线性无关向量集,也就是说,再添任意其他向量都会使得这组向量线性相关。
- 每一个向量 x ∈ V x \in V x∈V,都能被 A \mathscr{A} A用线性组合唯一的表示。
那么,如何找到基呢?
- 将生成集中的张成向量作为列向量拼接成为一个矩阵
- 化为行阶梯形
- 所有与主元列相关的张成向量就构成向量空间的基。
根据定义我们可以得知,一个向量空间的基有很多,但每个基所含向量个数却是个定数。
秩
对于一个矩阵 A ∈ R m × n A \in R^{m \times n} A∈Rm×n,线性无关行的数目等于线性无关列的数目且被称做秩,记作rk(A)。
秩有很多有用的性质:
- 行秩等于列秩
- A ∈ R m × n A \in R^{m \times n} A∈Rm×n的列能够张成一个子空间 U ⊂ R m U \subset R^m U⊂Rm 且 dim(U) = rk(A)。这个子空间的基可以对 A A A用高斯消元法找到。
- A ∈ R m × n A \in R^{m \times n} A∈Rm×n的行能够张成一个子空间 V ⊂ R m V \subset R^m V⊂Rm 且 dim(V) = rk(A)。这个子空间的基可以对 A T A^T AT用高斯消元法找到。
- 对所有的方阵 A ∈ R n × n A \in R^{n \times n} A∈Rn×n有:A是可逆的,当且仅当rk(A) = n。
- 对于一个线性方程组,其有解,当且仅当rk(A|b) = rk(A)。
- 对于矩阵 A ∈ R m × n A \in R^{m \times n} A∈Rm×n,齐次线性方程组 A x = 0 Ax =0 Ax=0的解的子空间维度为n - rk(A)。
- 若矩阵秩等于行数,称为行满秩;若矩阵秩等于列数,称为列满秩。既是行满秩又是列满秩则为n阶矩阵即n阶方阵。行满秩矩阵就是行向量线性无关,列满秩矩阵就是列向量线性无关;所以如果是方阵,行满秩矩阵与列满秩矩阵是等价的。
线性映射
在本章节开头,我们提到两种操作(向量之间能够相加,还能被标量乘),这两种操作的结果仍然是个向量。换句话说,我们定义的操作保持了向量这个对象的结构。现在我们希望将这种“保持”应用在映射上,那么就有了线性映射的定义:
对于两个向量空间
V
,
W
V, W
V,W,如果映射:
Φ
:
V
→
W
\Phi :V \to W
Φ:V→W满足:
∀
x
,
y
∈
V
∀
λ
,
θ
∈
R
:
Φ
(
λ
x
+
θ
y
)
=
λ
Φ
(
x
)
+
θ
Φ
(
y
)
\forall x,y \in V \quad \forall \lambda, \theta \in R:\Phi(\lambda x + \theta y ) = \lambda \Phi(x) + \theta \Phi(y)
∀x,y∈V∀λ,θ∈R:Φ(λx+θy)=λΦ(x)+θΦ(y)
就被称作线性映射/线性变换
线性映射的矩阵表示法
我们首先不加证明的给出一个理论:
有限维的向量空间
V
,
W
V,W
V,W是同构的,当且仅当dim(V) = dim(W)。
这意味着:
同一维度大小的的不同的向量空间本质上是一个东西,且他们之间可以没有任何损失的相互转换。
那么我们就接着可以得到:
任何n维的向量空间与
R
n
R^n
Rn都是同构的。
在了解到这一重要事实后,我们首先定义一些概念:
有序基:
基的顺序变的重要,所以我们需要为基引入有序的概念(注意前面的描述一直是按集合来的,所以是无序的)。
这也就是说,对于向量空间
V
V
V,有
B
=
(
b
1
,
.
.
.
,
b
n
)
B = (b_1,...,b_n)
B=(b1,...,bn)是一个n-元组且构成
V
V
V的基,我们称其为向量空间V的有序基。
坐标:
考虑一个向量空间
V
V
V和有序基
B
=
(
b
1
,
.
.
.
,
b
n
)
B = (b_1,...,b_n)
B=(b1,...,bn),那么对于任意一个
x
i
n
V
x \ in V
x inV,我们可以得到一个唯一的线性组合:
x
=
α
1
b
1
+
.
.
.
+
α
n
b
n
x = \alpha_1 b_1 +...+ \alpha_n b_n
x=α1b1+...+αnbn
其中,
α
1
,
.
.
.
,
α
n
\alpha_1,...,\alpha_n
α1,...,αn叫做
x
x
x在有序基
B
B
B下的坐标,且其组成的列向量称为
x
x
x在有序基
B
B
B下的坐标向量。
到此时,我们应该认识到,在向量空间中,向量的坐标表示与基的选取是十分相关的,但是无论用什么基来表示这个向量,这个向量本身是不会发生任何变化的。
现在,我们已经具备了条件来了解如何用矩阵来表示线性映射。
考虑两个向量空间
V
,
W
V, W
V,W,其对应的有序基为
B
=
(
b
1
,
.
.
.
,
b
n
)
B = (b_1,...,b_n)
B=(b1,...,bn),
C
=
(
c
1
,
.
.
.
,
c
m
)
C = (c_1,...,c_m)
C=(c1,...,cm),然后,我们再定义一个线性映射
Φ
:
V
→
W
\Phi :V \to W
Φ:V→W,那么对于$ j \in {1,…,n}$有:
Φ
(
b
j
)
=
α
1
,
j
c
1
+
.
.
.
+
α
m
,
j
c
m
=
∑
i
=
1
m
α
i
,
j
c
i
\Phi(b_j) = \alpha_{1,j}c_1 + ... + \alpha_{m,j} c_m = \sum_{i=1}^m \alpha_{i,j} c_i
Φ(bj)=α1,jc1+...+αm,jcm=∑i=1mαi,jci
是
Φ
(
b
j
)
\Phi(b_j)
Φ(bj)在基
C
C
C下的唯一表示。
那么我们就可以构造一个矩阵
A
Φ
:
A
Φ
(
i
,
j
)
=
α
i
j
A_{\Phi}:A_{\Phi}(i,j) = \alpha_{ij}
AΦ:AΦ(i,j)=αij来表示这个变换,我们把这个矩阵叫变换矩阵。
现在有了变换矩阵,假设我们现在有一个向量
x
∈
V
x \in V
x∈V在有序基
B
B
B下的坐标向量
x
^
\hat x
x^,和其在有序基
C
C
C下的坐标向量
y
^
\hat y
y^,那么有:
y
^
=
A
Φ
x
^
\hat y= A_{\Phi} \hat{x}
y^=AΦx^
至此,我们掌握了变换矩阵这个工具,并能够通过它来将基于向量空间 V V V中的一个有序基产生的坐标,映射到基于向量空间 W W W中的一个有序基产生的坐标。
基变换
能够由线性映射构造出变换矩阵是可喜可贺的,但是有时候由于不合适的基的选择,向量的表示和变换矩阵显得很复杂,那么我们就需要解决一个核心问题:
源空间和目标空间的基变换时,变换矩阵是如何变换的?怎么求出新的变换矩阵?
下面首先给出结论:
对于一个线性映射
Φ
:
V
→
W
\Phi :V \to W
Φ:V→W
V
V
V的有序基有
B
=
(
b
1
,
.
.
.
,
b
n
)
,
B
^
=
(
b
^
1
,
.
.
.
,
b
^
n
)
B = (b_1,...,b_n), \hat B = (\hat b_1,...,\hat b_n)
B=(b1,...,bn),B^=(b^1,...,b^n)
W
W
W的有序基有
C
=
(
c
1
,
.
.
.
,
c
m
)
,
C
^
=
(
c
^
1
,
.
.
.
,
c
^
m
)
C = (c_1,...,c_ m), \hat C = (\hat c_1,...,\hat c_m)
C=(c1,...,cm),C^=(c^1,...,c^m)
那么线性映射
Φ
:
V
→
W
\Phi :V \to W
Φ:V→W在
B
→
C
B \to C
B→C下的转换矩阵
A
Φ
A_{\Phi}
AΦ与
B
^
→
C
^
\hat B \to \hat C
B^→C^下的转换矩阵
A
^
Φ
\hat A_{\Phi}
A^Φ有以下式成立:
A
^
Φ
=
T
−
1
A
Φ
S
\hat A_{\Phi} = T^{-1}A_{\Phi}S
A^Φ=T−1AΦS
其中,
S
∈
R
n
×
n
S \in R^{n \times n}
S∈Rn×n为将对应
B
^
\hat B
B^的坐标映射到
B
B
B的变换矩阵。
S
∈
R
m
×
m
S \in R^{m \times m}
S∈Rm×m是将对应
C
^
\hat C
C^的坐标映射到
C
C
C的变换矩阵,其逆代表的就是反过来的变换。
我们可以通过一张图来理解一下这个式子的意义:
注意观察右图
Φ
C
B
\Phi_{CB}
ΦCB将
B
B
B的基向量映射到
C
C
C的基向量的线性组合上。
Φ
C
^
B
^
\Phi_{\hat C \hat B}
ΦC^B^是基变换后的映射函数(也就是我们的目标)。
假设我们现在已知关于有序基
B
,
C
B,C
B,C的变换矩阵
A
Φ
A_{\Phi}
AΦ,当我们对V,W中的基进行基变换(
B
→
B
^
,
C
→
C
^
B \to \hat B,C \to \hat C
B→B^,C→C^),那么可以通过图中所述过程确定
A
^
Φ
\hat A_{\Phi}
A^Φ:
首先,我们确定
Φ
B
B
^
:
V
→
V
\Phi_{B\hat B}:V \to V
ΦBB^:V→V,它将新基上的坐标映射回老基上的坐标。
然后,我们使用已知关于有序基
B
,
C
B,C
B,C的变换矩阵
A
Φ
:
V
→
W
A_{\Phi} : V \to W
AΦ:V→W。
最后,我们使用
Φ
C
C
^
:
V
→
V
\Phi_{C\hat C}:V \to V
ΦCC^:V→V的逆来将
W
W
W空间老基上的坐标映射到新基上。
至此,我们我们可以看到,事实上变换基以后的映射函数由三部分构成:
Φ
C
^
B
^
=
Φ
C
C
^
−
1
Φ
C
B
Φ
B
B
^
\Phi_{\hat C \hat B} = \Phi_{C\hat C}^{-1}\Phi_{CB}\Phi_{B\hat B}
ΦC^B^=ΦCC^−1ΦCBΦBB^
那么结合图,我们就可以得到:
A
^
Φ
=
T
−
1
A
Φ
S
\hat A_{\Phi} = T^{-1}A_{\Phi}S
A^Φ=T−1AΦS
到这一步,我们还可以引出两个定义:
等价:如果存在可逆矩阵
S
∈
R
n
×
n
,
T
∈
R
m
×
m
S \in R^{n \times n}, T \in R^{m \times m}
S∈Rn×n,T∈Rm×m,使得
A
^
=
T
−
1
A
S
\hat A = T^{-1}AS
A^=T−1AS,那么就称他们等价。
相似:如果存在可逆矩阵
S
∈
R
n
×
n
S \in R^{n \times n}
S∈Rn×n,使得
A
^
=
S
−
1
A
S
\hat A = S^{-1}AS
A^=S−1AS,那么就称他们相似。
相似的一定等价,等价的不一定相似。
像与核
对于一个映射
Φ
:
V
→
W
\Phi :V \to W
Φ:V→W,
核:
k
e
r
(
Φ
)
=
Φ
−
1
(
(
0
)
W
)
=
v
∈
V
:
Φ
(
v
)
=
(
0
)
W
ker(\Phi) = \Phi^{-1}(\mathbf(0)_W) = {v \in V : \Phi(v) = \mathbf(0)_W}
ker(Φ)=Φ−1((0)W)=v∈V:Φ(v)=(0)W
像:
I
m
(
Φ
)
=
Φ
(
V
)
=
w
∈
W
∣
∃
v
∈
V
:
Φ
(
v
)
=
w
Im(\Phi) = \Phi(V) = {w \in W | \exist v \in V : \Phi(v) =w}
Im(Φ)=Φ(V)=w∈W∣∃v∈V:Φ(v)=w