深度学习
必备的数学知识
线性代数
详解线性方程组
我们在深度学习-必备的数学知识-线性代数中讲解了线性方程组以及可以使用矩阵逆取求解线性方程组。在这篇文章中,我将为大家详细讲解线性方程组。
我们先研究
2
×
2
2\times 2
2×2的线性方程组,即
A
x
=
b
\mathbf{A}\mathbf{x}=\mathbf{b}
Ax=b
中的
A
∈
R
2
,
2
,
b
∈
R
2
,
x
∈
R
2
\mathbf{A} \in R^{2,2},\mathbf{b} \in R^2,\mathbf{x} \in R^2
A∈R2,2,b∈R2,x∈R2.
将方程组展开可以得到
A
1
,
1
x
1
+
A
1
,
2
x
2
=
b
1
A
2
,
1
x
1
+
A
2
,
2
x
2
=
b
2
A_{1,1}x_1+A_{1,2}x_2=b_1\\ A_{2,1}x_1+A_{2,2}x_2=b_2\\
A1,1x1+A1,2x2=b1A2,1x1+A2,2x2=b2
大家是否觉得这两个方程有些眼熟?
是的,这两个方程就是二维平面上的两个直线方程。这两个方程的解
{
x
1
,
x
2
}
\{x_1,x_2\}
{x1,x2}分别是对应直线上的点的坐标。
所以这个方程组的解就是这两条直线的交点坐标。
我们知道直线之间只有三种关系:平行、相交、重合。所以线性方程组的解也只有三种可能:无解、一个解、无限个解。
我们可以将这个结论扩展到
m
×
n
m \times n
m×n的线性方程组中,在m维空间中,一个线性方程组表示为一个超平面(hyperlane),线性方程组的解表示为这些超平面的交点。在二维空间中,一个超平面是一条直线;在三维空间中,一个超平面是一个平面;在四维及更高维度的空间中,超平面是一个 n-1 维的子空间。
从代数角度考虑,如果线性方程组存在两个解,那么我们就可以构造出无限个解.若
p
\mathbf{p}
p和
q
\mathbf{q}
q是线性方程组的两个解,则存在解
∀
a
∈
R
,
z
=
a
p
+
(
1
−
a
)
q
\forall a \in R ,\mathbf{z}=a\mathbf{p}+(1-a)\mathbf{q}
∀a∈R,z=ap+(1−a)q
大家可以将解带入原式求证。
现在让我们更细致的分析方程有多少个解。
在此之前我们需要先介绍一个概念:线性组合。
线性组合(linear combination)是一组向量和一组标量之间的代数运算,可以得到一个新的向量。给定一组向量
v
1
,
v
n
,
.
.
.
,
v
n
\mathbf{v}_1,\mathbf{v}_n,...,\mathbf{v}_n
v1,vn,...,vn和一组标量
a
1
,
a
2
,
.
.
.
,
a
n
\mathbf{a}_1,\mathbf{a}_2,...,\mathbf{a}_n
a1,a2,...,an,线性组合可以定义为:
a
1
v
1
+
a
2
v
2
+
.
.
.
+
a
n
v
n
a_1\mathbf{v}_1 + a_2\mathbf{v}_2 + ... + a_n\mathbf{v}_n
a1v1+a2v2+...+anvn
一组向量和任意标量生成的向量的集合称为生成子空间(span)。
我们来观察线性方程组
A
x
=
b
\mathbf{A}\mathbf{x}=\mathbf{b}
Ax=b
A
\mathbf{A}
A可以被看作是一组列向量组成,
x
\mathbf{x}
x可以被看作是一组标量组成。它们的结果
b
\mathbf{b}
b是一个向量,所以
A
x
\mathbf{A}\mathbf{x}
Ax就是线性组合。
A
x
=
∑
i
A
:
,
i
x
i
\mathbf{A}\mathbf{x}=\sum_{i}A_{:,i}x_i
Ax=i∑A:,ixi
所以如果
b
\mathbf{b}
b存在于
A
\mathbf{A}
A的生成子空间中,那么
A
x
=
b
\mathbf{A}\mathbf{x}=\mathbf{b}
Ax=b一定存在解。
A
\mathbf{A}
A的生成子空间称为
A
\mathbf{A}
A的列空间(column space)或
A
\mathbf{A}
A的值域(range)。
若使方程
A
x
=
b
\mathbf{A}\mathbf{x}=\mathbf{b}
Ax=b对任意
b
∈
R
m
\mathbf{b} \in R^m
b∈Rm成立,需要
A
\mathbf{A}
A的列空间覆盖整个
R
m
R ^ m
Rm 。
A
\mathbf{A}
A的列空间覆盖整个
R
m
R ^ m
Rm意味着
A
\mathbf{A}
A至少有m列。这是因为一组向量线性组合的生成子空间的维度取决于这组向量的向量数量。换句话说,生成子空间的维度通常被描述为生成该子空间的最小向量集合大小。
如果
A
\mathbf{A}
A的列数小于m,那么
R
m
R^m
Rm中就会存在某个向量不在
A
\mathbf{A}
A的列空间中,那么该向量对应的
b
\mathbf{b}
b会使该方程无解。例如:一个矩阵
B
∈
R
3
×
2
\mathbf{B} \in R^{3 \times 2}
B∈R3×2的,它的列空间只能覆盖
R
2
R^2
R2。无论
x
\mathbf{x}
x取何值,也只能表示
R
3
R^3
R3空间中的二维平面。此时只有当
b
\mathbf{b}
b在该二维平面时,才有解。
对于
A
∈
R
m
×
n
\mathbf{A} \in R^{m \times n}
A∈Rm×n,
n
≥
m
n \geq m
n≥m 只是
A
x
=
b
\mathbf{A}\mathbf{x}=\mathbf{b}
Ax=b有解的必要不充分条件。因为
A
\mathbf{A}
A可能存在冗余的列向量,也就是存在某个列向量可以由另它列向量的线性组合表示。例如:对于
B
∈
R
2
,
2
\mathbf{B} \in R^{2,2}
B∈R2,2,如果
B
:
,
1
=
B
:
,
2
\mathbf{B}_{:,1}=\mathbf{B}_{:,2}
B:,1=B:,2。那么
B
\mathbf{B}
B的列空间和它的一个列向量构成的矩阵的列空间是一样的。
这很好理解,线性组合的定义是
a
1
v
1
+
a
2
v
2
+
.
.
.
+
a
n
v
n
a_1\mathbf{v}_1 + a_2\mathbf{v}_2 + ... + a_n\mathbf{v}_n
a1v1+a2v2+...+anvn。那么矩阵
B
\mathbf{B}
B的列空间就是
a
1
B
:
,
1
+
a
2
B
:
,
2
a_1\mathbf{B}_{:,1}+a_2\mathbf{B}_{:,2}
a1B:,1+a2B:,2。但是因为
B
:
,
1
=
B
:
,
2
\mathbf{B}_{:,1}=\mathbf{B}_{:,2}
B:,1=B:,2,所以
a
1
B
:
,
1
+
a
2
B
:
,
2
=
(
a
1
+
a
2
)
B
:
,
1
a_1\mathbf{B}_{:,1}+a_2\mathbf{B}_{:,2}=(a_1+a_2)\mathbf{B}_{:,1}
a1B:,1+a2B:,2=(a1+a2)B:,1
而
a
1
+
a
2
a_1+a_2
a1+a2可以由另一个实数表示,所以它们的生成子空间是相同的。
如果一组向量中的某个向量可以由其他向量的线性组合表示,我们则称这组向量是线性相关(linear dependence)。
如果一组向量中任意一个向量都不能由其他向量的线性组合表示则称为线性无关(linearly independent)。
如果向一组向量中插入一个线性相关的向量,并不会增加这组向量的生成子空间。而上文中的这句话:"这是因为一组向量的线性组合的生成子空间的维度取决于这组向量的向量数量"是不严谨的,更为严谨的说法是:这是因为一组向量的线性组合的生成子空间的维度取决于这组向量的线性无关的向量的数量。
这意味着,如果
A
x
=
b
\mathbf{A}\mathbf{x}=\mathbf{b}
Ax=b至少存在一个解,则
A
\mathbf{A}
A至少包含一组m个线性无关的向量。这是
A
x
=
b
\mathbf{A}\mathbf{x}=\mathbf{b}
Ax=b对于每一个向量
b
\mathbf{b}
b的取值都有解的充分必要条件。那什么时候只有一个解?什么时候有无限个解呢?这取决于线性无关向量的数量.对于
A
∈
R
m
×
n
\mathbf{A} \in R^{m \times n}
A∈Rm×n;若
m
=
n
m =n
m=n,且所有列向量都是线性无关的,则只有一个解;若
m
<
n
m < n
m<n,且
A
\mathbf{A}
A中多于m个线性无关向量,则有无限个解。
A
\mathbf{A}
A包含m个线性无关向量,则在m维列空间中,对m个列向量线性生成得到的每一个m维向量都是唯一的。所以对于特定的
b
\mathbf{b}
b只存在唯一个
x
\mathbf{x}
x使得
A
x
=
b
\mathbf{A} \mathbf{x}=\mathbf{b}
Ax=b。 其中
A
∈
R
m
×
n
\mathbf{A} \in R^{m \times n}
A∈Rm×n,
b
∈
R
m
\mathbf{b} \in R^m
b∈Rm,
x
∈
R
n
\mathbf{x} \in R^n
x∈Rn
A
\mathbf{A}
A中多于m个线性无关向量,这意味着它的生成子空间的维度一定大于m;而一个生成子空间中会包含无数个维度小于当前空间维度的子空间;那么对于特定的
b
\mathbf{b}
b,存在多个
x
\mathbf{x}
x 使得
A
x
=
b
\mathbf{A} \mathbf{x}=\mathbf{b}
Ax=b。其中
A
∈
R
m
×
n
\mathbf{A} \in R^{m \times n}
A∈Rm×n,
b
∈
R
m
\mathbf{b} \in R^m
b∈Rm,
x
∈
R
n
\mathbf{x} \in R^n
x∈Rn。
我们回顾矩阵逆求解方程组的方法
x
=
A
−
1
b
\mathbf{x}=\mathbf{A}^{-1}\mathbf{b}
x=A−1b
因为
A
−
1
\mathbf{A}^{-1}
A−1和
b
\mathbf{b}
b都是已知的,所以方程只有一个解
x
\mathbf{x}
x。这意味着,一个矩阵它的矩阵逆存在的充要条件是,这个矩阵是方阵(即行数和列数相同),并且所有列向量都是线性无关的。一个方阵的一个列向量是线性相关的,则称为奇异的(singular)。
矩阵逆的右乘定义为:
A
A
−
1
=
I
\mathbf{A}\mathbf{A}^{-1}=\mathbf{I}
AA−1=I
对于一个方阵
A
\mathbf{A}
A 和它的逆矩阵
A
−
1
\mathbf{A}^{-1}
A−1,无论是左乘还是右乘,都有
A
A
−
1
=
A
−
1
A
=
I
\mathbf{A}\mathbf{A}^{-1}=\mathbf{A}^{-1}\mathbf{A}=\mathbf{I}
AA−1=A−1A=I,其中
I
\mathbf{I}
I 是单位矩阵。
如有问题,恳请指正