先修:13 向量与张成;14 点积与正交;15 矩阵怎样组织线性关系

调节一条直线的斜率和截距,会改变三个位置上的预测。现在反过来问:知道这三个预测,能把两个参数分别认出来吗?如果再加一个参数,模型就一定能表达更多结果吗?

这两个问题很容易混在一起。一个问“哪些输出可以产生”,另一个问“同一个输出来自几组参数”。秩与零空间正好把它们分开。仍用那组三点的虚构玩具读数,我们会看见:数据无精确解与参数无法唯一识别,是两种不同的困难。

先看模型能走到哪里

沿用前章的列向量x=(0,1,2)、u=(1,1,1),把它们依次放进矩阵X=x u。X有三行、两列,参数顺序是θ=(a,b),于是

ŷ=Xθ=a x+b u=(b,a+b,2a+b)。

这里把向量横写只是为了节省版面,参与矩阵乘法时都视为列向量。参数属于二维空间ℝ²,三个预测组成的输出属于三维空间ℝ³。输入向量和输出向量的分量数不同,不能把两个空间当成同一张坐标纸。

让a、b遍历实数,所有能产生的输出,组成X的列空间,记作col(X)。它就是列向量x、u的全部线性组合。1 对一个给定目标q,方程Xθ=q有解,当且仅当q属于col(X):这既是一个存在性判断,也是列空间定义的直接翻译。

列空间包含零向量,其中任意两个向量相加、任意一个向量数乘后,也仍是原来那些列的线性组合,因而留在列空间里。满足这几个条件的向量集合,叫作线性子空间;“子”表示它位于更大的向量空间之内,不要求它一定比整个空间小。

如何检查三维向量q=(q₁,q₂,q₃)在不在里面?任何预测都满足

q₁−2q₂+q₃=b−2(a+b)+(2a+b)=0。

这个条件也足够:若q₁−2q₂+q₃=0,取b=q₁、a=q₂−q₁,前两项当然吻合,第三项为2q₂−q₁,恰好等于q₃。因此col(X)正是满足这个关系的平面,而不是整个ℝ³。

观测y=(1,2,2)给出1−4+2=−1,不在平面上,所以Xθ=y无解。这次无需试遍直线,只要检查所有模型输出共有的关系,就知道目标无法精确到达。

参数空间是二维,输出空间是三维;X的所有输出满足第一项减两倍第二项加第三项等于零,观测向量不满足

图1:左边的参数有两项,右边的输出有三项。所有可达输出满足同一个线性关系,这个关系在三维输出空间中规定了一个平面。

方向独立,才算新的表达能力

x和u是否提供两个不同的调节方向?若αx+βu=0,看第一项便有β=0,再看第二项得α=0。只有把两个系数都取零,才能相互抵消,这就是线性无关。对更多向量,定义也一样:它们的线性组合等于零向量时,所有系数都必须为零。

一组线性无关、又能张成某个空间的向量,称为该空间的一组基;基中向量的个数叫维数。这里两个列向量就是col(X)的一组基。秩定义为列空间的维数,记作rank(X),所以rank(X)=2。2 它数的是独立的输出方向,不是非零列的数量,也不是输出向量有几项。

再从参数变化看一次。假设参数增加h=(h₁,h₂),输出便增加Xh=(h₂,h₁+h₂,2h₁+h₂)。要让输出完全不动,先得h₂=0,再得h₁=0。

所有满足Xh=0的参数变化h,组成X的零空间,也叫核,记作ker(X)。它位于输入的参数空间里。1 这里ker(X)={(0,0)},只有“不改变参数”才会“不改变输出”。零空间不是空集,零向量永远在里面;但只包含零向量的空间维数是0。

例如给定可达输出q=(1,2,3),第一项就确定b=1,第二项再确定a=1,第三项只是检验相容性。这与给定原观测y时出现矛盾并不冲突:同一个矩阵,可以对某些目标给出唯一答案,对另一些目标根本没有答案。零空间为零保证的是“至多一组”,还不能省去存在性的检查。

因此,我们的模型虽然够不到每一个三维目标,却不会把两组不同参数混成同一输出。“到达范围受限”与“参数能分开识别”可以同时成立。

多装一个旋钮,却没有多一个方向

现在增加第三列2u=(2,2,2),得到X′=x,u,2u。撇号只是给新矩阵取名,不表示转置。参数改为(a,b,c),模型输出成为

X′(a,b,c)=ax+bu+2cu=ax+(b+2c)u。

第三列处处是第二列的两倍。数据只看得见合起来的常数项b+2c,无法分别看见b和c。所有旧输出仍可令c=0得到;所有新输出又都能用旧参数(a,b+2c)表达。因此col(X′)=col(X),秩仍为2,虽然三列都非零。

看一个可以手算的输出q=(1,2,3):

  • 参数(1,1,0)给出x+u=q
  • 参数(1,−1,1)给出x−u+2u=q
  • 参数(1,3,−1)给出x+3u−2u=q

请留意,我们并没有补充新的观测,也没有引入一种随滑杆位置变化的新作用,只是把原来的常数项拆给了两个参数。参数名字增多,并不意味着数据突然能够回答更多问题。即使把这三个位置各测一百次,只要新增列仍是常数列的两倍,就依然无法仅靠这些输出拆开b与c。更多测量可能改善对合并量的估计,却不能打破这个精确的代数关系。

这些参数的a相同,b、c却不同。每次让c增加1,同时让b减少2,预测就保持原样;对应的参数变化是h=(0,−2,1),它满足X′h=0。

不过,找到一个零方向,还不等于找全零空间。完整地解X′(h₁,h₂,h₃)=0,得到三条要求:h₂+2h₃=0,h₁+h₂+2h₃=0,2h₁+h₂+2h₃=0。第二条减第一条,得h₁=0;第一条给h₂=−2h₃;第三条随之自动满足。令h₃=t,就得到

ker(X′)={t(0,−2,1):t为任意实数}。

这才证明零空间恰好是一条过原点的直线,维数为1。它位于三维参数空间里,不是输出平面上的一条线。

X′的三维参数中,所有形如(1,1减2t,t)的点都产生输出(1,2,3);沿(0,负2,1)移动不改变输出

图2:左图只画三维参数空间中a=1的二维截面,横轴为b,纵轴为c。绿色直线是这个目标的全部参数解;它的方向来自零空间。

为什么所有多解都来自零空间

上面的现象不是巧合。设A是任意实数矩阵,两组参数θ₁、θ₂产生同一目标q,那么

A(θ₂−θ₁)=Aθ₂−Aθ₁=q−q=0。

所以它们的差必在ker(A)中。反过来,若Aθ₀=q,且h属于ker(A),就有

A(θ₀+h)=Aθ₀+Ah=q+0=q。

两个方向合起来,完整证明了:只要存在一个解θ₀,全部解恰好是“θ₀加上零空间中的任意向量”。3 既没有漏掉别的解,也没有把不合格的参数加进来。

应用于刚才的q,全部解为(1,1,0)+t(0,−2,1)=(1,1−2t,t)。t可以任取实数,因而有无穷多组。解的集合是零空间平移后的一条线;它本身不经过原点,因为零参数产生零输出,产生不了q。

这里也可以准确解释“可识别”:仅凭这些输出,能够区分不同参数。零空间只含零向量时,不同参数一定产生不同输出;零空间含非零向量时,存在数据看不见的参数变化。

秩与零空间维数怎样相加

X有两个参数,两个独立输出方向,没有不可见的非零方向:2+0=2。X′有三个参数,仍有两个独立输出方向,另有一个不可见方向:2+1=3。

一般地,若A有n列,也就是输入有n个坐标,那么

rank(A)+dim ker(A)=n。

这叫秩与零空间维数定理。2 右边是列数,不是行数;输出空间和参数空间可能维度不同,这里相加的是两个空间的维数,并非把它们的向量相加。

为什么这不只是两个例子的巧合?可以沿“删除重复方向”的办法给出证明。设秩为r,从列中选出r个线性无关且能张成全部列的向量,暂把它们排在前面。每个剩余列都能写成它们的线性组合:第j列=α₁ⱼ第1列+⋯+αᵣⱼ第r列。

于是Aθ=0等价于r个条件:对每个i=1,…,r,θᵢ+Σⱼ₌ᵣ₊₁ⁿαᵢⱼθⱼ=0。因为前r列线性无关,各自的合并系数必须为零。

现在可以任取后n−r个坐标,再用这些条件唯一确定前r个坐标。分别把一个自由坐标取1、其余取0,便得到n−r个零空间向量。它们张成全部零空间;查看各自的后n−r个坐标,又可知它们线性无关。因此零空间维数是n−r,等式成立。若没有自由坐标,就只剩零向量;若r=0,A是零矩阵,全部n个输入坐标都自由。

这个证明把“有几份自由”落实为一组基。比喻可以帮助理解,但不能代替这一步计数。

秩也不会超过行数:输出位于一个由行数决定维度的空间,不能容纳更多线性无关方向。因此若参数个数超过观测条数,必然留下非零零空间;但目标仍可能不可达。反过来,参数少于观测并不会自动消除重复方向。实际起作用的始终是列之间的独立性,而不是只看矩阵外形。

解不存在、唯一、多解,要按顺序判断

面对Aθ=q,先问q在不在列空间:不在,就没有解。只有确认存在,才轮到零空间决定参数数量:

  • ker(A)={0}:存在的解唯一
  • ker(A)含非零向量:沿它的实数倍移动,得到无穷多个解

因此,唯一解需要“目标可达”和“零空间只有零向量”同时成立。X的列已经线性无关,但原观测y仍无解;X′对q=(1,2,3)有无穷多解,对原观测y则一个也没有。秩不足不会自动使每个问题都有多解。

同一套判断先检查目标是否属于列空间,再在有解时检查零空间;原矩阵与重复列矩阵对应三种具体结果

图3:这是普通实数线性方程的判断顺序。能否精确达到目标与参数是否唯一,分别由两个条件控制。

“未知数比方程少,所以答案唯一”也不可靠。比如把同一个位置x=1重复观测三次,且三次读数都为2,直线模型就给出三条完全相同的要求a+b=2。虽然两未知数、三方程,却只识别出a+b;(a,b)=(t,2−t)全都满足。记录的条数不等于独立约束的条数。

如果只想交出一组可用参数,当然可以额外规定c=0,把X′退回原来的两参数表达。对q=(1,2,3),这样选中(1,1,0),计算会更简洁。但这一规定来自我们选择的表达方式,不是数据证明“真实的c就是零”。解释参数的物理含义时尤其要小心:输出只能支持b+2c这个合并量,不能替其中两个部分分别作证。若要分辨它们,需要能提供不同作用模式的新信息,或有根据的额外假设。

本章讨论的是精确的实数线性关系。第三列恰好等于第二列两倍,和“看起来很接近两倍”不同。把一列改动很小,精确秩可能改变;但这不保证在有噪声、有限精度的计算中就容易把参数分开。相关的数值稳定性留到第36章,不把“几乎重复”当作这里证明过的“完全重复”。

最后,参数不唯一,也不能直接推断最佳预测不唯一。沿零方向移动,整组预测保持不变,针对同一观测计算的残差平方和当然也不变。秩不足时,许多参数可能共享同一个最佳预测。至于无精确解时怎样确定最佳预测,第17章会接着证明。

顺手试一下

题目1: 对X=x u,分别判断q=(2,5,8)与p=(2,5,9)是否有精确解;若有,是否唯一?再求X′=x,u,2u对q的全部参数解。

**提示:**先检查第一项减两倍第二项加第三项,再考虑参数差。

**参考答案:**q满足2−10+8=0,所以可达。由b=2、a+b=5得(a,b)=(3,2),代入第三项为8。ker(X)只有零向量,所以解唯一。p不满足该关系,2−10+9=1,因此无解,不能因X列独立就宣布存在唯一解。对X′,a=3、b+2c=2,令c=t,全部解是(3,2−2t,t),t为任意实数;其差都沿(0,−2,1)。

题目2: 令B=u,2u,输入参数为(s,t)。求B的秩、零空间及其维数;再分别讨论目标(3,3,3)和(3,3,4)的解。

**提示:**B(s,t)=(s+2t)u,全部输出沿同一个方向。

**参考答案:**第二列是第一列两倍,第一列非零,所以rank(B)=1。解B(s,t)=0:s+2t=0,故ker(B)={λ(−2,1):λ为任意实数},维数为1,检验1+1=2列。目标(3,3,3)可达,全部解为(s,t)=(3−2λ,λ),有无穷多组。(3,3,4)三项不相等,不在列空间中,因此无解。两问使用相同矩阵、相同秩与零空间,却有不同的存在性结论。

参考与延伸

1 佐治亚理工学院,Dan Margalit、Joseph Rabinoff,《Interactive Linear Algebra》,2.6 Subspaces。核对列空间、零空间的定义及其所在的输入、输出空间。

2 同书,2.9 The Rank Theorem。核对秩、零空间维数及二者之和等于列数的定理。

3 同书,2.4 Solution Sets。核对“一个特解加上全部齐次解”的双向证明与平移几何。

本文沿用第12章的虚构教学数据,算例与图解独立编排;以上教材页面用于核对概念和一般结论。


作者:Jiancheng Wang · 数学之美(独立原创)