作者:石曉文,中國人民大學(xué)信息學(xué)院在讀研究生
個人公眾號:小小挖掘機(jī)(ID:wAIsjwj)
目錄
一個線性系統(tǒng)滿足兩個條件:Persevering Multiplication和Persevering Addition。
Persevering Multiplication
Persevering Addition
多元線性方程組是一個線性系統(tǒng)
向量是一堆數(shù)的集合,分為列向量和行向量,本文中,向量默認(rèn)是列向量,行向量用其轉(zhuǎn)置表示。
向量與標(biāo)量相乘,每一維都與該標(biāo)量相乘:
向量相加,使用平行四邊形法則:
零向量:所有維度的值都為0:
標(biāo)準(zhǔn)向量:一個維度是1,其余維度是0:
向量集:可以包含有限個或無限個向量:
Rn: 所有的n維向量組成的向量集合
矩陣是一組向量:
如果矩陣有m行和n列,我們就說矩陣的大小為m*n,如果m=n,我們稱為方陣(square matrix)。
矩陣的元素下標(biāo)表示,先行后列:
矩陣與標(biāo)量相乘:每一個元素分別與該標(biāo)量相乘。
矩陣相加:兩個矩陣的形狀必須一致,同位置的元素分別相加。
零矩陣:所有元素均為0的矩陣。
單位矩陣Identity matrix:必須是方陣,對角線元素為1,其余為0,用In表示n*n的單位矩陣。
同形狀的矩陣的一些運(yùn)算法則:
矩陣的轉(zhuǎn)置:沿左上到右下的對角線為軸進(jìn)行翻轉(zhuǎn),將(i,j)位置的元素與(j,i)位置的元素互換得到的矩陣,轉(zhuǎn)置的矩陣用AT表示。
矩陣轉(zhuǎn)置的一些運(yùn)算規(guī)則:
矩陣和向量相乘,結(jié)果如下:
從行的角度來看矩陣和向量相乘:從行的角度看,矩陣A和向量x相乘,其結(jié)果是矩陣的A的每一行與向量x做點(diǎn)積(dot product,后面再介紹) 的結(jié)果。
從列的角度來看矩陣和向量相乘:從列的角度看,矩陣A和向量x相乘,相當(dāng)于對矩陣A的列向量做了一次線性組合。
因此,無論從行角度還是列角度,矩陣A的列數(shù)要與向量x的維數(shù)相同。
矩陣和向量相乘的一些性質(zhì):
如果A和B都是m*n的矩陣,對所有的w,如果都有Aw=Bw,那么是否意味著A=B。結(jié)果是顯然的。既然是所有的w,那么我們用標(biāo)準(zhǔn)向量就可以得到A和B的每一列都是相同的,因此A=B。
對于一個線性方程組,我們可以寫成矩陣和向量相乘的形式:
對于一個線性方程組,其解的情況可能是無解,有唯一解或者有無窮多個解。我們把所有的解的集合稱為解集(solution set)
如果線性方程組有解,我們就稱其為相容的(consistent),若無解,則稱為不相容的(inconsistent)。
線性組合是一個操作,將各個向量縮放之后,相加在一起,就得到了參與操作的向量之間的線性組合。
所以線性方程組的問題可以轉(zhuǎn)變成:b是否可以表示成A中列向量的線性組合?
舉幾個例子:
通過觀察上面的例子,你可能會想,在二維平面中,是不是只要兩個向量不平行,就一定有解?答案是肯定的,但有解時兩個向量不一定平行,因為目標(biāo)向量也可能跟它們平行。
對于一個向量集S,其向量的所有線性組合組成的向量集V,稱為Span(S),也被稱為S張成的空間。
舉幾個二維空間中的例子吧,如果S中只有零向量,那么其張成的空間也只有零向量。
如果S中包含一個非零向量,那么其張成的空間是一條直線:
如果一個向量集包含兩個不平行的非零向量,那么其可以張成整個二維平面:
所以一個線性方程組的問題又可以轉(zhuǎn)換成兩一個等價的問題:向量b是否在A的列向量所張成的空間中?
在上一節(jié)中,我們知道了如果b可以表示成A中列向量的線性組合或者b在A的列向量所張成的空間中,那么線性方程組有解,否則無解。但是,有解的情況下是唯一解還是多個解呢?我們還不知道。
給定一個向量集,如果其中一個向量可以表示成其余向量的線性組合,那么我們就說這組向量是線性相關(guān)(Linear Dependent)的。值得注意的是,零向量是任意向量的線性組合,因此只要包含零向量的向量集,都是線性相關(guān)的。
線性相關(guān)還有另一種定義,即可以找到一組非全零的標(biāo)量,使得線性組合為零向量。
與之相對應(yīng),如果無法找到一組非全零的標(biāo)量,使得線性組合得到零向量,那么這組向量就是線性無關(guān)的(Linear Independent):
判斷向量集是線性無關(guān)還是線性相關(guān),其實(shí)就是看一個齊次方程(Homogeneous Equations)有無非零解:
由此,對于Ax=b,我們可以得到兩個結(jié)論:如果A的列是線性相關(guān)的,且Ax=b有解,那么,它有無窮多個解;如果Ax=b有無窮多個解,那么A的列是線性相關(guān)的:
矩陣的秩(Rank)定義為線性無關(guān)的列的最大數(shù)目:
矩陣的零化度(Nullity)是矩陣的列數(shù)減去矩陣的秩:
也就是說,如果一個m*n的矩陣,其秩為n的話,它的列是線性無關(guān)的:
所以總結(jié)一下線性方程組的解的相關(guān)問題:
如果兩個線性方程組的解集是相同的,我們就稱它們是等價的(equivalent)。
對線性方程組做以下三種操作可以得到等價的方程組:
1)交換兩行
2)對其中一行變?yōu)閗倍
3)將一行的k倍加到另一行上
上面的三種操作我們也稱為初等行變換(elementary row operations)
這里我們介紹一下增廣矩陣(Augmented Matrix),即將A和b進(jìn)行橫向拼接:
因此,通過初等行變換,如果我們能夠?qū)⒃鰪V矩陣轉(zhuǎn)換為一個相對簡單的形式,那么我們可以很快的得出最終的解。
我們首先介紹行階梯形式的矩陣,它滿足兩個條件,首先是非零行要在全零行的上面,其先導(dǎo)元素(leading entries,每行的第一個非零元素)按階梯型排列:
在上述兩個條件的基礎(chǔ)上,如果先導(dǎo)元素所在的列都是標(biāo)準(zhǔn)向量的話,那么它就是簡化行階梯形式Reduced Row Echelon Form:
下面的矩陣不是簡化行階梯形式:
而下面的矩陣是簡化行階梯形式:
根據(jù)簡化行階梯形式,我們很容易得到線性方程組的解的形式。
如果簡化行階梯形式是[I;b']的,那么線性方程組有唯一解:
下面的例子是有無窮多個解的情況,可以看到,第1、3、5列是包含先導(dǎo)元素的標(biāo)準(zhǔn)向量,其對應(yīng)的變量也稱為基本變量,而第2、4個變量被稱為自由變量:
下面的例子是無解的情況,先導(dǎo)元素出現(xiàn)在了最后一列:
通過將增廣矩陣化簡為簡約行階梯形式,進(jìn)而求解線性方程組解的方法,我們稱之為高斯消元法(Gaussian Elimination)
接下來,我們來看一下簡約行階梯型形式的一些性質(zhì):
(1)化簡為簡約行階梯型形式之后,列之間的關(guān)系不變
也就是說,初等行變換不改變矩陣中列之間的關(guān)系。加入A的簡約行階梯形式是R,那么Ax=0和Rx=0有相同的解集。
但是對于行來說,行階梯形式改變了行之間的關(guān)系,比如原先兩行是兩倍的關(guān)系,其中一行變?yōu)槎吨?,二者就相等了,關(guān)系自然改變了。
(2)簡約行階梯形式改變了矩陣列所張成的空間
舉個簡單的例子就能理解,假設(shè)一個矩陣是[[1,2],[2,4]],它所張成的空間是y=2x,化簡后得到[[1,0],[0,0]],此時所張成的空間卻是整個平面。但是沒有改變行所張成的空間。
(3)先導(dǎo)元素所在的列線性無關(guān),其他列是這些列的線性組合
先導(dǎo)元素所在的列,在原矩陣中被稱為主列(pivot columns),這些列是線性無關(guān)的,其他列可以有主列的線性組合得到。
(4) 矩陣的秩等于主列的個數(shù),等于簡約行階梯型里非0行的個數(shù)
根據(jù)這個性質(zhì),我們可以得到矩陣的秩的一個性質(zhì):
Rank(A) <= min(number="" of="" columns,number="" of="">=>
因為秩等于主列的個數(shù),所以秩一定小于等于列的個數(shù),因為秩等于簡約行階梯型中非零行的個數(shù),所以秩一定小于等于矩陣行的個數(shù)。
有這個性質(zhì)我們還可以得出兩個簡單的結(jié)論:對于m*n的矩陣A,如果m<>和在Rm空間中,無法找到多于m個線性無關(guān)的向量。
所以我們再來回顧一下矩陣秩的判定,我們已經(jīng)有多種得到矩陣秩的方式:
(5)當(dāng)m*n的矩陣A的秩為m是,方程組Ax=b恒有解
對于增廣矩陣來說,如果變?yōu)楹喖s行階梯型后先導(dǎo)元素出現(xiàn)在了最后一列,則無解。
什么情況下Ax=b恒有解呢?b是一個m*1的向量,也就是說矩陣A的列向量可以張成整個Rm空間,即A的秩為行數(shù)m,也就是A變成簡約行階梯型之后沒有全0行。
(6)m個線性無關(guān)的m維向量可以張成整個Rm空間,Rm空間中多于m個向量的向量集一定線性相關(guān)
如果m*n的矩陣的秩為n或者m,那么說該矩陣為滿秩(Full Rank)。
給定兩個矩陣A和B,其相乘結(jié)果中的元素(i,j)是矩陣A的第i行和矩陣B的第j列的內(nèi)積,因此,矩陣A的列數(shù)一定要個矩陣B的行數(shù)相等。
矩陣乘法可以看作是兩個線性方程的組合:
(1) AB <> BA
(2)(AB)T = BTAT
(3)其他性質(zhì)
(4)對角矩陣相乘
分塊矩陣相乘和普通矩陣相乘其實(shí)是相同的:
如果兩個方陣A和B的乘積是單位矩陣,AB=I,那么A和B就是互為逆矩陣。
一個矩陣是可逆的(invertible)的,必須滿足兩個條件,首先要是方陣,其次是可以找到另一個方陣B,使得AB=I。
并不是所有的方陣都是可逆的。同時,一個矩陣的逆矩陣是唯一的:
逆矩陣可以用來求解一個線性方程組,但這種方法要求A是一個方陣,同時在計算上并不是十分有效率的:
我們之前介紹了三種初等行變換,其實(shí)初等行變換都可以用矩陣相乘表示,這種左乘的矩陣被稱作初等矩陣(Elementary Matrix)。即單位矩陣經(jīng)過一次初等變換得到的矩陣。
既然左乘一個初等矩陣相當(dāng)于對單位矩陣做一次初等行變換,那么只要再左乘一個相反操作的初等矩陣,就可以再次變回單位矩陣,所以初等矩陣的逆很容易得到:
回顧我們?nèi)绾蔚玫骄仃嚨暮喖s行階梯形式,用的就是初等行變換,因此我們可以用左乘初等矩陣的形式,來得到矩陣的簡約行階梯形式。
判斷一個矩陣是否是可逆的,可以用下面條件中的任意之一,不過一定要是一個方陣才行:
在上一節(jié)中,我們看到了,如果一個方陣是可逆的,那么它的簡約行階梯型是單位矩陣,所以我們可以使用初等行變換來得到一個矩陣的逆。
首先方陣才有行列式,我們先來簡單回顧一下2*2和3*3的矩陣的行列式:
那行列式代表什么含義呢?在二維平面中,矩陣行列式的絕對值代表一個平行四邊形的面積,在三維空間中,矩陣行列式的絕對值代表一個平行六面體的體積:
(1)單位矩陣的行列式為1
(2)交換任意的兩行,行列式變號
(3)對任意一行來說,行列式是“線性”的
從ppt上不好翻譯,但是看圖是很直觀的:
所以,下面的式子是正確的:
同時:
(4)如果行列式有兩行相等或者是倍數(shù)關(guān)系,行列式值為0
這個性質(zhì)也是很直觀的,交換兩行變號嘛,但是交換的兩行如果是一樣的,那么行列式的值應(yīng)該不變,-a=a那么a只能是0。
(5)對角矩陣的行列式等于對角線上元素的乘積
(6)如果一個方陣的行列式不為0,那么它是可逆的,反之,如果一個方陣可逆,那么它的行列式不為0
如果一個矩陣是可逆的,它可以經(jīng)由初等變換得到單位矩陣,每一次初等變換得到的矩陣的行列式值,相當(dāng)于對原矩陣的行列式值乘上一個標(biāo)量。由于每次乘的標(biāo)量不為0,所以可以得到原矩陣的行列式值不為0。
(7)det(AB)=det(A)*det(B)
(8)矩陣轉(zhuǎn)置的行列式和原矩陣相同
所以說,剛才的結(jié)論同樣適用于列。即如果有兩列相同或是倍數(shù)關(guān)系,行列式值同為0,同時每一列也是線性的。
我們首先來介紹余子式和代數(shù)余子式,一個矩陣的任意一個元素aij都有對應(yīng)的余子式,它就是將第i行和第j列劃掉之后所得到的矩陣的行列式,用det(Aij)表示:
而cij=(-1)i+jdet(Aij)被稱為代數(shù)余子式。
根據(jù)代數(shù)余子式,我們可以得到計算行列式的公式如下:
舉個3維的例子:
因此,對于一個方陣的行列式,它是n!項的和(n!是n個元素的全排列的個數(shù)),對于每一項,它是從每一行選擇一個元素進(jìn)行相乘,而這些元素分別屬于不同列。
有了代數(shù)余子式,我們可以得到矩陣A的伴隨矩陣。伴隨矩陣中的每個元素是原矩陣中該位置元素的代數(shù)余子式:
我們可以進(jìn)一步通過伴隨矩陣和行列式值來計算矩陣的逆:
如果一個向量集合V滿足三個條件:(1)包含零向量(2)如果u和v屬于V,那么u+v也屬于V(3)如果u屬于V,c是一個標(biāo)量,那么cu也屬于V。就稱這個向量集合V為子空間(subspace):
舉個例子,下面的向量集合是一個子空間:
只有零向量的集合也是一個子空間,三條性質(zhì)都滿足。
對于一個矩陣A來說,使得Ax=0的所有x所組成的集合被稱為矩陣A的零空間(Null Space):
列空間(Column Space)是矩陣A的列所張成的空間,行空間(Row Space)是矩陣的行所張成的空間。
在將矩陣化簡為行階梯型之后,矩陣的列空間是改變的,而行空間不變。
好了,我們又可以添加一條判斷線性方程組是否有解的條件了,即b是否在A的列空間中。
假設(shè)V是Rn的一個子空間,能夠張成空間V的一組線性無關(guān)的向量被稱為基(Basis)。
對于一個矩陣來說,其主列是其列空間的基:
基有如下的特性:
(1)基是一個能張成空間V的數(shù)量最小的向量集合
如果一組向量S能夠張成子空間V,那么基中包含的向量數(shù)目小于或等于S中向量的數(shù)目。
(2)基是空間中數(shù)量最多的線性無關(guān)的向量集合
如果子空間V的基中向量的數(shù)量是k,那么你不能找到比k個多的線性無關(guān)的向量集合。
(3)子空間中任意的兩組基都包含相同數(shù)目的向量
這個如何證明呢?
1)假設(shè)子空間V中有兩組基A和B,個數(shù)分別是k和p;
2)因為A是子空間中的基,所以B中的所有向量都可以表示成A中向量的線性組合,即有AC=B,C的列數(shù)為p,行數(shù)是k;
3)假設(shè)存在一個p維向量x使得Cx=0,所以ACx=Bx=0因為B是基,所以Bx=0的解只能是零向量,所以C也是線性無關(guān)的;
4)因為C中的列向量是k維的,p個k維的向量線性無關(guān),所以一定有p<>
5)同理k<>
(4)子空間V的基的向量的數(shù)量被稱為V的維度(dimension)
通過定義,我們可以判斷一個集合是否為基,需滿足兩個條件,向量之間線性無關(guān),同時能夠張成空間V,前者容易判斷,后者較難判斷:
另一種思路,假設(shè)對于一個子空間V,我們已經(jīng)知道它的維度為2,如果S是一個包含k個vector并且屬于V的一個子集,那么如果
1)S中的向量線性無關(guān),那么S是一個基
2)S能夠張成空間V,那么S是一個基
我們之前介紹過對于一個矩陣的三個空間,行空間、列空間以及零空間,他們的基以及維度都是多少呢?
A的列空間
A的列空間的基是主列組成的集合,維度就是主列的個數(shù)
A的零空間
A的零空間的的維度是Ax=0中自由變量的個數(shù),基看下面的圖片:
A的行空間
A的行空間的維度是化簡為簡約行階梯型之后非零行的個數(shù),基就是簡約行階梯型中先導(dǎo)元素所在的行所組成集合。
這里我們可以得出一個結(jié)論,矩陣A和其轉(zhuǎn)置的秩相等:
總結(jié)一下就是下面這樣子啦:
在n維空間中,我們可以使用基向量來表示坐標(biāo)系,這樣空間中的任意向量的坐標(biāo)都確定了,但是對于同一向量,使用不同的坐標(biāo)系,其坐標(biāo)是不同的:
同理,在不同坐標(biāo)系下,同一個坐標(biāo)所代表的向量也不同:
當(dāng)基確定時,一個向量的坐標(biāo)也是唯一的,由于基之間是線性無關(guān)的,因此證明如下:
在某一坐標(biāo)系B下,一個向量可以表示成其對應(yīng)的坐標(biāo)表示:
而我們最為常用的一種坐標(biāo)系就是直角坐標(biāo)系(Cartesian coordinate system),通常表示如下:
那么根據(jù)任意坐標(biāo)系以及某一向量在該坐標(biāo)系下的坐標(biāo),如何得到該向量呢?很簡單,該向量可以表示成基的線性組合,系數(shù)即為其坐標(biāo):
那么,如何得到某一向量在任意坐標(biāo)系下的坐標(biāo),兩邊同乘B-1即可:
其實(shí)我們的向量就是在直角坐標(biāo)系下的坐標(biāo)表示,所以其實(shí)直角坐標(biāo)系和其他坐標(biāo)系的轉(zhuǎn)換我們上一節(jié)已經(jīng)講過:
我們之前所說的線性方程,都是相對于直角坐標(biāo)系所說的,有時候有些問題直接在直角坐標(biāo)系下進(jìn)行求解并不容易,但是轉(zhuǎn)換到另一坐標(biāo)系下就會變得十分簡單,這就得到了通過坐標(biāo)系轉(zhuǎn)換來求解問題的思路:
我們舉個例子來說吧,如果下圖中的T表示得到任意一個向量關(guān)于直線L的對稱向量:
直接求解這個問題非常難,我們想要找的是一個矩陣A,使得T(x)=Ax,直線如果不是橫軸或者縱軸的話,要找到這個矩陣A是十分困難的。但是如果直線是橫軸或者縱軸的話,這個問題就變得非常簡單。假設(shè)直線是橫軸,那么要找的矩陣我們可以很容易寫出:
所以我們可以通過坐標(biāo)系變換,把直線L變成橫軸,那么問題就簡單了:
所以我們在直角坐標(biāo)系下的這個變換矩陣A也就找到了,此時我們可以稱兩個坐標(biāo)系下的變換矩陣是相似矩陣(Similar matrices):
假設(shè)直線L為y=0.5x,那么求解過程如下:
好了,在寫這一節(jié)之前,我們看來想一下上一節(jié)的東西,我們說一個直角坐標(biāo)系下的向量v, 其在另一個坐標(biāo)系下的坐標(biāo)表示為Bv,這個B是該坐標(biāo)系下的基所做成的矩陣,所以說矩陣可以表示一種線性變換(Linear Transformation),它將一個向量在直角坐標(biāo)系下的坐標(biāo)表示轉(zhuǎn)換為另一坐標(biāo)系下的坐標(biāo)表示!
我們知道,任意非零向量都可以張成一條直線,有的向量在一個矩陣A作用后,偏離了其所張成的空間;但有的向量在矩陣A作用后,還是在原有張成的空間,矩陣A只是對該向量起到了一定的伸縮作用,那么我們就說該向量是矩陣A的特征向量(Eigenvector),而這個伸縮作用的大小我們就稱為特征值(Eigenvalue)。所以我們知道,該向量所張成空間中的所有向量(零向量除外)都是該矩陣的特征向量。下面的例子中,經(jīng)過變換后橫軸沒有發(fā)生變化,所以橫軸的向量都是特征向量,特征值為1。
好了,我們可以給出特征值和特征向量的定義了:
假設(shè)我們已經(jīng)知道了特征值λ,我們可以根據(jù)Av=λv求解其對應(yīng)的特征向量:
而某一特征值λ的特征空間(Eigenspace)定義為(A-λIn)v=0的解集:
Eigenspace也可以說是λ所對應(yīng)的特征向量再加上零向量(特征向量不能是零向量)
檢查一個標(biāo)量是否為特征值,只需要判斷其對應(yīng)的特征空間是否只有零向量即可:
如果一個標(biāo)量是矩陣A的特征值,那么他會滿足下面所有的條件:
那么如何計算一個矩陣的特征值呢,這里要使用特征多項式(Characteristic Polynomial),特征值是特征多項式的根。即:
舉個例子:
這里我們可以得到一個性質(zhì),兩個相似矩陣的特征值是相同的,證明如下:
那么一個n階方陣有多少特征值呢?最多n個。如果一個n階方陣有n個特征值(包括重復(fù)值),那么這n個特征值的的和等于矩陣的跡(trace,即矩陣主對角線的元素之和),同時,這n個特征值的乘積等于矩陣的行列式。
對特征多項式進(jìn)行因式分解,我們可以得到如下重要的結(jié)論,一個特征值對應(yīng)的特征空間的維度,小于等于該特征值重復(fù)出現(xiàn)的次數(shù)。
舉例來說:
如果一個矩陣的所有特征值都大于0,那么這個矩陣被稱為正定矩陣(positive definite matrix),如過特征值都大于等于0,則稱為半正定矩陣。
那么正定或者半正定矩陣的含義是什么呢?這里我們以正定矩陣為例。我們知道一個矩陣的A代表一種線性變化,那么如果一個矩陣是正定的,就有xTAx>0,假設(shè)x在經(jīng)過A的變換后變?yōu)閥,那么xTy>0,即x和y的內(nèi)積大于0,或者說夾角小于90度。所以正定矩陣的直覺代表一個向量經(jīng)過它的變化后的向量與其本身的夾角小于90度。
如果一個n階方陣A可以變?yōu)锳=PDP-1,其中D是n階對角矩陣,P是n階可逆方陣,那么A就是可對角化的(diagonalizable)。但并非所有的矩陣都可以進(jìn)行對角化:
如果A是可對角化的,那么P中的列向量是A的特征向量,D中對角線元素是A的特征值,證明如下:
同時,我們可以得到如下結(jié)論:
本節(jié)我們介紹幾個重要的性質(zhì),
1)不同特征值對應(yīng)的特征向量之間線性無關(guān)。
2)如果一個矩陣A可對角化,那么其特征值對應(yīng)的特征空間的維度,等于該特征值重復(fù)出現(xiàn)的次數(shù)。
3)如果一個矩陣A可對角化,那么Am = PDmP-1。
我們首先來看第一個性質(zhì):
我們可以假設(shè)他們之間線性相關(guān)來進(jìn)行反證:
再來看第二個性質(zhì):
我們常用范數(shù)(Norm)來表示矩陣的長度,其中最常用的是二范數(shù):
兩個向量的距離,我們使用的一般是歐式距離:
點(diǎn)積(Dot Product)的計算如下:
兩個向量是正交的(Orthogonal),如果兩個向量的點(diǎn)積是0,那么零向量和任何向量都是正交的。
點(diǎn)積具有如下的性質(zhì):
同時,如果兩個向量是正交的,那么有如下性質(zhì):
在三角形中,我們有著名的三角不等式,兩條邊長度之和大于第三條邊的長度,所以我們有:
對于一個非空的向量集合S,該集合的正交補(bǔ)(Orthogonal Complement)定義為:
關(guān)于正交補(bǔ),我們有如下性質(zhì):
所以說,對于n維空間中的向量,我們都可以進(jìn)行拆解:
正交投影(Orthogonal Projection)通過下面的圖片很容易理解,如果向量u像子空間W做正交投影,其投影的結(jié)果就是w。
正交投影有一個很重要的性質(zhì)就是,u在子空間W上的正交投影向量,是與u距離最近的,觀察下圖可以看出,直角三角形斜邊的長度總是大于直角邊的:
如何得到一個向量在另一個子空間上的正交投影呢,從一個向量得到另一個向量,我們不妨中間乘了一個變換矩陣Pw,即w=Pwu。所以關(guān)鍵是變成如何尋找這個矩陣
Pw。
好了,我們這里直接給出結(jié)論,然后再進(jìn)行證明:
證明如下,證明中的第一步是因為u-w是垂直于子空間W中所有向量的,因此自然垂直于C中所有的列向量,因此CT(u-w)=0:
如果對于無解的線性方程組Ax=b,我們退而求其次,在A的列所張成的空間中找一個距離b最近的向量,其實(shí)就是b在A上的正交投影。
這個思想可以用在我們機(jī)器學(xué)習(xí)中的線性回歸中。在進(jìn)行線性回歸時,我們往往希望殘差平方和最小,即:
這里的C是我們的訓(xùn)練數(shù)據(jù),訓(xùn)練數(shù)據(jù)的矩陣表示相當(dāng)于線性方程組的A,要找的參數(shù)a相當(dāng)于線性方程組的x,實(shí)際值y相當(dāng)于線性方程組的b。根據(jù)我們上一節(jié)求解正交投影的方式,Ca的值應(yīng)該等于y在C張成空間中的正交投影,因此,我們可以直接計算得到參數(shù)的值:
如果一組向量中任意兩個向量都是正交的,那么我們可以稱這組向量為正交集(Orthogonal Set)。不含零向量的正交集中的向量是線性無關(guān)的,證明如下:
如果正交集中所有的向量長度都為1,那么這個集合被稱為標(biāo)準(zhǔn)正交集(Orthonormal Set),標(biāo)準(zhǔn)正交集中的向量當(dāng)然也是線性無關(guān)的。
因為正交集/標(biāo)準(zhǔn)正交集中的向量是線性無關(guān)的,那么如果一個子空間的基是正交/標(biāo)準(zhǔn)正交的,那么這個基被稱為正交基(Orthogonal Basis)/標(biāo)準(zhǔn)正交基(Orthonormal Basis)。
如果一個基是正交的,那么我們可以很快的求解出子空間中一個向量的坐標(biāo):
如果u是任意向量,那么u在子空間中的正交投影也很容易計算得出:
我們可以將我們之前得到的投影變換矩陣進(jìn)行改寫:
如何把一個普通的基轉(zhuǎn)換為正交基呢,方法如下:
我們之前提到過,矩陣其實(shí)代表一種線性變換,如果將這種變換作用在任意的向量u上,不改變向量u的長度的話,我們就說該線性變換具有Norm-preserving(這里不清楚怎么翻譯,暫且翻譯為范數(shù)不變性)。注意,這樣的u是任意的向量,比如旋轉(zhuǎn)和對稱反轉(zhuǎn)操作就不會改變?nèi)魏蜗蛄康姆稊?shù):
顯然,具有范數(shù)不變性的矩陣,其必有一個特征值為+1或者-1 。
一個n階的方陣Q,如果它的列是可以張成n維空間的標(biāo)準(zhǔn)正交基,我們就稱Q為正交矩陣(orthogonal matrix)。
例如,下面的矩陣就是一個正交矩陣:
范數(shù)不變性和正交矩陣是什么關(guān)系呢?答案是:如果一個矩陣具有范數(shù)不變性,那么它是正交矩陣,反之如果一個矩陣是正交矩陣,那么該矩陣具有范數(shù)不變性。接下來,我們分別證明這兩點(diǎn)。
第一點(diǎn):如果一個矩陣具有范數(shù)不變性,那么它是正交矩陣
證明一個矩陣是正交矩陣無非就是證明兩點(diǎn),每一列的長度都為1,任意兩列都是正交的。
證明每一列長度都為1:
證明任意兩列正交:
第二點(diǎn):如果一個矩陣是正交矩陣,那么該矩陣具有范數(shù)不變性
首先,我們很容易知道,對于一個正交矩陣Q,QT=Q-1,根據(jù)下面的推導(dǎo)可以得到正交矩陣一定具有范數(shù)不變性:
剛才我們說到了,對于一個正交矩陣Q,QT=Q-1,這個條件其實(shí)可以用來判斷一個矩陣是否為正交矩陣。根據(jù)這個條件,可以得到,如果一個矩陣是正交矩陣,那么其轉(zhuǎn)置仍然是正交矩陣。這時我們只要檢查一下(QT)T=(QT)-1是否成立就好了。很顯然是成立的,因為轉(zhuǎn)置的逆等于逆的轉(zhuǎn)置。
所以對一個正交矩陣,有如下三點(diǎn)性質(zhì):
1)行和列都是正交的范數(shù)為1的向量
2)范數(shù)不變性
3)其轉(zhuǎn)置等于其逆矩陣
如果一個矩陣的轉(zhuǎn)置等于其本身,那么這個矩陣被稱為對稱矩陣(symmetric matrices)。
對于對稱矩陣來說,它的特征值都是實(shí)數(shù):
同時,不同的特征根所對應(yīng)的特征向量,是正交的:
對稱矩陣一定是可以對角化的(相關(guān)的證明網(wǎng)上可以找到,這里就不證明了),我們之前介紹過,對于一個可對角化的矩陣,它的特征向量之間都是線性無關(guān)的,根據(jù)這個性質(zhì),如果一個n階對稱陣有n個不同特征值的話,其對應(yīng)的特征向量是兩兩正交的,那么其組成的矩陣就可以是一個正交矩陣,如果存在重根,其對應(yīng)的特征向量之間不一定是正交的,但總是可以通過正交化的方式轉(zhuǎn)換成正交的。因此對于對稱矩陣來說,之前講過的對角化的方式可以變?yōu)椋?/span>
我們之前介紹的對角化,只能針對方陣,那么對于非方陣來說,我們可不可以用類似對角化的方式對矩陣進(jìn)行分解呢?這里就用到了奇異值分解(Singular value decomposition ,SVD)的技術(shù)。
奇異值分解如下,一個m*n的矩陣A可以分解為一個m階的正交矩陣,一個m*n的對角矩陣(類似于對角矩陣吧)和一個n階的正交矩陣:
那這三個矩陣分別要怎么求呢?我們參考劉建平老師的文章(https://www.cnblogs.com/pinard/p/6251584.html):
奇異值通常用于降維,也就是說,我們不需要所有的奇異值來描述矩陣,而是通過少數(shù)的幾個比較大的奇異值就可以,此時效果如下:
好了,本文的線性代數(shù)知識就帶你復(fù)習(xí)到這里,真的建議大家去聽一下李宏毅老師的線性代數(shù)課,講的還是十分清晰的。如果您發(fā)現(xiàn)了本文的錯誤,歡迎您在下方留言!
參考文獻(xiàn)
1、
http://speech.ee.ntu.edu.tw/~tlkagk/courses_LA16.html
2、
https://www.cnblogs.com/pinard/p/6251584.html