(二)悟说秩、基与向量空间

  上一期文末我提了个问题:为什么要去研究向量组是线性相关还是无关,研究它有什么意义?我认为这是一个开放性问题,没有标准答案。这里说一下我的观点。首先,只有先弄清楚向量组的线性相关性问题,才能在此基础上继续研究向量空间的性质。第二,因为向量组隐含着一类事物的本质属性,所以搞清向量组的线性相关性,能让我们看清这类事物的本质属性。例如,如果把纷繁复杂的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} C M Y 线性表示出的 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,2的取值是不同的。也就是说 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} 向右数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维的向量来表示每个词的词义。然后,就可以通过求两词向量夹角的余弦值来判断两词的词义是否相似。例如,求(黄瓜,丝瓜)的余弦相似性、(黄瓜,桌子)的余弦相似性。你们猜哪个的余弦值更大呢?

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥望山海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值