上一期文末我提了个问题:为什么要去研究向量组是线性相关还是无关,研究它有什么意义?我认为这是一个开放性问题,没有标准答案。这里说一下我的观点。首先,只有先弄清楚向量组的线性相关性问题,才能在此基础上继续研究向量空间的性质。第二,因为向量组隐含着一类事物的本质属性,所以搞清向量组的线性相关性,能让我们看清这类事物的本质属性。例如,如果把纷繁复杂的RGB颜色空间看作一个超级大的向量组,那么,这个向量空间是线性相关的,它可由向量组
A
=
{
R
⃗
,
G
⃗
,
B
⃗
}
\mathcal{A}=\{\vec{R}, \vec{G}, \vec{B}\}
A={R,G,B}生成。而向量组
A
\mathcal{A}
A是线性无关的,它是RGB颜色空间的三个本质属性。
我们还是用颜色举例。给定红向量
R
⃗
=
(
1
,
0
,
0
)
T
\vec{R}=(1, 0, 0)^T
R=(1,0,0)T,绿向量
G
⃗
=
(
0
,
1
,
0
)
T
\vec{G}=(0, 1, 0)^T
G=(0,1,0)T,黄向量
Y
⃗
=
(
1
,
1
,
0
)
T
\vec{Y}=(1, 1, 0)^T
Y=(1,1,0)T,蓝向量
B
⃗
=
(
0
,
0
,
1
)
T
\vec{B}=(0, 0, 1)^T
B=(0,0,1)T。由这四个向量构成向量组
A
\mathcal{A}
A,那么向量组
A
\mathcal{A}
A线性相关。如果我们从
A
\mathcal{A}
A中取三个向量构成一个新向量组
{
G
⃗
,
Y
⃗
,
B
⃗
\{\vec{G}, \vec{Y}, \vec{B}
{G,Y,B},它是线性无关的。
{
R
⃗
,
G
⃗
,
B
⃗
\{\vec{R}, \vec{G}, \vec{B}
{R,G,B}、
{
R
⃗
,
Y
⃗
,
B
⃗
\{\vec{R}, \vec{Y}, \vec{B}
{R,Y,B}也是线性无关的。如果往这三个向量组加一个向量就变成线性相关的向量组。所以,这三个向量组都是向量组
A
\mathcal{A}
A的最大无关组。因此,最大无关组不是唯一的,但是各个最大无关组中向量的个数是一样的。最大无关组中向量的个数就是向量组
A
\mathcal{A}
A的秩。怎么通俗理解向量组的秩呢?我把它理解为向量组有多少真材实货,或者说向量组的含金量,也可以认为是向量组的复杂度。那么,现在问题来了。假如你自拍了一张
200
×
200
200\times 200
200×200的人脸照片,照片中是人脸的像素点用1表示,不是人脸的像素点用0表示。将照片像素点按列划分,每列表示一个向量,共200个向量构成一个向量组
B
\mathcal{B}
B,那么你人脸照片向量组的秩是多少呢?
如果向量组
A
\mathcal{A}
A的每个向量都能由向量组
B
\mathcal{B}
B线性表示,且向量组
B
\mathcal{B}
B的每个向量也能由向量组
A
\mathcal{A}
A线性表示,那么就称这两个向量组等价。向量组等价的通俗理解是它们复杂度是一样的,隐含的本质内容一样。现实世界中,也有一些例子,诸如RGB色彩空间与CMY色彩空间,虽然它们是不同的向量组,但是它们本质上都是用来表示颜色。CMY是印刷三原色。其中C代表青色,可由向量
C
⃗
=
(
0
,
1
,
1
)
T
\vec{C}=(0, 1, 1)^T
C=(0,1,1)T表示。M代表品红,可由向量
M
⃗
=
(
1
,
0
,
1
)
T
\vec{M}=(1, 0, 1)^T
M=(1,0,1)T表示。Y代表黄色,可由向量
Y
⃗
=
(
1
,
1
,
0
)
T
\vec{Y}=(1, 1, 0)^T
Y=(1,1,0)T表示。在数学上,向量组
A
=
{
R
⃗
,
G
⃗
,
B
⃗
}
\mathcal{A}=\{\vec{R}, \vec{G}, \vec{B}\}
A={R,G,B}与向量组
B
=
{
C
⃗
,
M
⃗
,
Y
⃗
}
\mathcal{B}=\{\vec{C}, \vec{M}, \vec{Y}\}
B={C,M,Y}能相互线性表示,两向量组等价。例如,
C
⃗
=
G
⃗
+
B
⃗
\vec{C}=\vec{G}+\vec{B}
C=G+B,
R
⃗
=
1
2
(
M
⃗
−
C
⃗
+
Y
⃗
)
\vec{R}=\frac{1}{2}(\vec{M}-\vec{C}+\vec{Y})
R=21(M−C+Y)。但在物理上,RGB配色是根据加色原理,而CMY配色是根据减色原理。也就是说青色颜料之所以呈现出青色,是因为它把红光吸收了(红色分量为0),反射了绿光和蓝光。所以,如果我们要调配红色,我们就必需把绿光和蓝光吸收,也就是要用品红颜料(
M
⃗
\vec{M}
M)和黄颜料(
Y
⃗
\vec{Y}
Y),即,
R
⃗
=
M
⃗
+
Y
⃗
\vec{R}=\vec{M}+\vec{Y}
R=M+Y,注意这里的"+"号是表示颜料混合,不是向量相加。所以,这里有一个问题。在RGB色彩空间中调配颜色的物理原理是各分量混合而成的结果。例如,黄向量是由红向量与绿向量相加的结果,通过数乘来增加黄色效果。所以RGB色彩空间用加法和数乘线性表示出的新颜色,在物理上也是我们看到的那种颜色。但是,CMY色彩空间调色的物理原理是减色原理,用加法和数乘线性表示出的印刷新颜色,并不是我们所看到的那种颜色。此外,用
C
⃗
M
⃗
Y
⃗
\vec{C}\vec{M}\vec{Y}
CMY线性表示出的
R
⃗
,
G
⃗
,
B
⃗
\vec{R},\vec{G}, \vec{B}
R,G,B,也不能调配出物理上的R,G,B色彩。所以,我认为,RGB与CMY只是在数学意义上等价。
接下来说说向量空间的概念。给定三维坐标向量
i
⃗
=
(
1
,
0
,
0
)
T
\vec{i}=(1, 0, 0)^T
i=(1,0,0)T,
j
⃗
=
(
0
,
1
,
0
)
T
\vec{j}=(0, 1, 0)^T
j=(0,1,0)T,
k
⃗
=
(
0
,
0
,
1
)
T
\vec{k}=(0, 0, 1)^T
k=(0,0,1)T,可以通过向量加减和数乘运算不断地生成新的三维坐标。如果将所有的三维坐标向量汇合起来,就构成一个超级大的三维向量组
V
\mathcal{V}
V。因为两个三维向量相加所得的新向量仍然是三维的。对应实数分量相加减后仍为实数。所以,向量组
V
\mathcal{V}
V内任意两个向量进行数乘和加减运算,所得的向量仍在向量组
V
\mathcal{V}
V中。所以,向量组
V
\mathcal{V}
V对数乘和加减运算封闭。因此,根据定义,向量组
V
\mathcal{V}
V是一个向量空间。向量组
B
=
{
i
⃗
,
j
⃗
,
k
⃗
}
\mathcal{B}=\{\vec{i}, \vec{j}, \vec{k}\}
B={i,j,k}是向量空间
V
\mathcal{V}
V的一个基。因为
B
\mathcal{B}
B是
V
\mathcal{V}
V的最大无关组。
之前我们说过向量的维数是指向量分量的个数。而向量空间的维度是指向量空间基的秩。因为基是一个满秩向量组,所以基的秩等于基所包含向量的个数。因此,向量空间的维度等于基所包含向量的个数。我们可以把向量空间的维度理解为向量空间的复杂度。例如,三维空间比二维平面复杂。
因为向量空间的最大无关组不是唯一的,所以,由向量空间基的定义我们可知,向量空间的基不是唯一的。向量空间中任何向量都可由基线性表示。线性表示式可写成
a
⃗
=
k
1
i
⃗
+
k
2
j
⃗
\vec{a}=k_1\vec{i}+k_2\vec{j}
a=k1i+k2j,系数
k
1
,
k
2
k_1, k_2
k1,k2就称为
a
⃗
\vec{a}
a在基
{
i
⃗
,
j
⃗
}
\{\vec{i}, \vec{j}\}
{i,j}下的坐标。于是,我们可以推知,用不同的基表示向量
a
⃗
\vec{a}
a,系数
k
1
,
k
2
k_1, k_2
k1,k2的取值是不同的。也就是说
a
⃗
\vec{a}
a在不同基下的坐标不同。刚开始接触基坐标的时候,最容易让人搞得一头雾水。现在我们就用一个例子来捋一捋这个令人挠头的基坐标。
这里先说一下自然基的概念。上述
{
i
⃗
,
j
⃗
,
k
⃗
}
\{\vec{i}, \vec{j}, \vec{k}\}
{i,j,k}叫作三维向量空间的自然基。单个向量
i
⃗
,
j
⃗
,
k
⃗
\vec{i}, \vec{j}, \vec{k}
i,j,k称为基向量。同理,设
i
⃗
=
(
1
,
0
)
T
,
j
⃗
=
(
0
,
1
)
T
\vec{i}=(1, 0)^T, \vec{j}=(0, 1)^T
i=(1,0)T,j=(0,1)T,向量组
{
i
⃗
,
j
⃗
}
\{\vec{i}, \vec{j}\}
{i,j}称为二维向量空间的自然基。向量
i
⃗
,
j
⃗
\vec{i}, \vec{j}
i,j为基向量。向量
a
⃗
=
(
3
,
2
)
\vec{a}=(3,2)
a=(3,2)在自然基下表示为
3
i
⃗
+
2
j
⃗
3\vec{i}+2\vec{j}
3i+2j。根据定义,
i
⃗
,
j
⃗
\vec{i},\vec{j}
i,j前面的系数3和2就是
a
⃗
\vec{a}
a在自然基下的坐标。
我们完全可以在二维向量空间中找到另一个基
{
m
⃗
,
n
⃗
}
,
m
⃗
=
(
2
,
1
)
T
,
n
⃗
=
(
−
1
,
0
)
T
\{\vec{m}, \vec{n}\}, \vec{m}=(2, 1)^T, \vec{n}=(-1, 0)^T
{m,n},m=(2,1)T,n=(−1,0)T,那么如何用这个基线性表示
a
⃗
\vec{a}
a呢。我们是不是要先求出
a
⃗
\vec{a}
a在这个基下的坐标。根据基坐标的定义,即求
k
1
[
2
1
]
+
k
2
[
−
1
0
]
=
[
3
2
]
k_1\begin{bmatrix} 2\\1 \end{bmatrix}+k_2\begin{bmatrix} -1\\0 \end{bmatrix}=\begin{bmatrix} 3\\2 \end{bmatrix}
k1[21]+k2[−10]=[32]
中
k
1
,
k
2
k_1, k_2
k1,k2的值。解方程组可求得
k
1
=
2
,
k
2
=
1
k_1=2, k_2=1
k1=2,k2=1。于是得到向量
a
⃗
\vec{a}
a在基下的线性表示式
a
⃗
=
2
m
⃗
+
n
⃗
\vec{a}=2\vec{m}+\vec{n}
a=2m+n。2、1就是
a
⃗
\vec{a}
a在基下的坐标。
假如,我们称以自然基为基的二维空间称为A空间,以
{
m
⃗
,
n
⃗
}
\{\vec{m}, \vec{n}\}
{m,n}为基的二维空间称为Z空间。我们画图看一下
a
⃗
\vec{a}
a在不同基下的样子。为了画得更准确,我算了一下
m
⃗
,
n
⃗
\vec{m}, \vec{n}
m,n的夹角约为
15
3
∘
153^\circ
153∘
上图左侧为A空间,右侧为Z空间,每个格子表示一个单位。在A空间中
a
⃗
\vec{a}
a的坐标为[3, 2],所以是沿着向量
i
⃗
\vec{i}
i向右数三格,沿着向量
j
⃗
\vec{j}
j向上数两格。而在Z空间中,
n
⃗
,
m
⃗
\vec{n}, \vec{m}
n,m变为了单位向量,
a
⃗
\vec{a}
a在Z空间的坐标为[2, 1],所以是沿着向量
m
⃗
\vec{m}
m向右数2格,沿着向量
n
⃗
\vec{n}
n向上数1格。
为了让Z空间看起来像是水平面,我将A空间中的
n
⃗
,
m
⃗
\vec{n}, \vec{m}
n,m沿着顺时针方向旋转了
3
0
∘
30^\circ
30∘. 在Z平面上,
n
⃗
\vec{n}
n和
m
⃗
\vec{m}
m看起来像是垂直的,其实
n
⃗
\vec{n}
n和
m
⃗
\vec{m}
m不垂直,它们的夹角仍为
15
3
∘
153^\circ
153∘左右。所以Z平面上的单元格都是平行四边形,不是矩形。
最后,我们来说说两向量夹角这个事。有句话怎么说来着,“方向比努力更重要”。这句话用在向量上也比较合适。向量的方向比长度更重要,我们更关心向量的方向。因为长度的变化是量变,而方向变化是质质变。为了能更好地研究向量的方向,我们需要有一个量来评估向量的方向。当两个向量方向较相似时(即夹角较小),这个量的值应该较大。当两个向量方向较不相似时(即夹角较大),这个量的值应该较小。说到这,我们是不是联想到了
cos
θ
\cos \theta
cosθ。在
[
0
,
π
]
[0, \pi]
[0,π]范围内,
θ
\theta
θ值越小,
cos
θ
\cos\theta
cosθ越大。
θ
\theta
θ值越大,
cos
θ
\cos\theta
cosθ越小。所以,如果我们将小于
18
0
∘
180^\circ
180∘的那个角定义为两向量的夹角,就可以用
cos
θ
\cos \theta
cosθ来表示两向量的相似性。
在直角坐标系下,画出两个相交于原点的向量,就能推导出求两向量夹角余弦的公式,
cos
θ
=
a
⃗
⋅
b
⃗
∥
a
⃗
∥
∥
b
⃗
∥
\cos\theta=\frac{\vec{a} \cdot \vec{b}} {\| \vec{a} \| \| \vec{b} \|}
cosθ=∥a∥∥b∥a⋅b
余弦相似性有许多应用。例如,在自然语言处理中,可以用两个词向量夹角的余弦值来衡量这两个词的意义是否相近。这里突然蹦出“词向量”这个概念,没有接触过自然语言处理的同学可能会有点懵。我稍微解释一下,在自然语言中,大多数词都有多个意思。如果我们将所有词的含义汇总起来是不是可以构成一个语义向量。假设这个语义向量是100维的,那么就可以用100维的向量来表示每个词的词义。然后,就可以通过求两词向量夹角的余弦值来判断两词的词义是否相似。例如,求(黄瓜,丝瓜)的余弦相似性、(黄瓜,桌子)的余弦相似性。你们猜哪个的余弦值更大呢?
(二)悟说秩、基与向量空间
最新推荐文章于 2024-09-04 20:00:00 发布