線性方程組之二:行向量觀點

在上一篇文章中,我們從列向量的觀點看待線性方程組,並從這個觀點重新整理了一下線性方程組相關的定理、性質。這次,我們嘗試從行向量的觀點來看。在本文中,我們僅考慮實數域上的齊次線性方程組

首先,需要科普一下「內積」的概念。直觀地說,內積是向量點乘運算的直接推廣。它的嚴格數學定義在本文中暫不需要,我們只需要知道對於x=(x_1,x_2,dots,x_n)^T,y=(y_1,y_2,dots,y_n)^T in R^n

<x,y>=sum_{i=1}^{n}x_iy_i=x^Ty

為它們之間的內積即可。這一點是非常直觀和自然的:我們如果把n取成2,3,就退化成了熟悉的二維向量的點乘和三維向量的點乘。引入內積的一個重要動機就是可以推廣「夾角」這一概念,可以定義x,y的夾角為

cos 	heta = frac{<x,y>}{sqrt{<x,x><y,y>}}

同樣地,把n取為2,3,就是我們熟悉的平面上和空間中向量的夾角。有了夾角,自然就有「垂直」,我們在這裡換一個更雅的名詞,叫做「正交」,如果x,y正交我們就寫作xperp y。顯然,所謂的垂直說的應該是夾角等於90度,代入上面的夾角表達式,就有

xperp yiff<x,y>=x^Ty=0

至此,這些概念都是R^2 ,R^3中概念的自然推廣。為什麼要推廣這些概念呢?由於我們生活在三維空間中,對於二維和三維的向量,能夠清楚地看見,它們之間的夾角是非常直觀的。但是對於更高維的空間,其中的向量我們就無法直接看到了,也不好想像,只能通過數學上的方法把熟悉的概念推廣到高維空間中去。有了這些概念以後,可以更好地理解高維空間,把R^2 ,R^3中的一些結果毫無困難地推廣到一般的R^n去。

現在,讓我們言歸正傳,考慮齊次線性方程組Ax=0,其中Am	imes n矩陣,xR^n中的向量。所謂的行觀點,我們就是把係數矩陣A按行分塊:

Ax=left(egin{matrix}alpha_1^T\ alpha_2^T\ vdots \ alpha_m^Tend{matrix}
ight)x=left(egin{matrix}alpha_1^Tx\ alpha_2^Tx\ vdots \ alpha_m^Txend{matrix}
ight)=left(egin{matrix}<alpha_1^T,x>\ <alpha_2^T,x>\ vdots \ <alpha_m^T,x>end{matrix}
ight)=0

發生了什麼?通過矩陣分塊,我們清楚地看到,求解原方程組,就等價於找x,使得它與A的行向量alpha_1,alpha_2,dots,alpha_m均正交。這樣看,齊次的線性方程組具有了幾何意義。為了看得更清楚,我們不妨考慮一下三維空間的情形。假設我們有方程組

left(egin{matrix}a_{11}&a_{12}&a_{13}\ a_{21}&a_{22}&a_{23}end{matrix}
ight)left(egin{matrix}x_1\ x_2 \ x_3end{matrix}
ight)=0

從行向量的觀點看,求解這個方程組就是希望找到一個向量x=(x_1,x_2,x_3)^T,它與alpha_1=(a_{11},a_{12},a_{13})^Talpha_2=(a_{21},a_{22},a_{23})^T均垂直。如果alpha_1,alpha_2不共線,假設它們張成(決定)的平面為Span{alpha_1,alpha_2},法向量為vec n,那麼x是解當且僅當它與vec n共線,換言之,該齊次線性方程組的解空間為{lambdavec n|lambdain R}。如果alpha_1,alpha_2共線,它們僅能決定一條直線,也就是說此時的Span{alpha_1,alpha_2}僅是一條過原點的直線(一維子空間)。這一情況下,解空間為過原點且垂直於Span{alpha_1,alpha_2}的平面(二維子空間)。

將上述三維的情況推而廣之,我們即可知Ax=0的解空間為

{xin R^n,xperp Span{alpha_1,alpha_2,dots,alpha_m}}=(Span{alpha_1,alpha_2,dots,alpha_m})^{perp}

上式中,上標perp表示正交補空間。現在我們來關注一下原線性方程組解的情況。由於我們的解空間是Span{alpha_1,alpha_2,dots,alpha_m}R^n的正交補空間,立即可知解空間的維數為

dim V_{sol}=n - dim Span{alpha_1,dots,alpha_m}=n-rank (A)

而這一結果,即是線性代數中的齊次線性方程組解空間維數公式,我們從行向量的觀點來看,其幾何意義十分明顯。

關於行向量觀點,在此我想多舉兩個例子,一個是李尚志老師《線性代數》課本中第62面的例2,另一個是機器學習中常用的線性最小二乘法。

第一個例子是說,已知R^5中的向量X_1=(1,2,3,4,5)^T,X_2=(1,3,2,1,2)^T,求出一個齊次線性方程組,使得X_1,X_2構成其基礎解系。書中的做法是設出方程組,然後去求解,最終還是化為了求解齊次線性方程組的問題。有些讀者可能感到有點奇怪,我們現在是給定了解,要找到滿足條件的齊次線性方程組,為何最後還是在解方程?實際上通過行向量的觀點,此題的做法一目了然。齊次線性方程組可以看成是正交問題,一般的套路是給了行向量,求出解就是求與行向量都垂直的向量。現在給定了解,那麼什麼樣的方程組滿足要求呢?必須是係數矩陣的行向量與解空間垂直,這是因為aperp b iff bperp a。因此,不管是給了係數矩陣還是給定了解,要想求出另一半實際上都是一樣的,都是正交問題,也就是求解齊次線性方程組。

第二個例子是最小二乘法,現在該考慮一下非齊次線性方程組了。假設我們有方程組Ax=b,但是方程組無解,也就是說不滿足相容性定理。這是很常見的情況,比如在機器學習中,A的每一行代表一個觀測的樣本,每一列代表一個特徵,而b是我們希望預測的響應,當樣本數m遠遠大於特徵數n的時候就會出現這種情況。沒有精確解,我們就退而求其次,找到一個誤差最小的解,最常用的誤差就是最小二乘誤差:

sum_{i=1}^{n}(b_i-alpha_i^Tx)=(Ax-b)^T(Ax-b)

在這個誤差的意義下得到的解稱之為最小二乘解:

x_{LS}=argmin_{xin R^n}(Ax-b)^T(Ax-b)

通過簡單的矩陣求導(也可以對分量求導,have a try!)可知,最小二乘解x_{LS}當且僅當它是正則方程組A^TAx=A^Tb的解。這與我們談論的行向量觀點有何關聯呢?注意到,現在討論的方程是沒有準確解的,r=Ax-b可以看成是用x代替準確解所得到的誤差,正則方程組等價於A^T(Ax-b)=A^Tr=0。我們現在把A進行分塊得到A=(alpha_1,alpha_2,dots,alpha_n),正則方程組也就是說

A^Tr=left(egin{matrix}alpha_1^Tr\ alpha_2^Tr\ vdots\ alpha_n^Trend{matrix}
ight)=left(egin{matrix}<alpha_1^T,r>\ <alpha_2^T,r>\ vdots\ <alpha_n^T,r>end{matrix}
ight)=0

由此可見,最小二乘解所對應的「誤差」Ax_{LS}-b, 恰好與A的列向量alpha_1,alpha_2,dots,alpha_n都正交,也就是(Ax_{LS}-b)perp Span{alpha_1,alpha_2,dots,alpha_n}

這一結果的意義何在?結合我們上一次所談的列向量觀點,Ax=b就是要用A的列向量來線性表示出b,但是現在b不在Span{alpha_1,dots,alpha_n}中。利用最小二乘解x_{LS},我們把b投影A的列向量張成的空間中作為最佳逼近,給出的分解b=Ax_{LS}+(b-Ax_{LS}),第一部分是A的列向量的線性組合,是我們利用特徵的線性組合來估計響應,第二部分是這種估計的誤差。上面的結果告訴我們,在最小二乘解的估計下,誤差項與估計項是垂直的,因

(Ax_{LS}-b)perp Span{alpha_1,alpha_2,dots,alpha_n}implies(Ax_{LS}-b)perp Ax_{LS}

即我們把響應b分解為了相互垂直的兩個分量,估計項是bSpan{alpha_1,alpha_2,dots,alpha_n}上的投影,誤差項則在 Span{alpha_1,alpha_2,dots,alpha_n}^perp中。由勾股定理,還不難得到

||b||_2^2=||Ax_{LS}||_2^2+||b-Ax_{LS}||_2^2

結合本篇文章的封面圖,相信你會對最小二乘法有更直觀的理解!


推薦閱讀:

【活動預告】近期更新的大數據、機器學習線上線下沙龍活動(12場)
TensorFlow中RNN實現的正確打開方式
[讀論文]fast-and-provably-good-seedings-for-k-means

TAG:线性代数 | 机器学习 | 统计 |