1. 程式人生 > >人工智慧基礎:數學基礎-線性代數精簡教程

人工智慧基礎:數學基礎-線性代數精簡教程

目錄

1、線性系統Linear System
2、Vectors、Matrices
2.1 向量Vectors
2.2 矩陣Matrix
2.3 矩陣與向量相乘
3、線性方程組有解麼?
3.1 線性方程組
3.2 線性組合Linear Combination
3.3 張成的空間Span
4、線性方程組有多少個解
4.1 線性相關和線性無關
4.2 秩Rank
5、求解線性方程組
5.1 初等行變換
5.2 簡化行階梯形式Reduced Row Echelon Form
5.3 滿秩
6、矩陣乘法
6.1 矩陣乘法的含義
6.2 矩陣乘法的性質
6.3 分塊矩陣乘法
7、逆矩陣
7.1 什麼是矩陣的逆
7.2 初等矩陣
7.3 什麼矩陣是可逆的?
7.4 求解一個矩陣的逆
8、行列式
8.1 什麼是行列式?
8.2 行列式的性質
8.3 行列式的計算
9、子空間
9.1 子空間
9.2 零空間
9.3 列空間和行空間
10、基Basis
10.1 什麼是基Basis
10.2 基的特性
10.3 判斷一個集合是否為基
10.4 三種空間的基和維度
11、座標系
11.1 使用基表示向量
11.2 直角座標系和其他座標系的轉換
11.3 座標系與線性方程
12、特徵值和特徵向量
12.1 什麼是特徵值和特徵向量
12.2 如何計算特徵向量
12.3 檢查一個標量是否為特徵值
12.4 計算特徵值
12.5 正定矩陣&半正定矩陣
13、對角化
13.1 可對角化
13.2 可對角化的性質
14、正交
14.1 範數和距離
14.2 點積和正交
14.3 正交補
14.4 正交投影
14.5 如何做正交投影
14.6 正交投影的應用-求解線性迴歸
14.7 正交基
14.8 正交矩陣
14.9 對稱矩陣
15、奇異值分解
15.1 什麼是奇異值分解?

1、線性系統Linear System
一個線性系統滿足兩個條件:Persevering Multiplication和Persevering Addition。

Persevering Multiplication

Persevering Addition

多元線性方程組是一個線性系統

2、Vectors、Matrices
2.1 向量Vectors
向量是一堆數的集合,分為列向量和行向量,本文中,向量預設是列向量,行向量用其轉置表示。

向量與標量相乘,每一維都與該標量相乘:

向量相加,使用平行四邊形法則:

零向量:所有維度的值都為0:

標準向量:一個維度是1,其餘維度是0:

向量集:可以包含有限個或無限個向量:

Rn: 所有的n維向量組成的向量集合

2.2 矩陣Matrix
矩陣是一組向量:

如果矩陣有m行和n列,我們就說矩陣的大小為m*n,如果m=n,我們稱為方陣(square matrix)。

矩陣的元素下標表示,先行後列:

矩陣與標量相乘:每一個元素分別與該標量相乘。

矩陣相加:兩個矩陣的形狀必須一致,同位置的元素分別相加。

零矩陣:所有元素均為0的矩陣。

單位矩陣Identity matrix:必須是方陣,對角線元素為1,其餘為0,用In表示n*n的單位矩陣。

同形狀的矩陣的一些運演算法則:

矩陣的轉置:沿左上到右下的對角線為軸進行翻轉,將(i,j)位置的元素與(j,i)位置的元素互換得到的矩陣,轉置的矩陣用AT表示。

矩陣轉置的一些運算規則:

2.3 矩陣與向量相乘
矩陣和向量相乘,結果如下:

從行的角度來看矩陣和向量相乘:從行的角度看,矩陣A和向量x相乘,其結果是矩陣的A的每一行與向量x做點積(dot product,後面再介紹) 的結果。

從列的角度來看矩陣和向量相乘:從列的角度看,矩陣A和向量x相乘,相當於對矩陣A的列向量做了一次線性組合。

因此,無論從行角度還是列角度,矩陣A的列數要與向量x的維數相同。

矩陣和向量相乘的一些性質:

如果A和B都是m*n的矩陣,對所有的w,如果都有Aw=Bw,那麼是否意味著A=B。結果是顯然的。既然是所有的w,那麼我們用標準向量就可以得到A和B的每一列都是相同的,因此A=B。

3、線性方程組有解麼?
3.1 線性方程組
對於一個線性方程組,我們可以寫成矩陣和向量相乘的形式:

對於一個線性方程組,其解的情況可能是無解,有唯一解或者有無窮多個解。我們把所有的解的集合稱為解集(solution set)

如果線性方程組有解,我們就稱其為相容的(consistent),若無解,則稱為不相容的(inconsistent)。

3.2 線性組合Linear Combination
線性組合是一個操作,將各個向量縮放之後,相加在一起,就得到了參與操作的向量之間的線性組合。

所以線性方程組的問題可以轉變成:b是否可以表示成A中列向量的線性組合?

舉幾個例子:

通過觀察上面的例子,你可能會想,在二維平面中,是不是隻要兩個向量不平行,就一定有解?答案是肯定的,但有解時兩個向量不一定平行,因為目標向量也可能跟它們平行。

3.3 張成的空間Span
對於一個向量集S,其向量的所有線性組合組成的向量集V,稱為Span(S),也被稱為S張成的空間。

舉幾個二維空間中的例子吧,如果S中只有零向量,那麼其張成的空間也只有零向量。

如果S中包含一個非零向量,那麼其張成的空間是一條直線:

如果一個向量集包含兩個不平行的非零向量,那麼其可以張成整個二維平面:

所以一個線性方程組的問題又可以轉換成兩一個等價的問題:向量b是否在A的列向量所張成的空間中?

4、線性方程組有多少個解
在上一節中,我們知道了如果b可以表示成A中列向量的線性組合或者b在A的列向量所張成的空間中,那麼線性方程組有解,否則無解。但是,有解的情況下是唯一解還是多個解呢?我們還不知道。

4.1 線性相關和線性無關
給定一個向量集,如果其中一個向量可以表示成其餘向量的線性組合,那麼我們就說這組向量是線性相關(Linear Dependent)的。值得注意的是,零向量是任意向量的線性組合,因此只要包含零向量的向量集,都是線性相關的。

線性相關還有另一種定義,即可以找到一組非全零的標量,使得線性組合為零向量。

與之相對應,如果無法找到一組非全零的標量,使得線性組合得到零向量,那麼這組向量就是線性無關的(Linear Independent):

判斷向量集是線性無關還是線性相關,其實就是看一個齊次方程(Homogeneous Equations)有無非零解:

由此,對於Ax=b,我們可以得到兩個結論:如果A的列是線性相關的,且Ax=b有解,那麼,它有無窮多個解;如果Ax=b有無窮多個解,那麼A的列是線性相關的:

4.2 秩Rank
矩陣的秩(Rank)定義為線性無關的列的最大數目:

矩陣的零化度(Nullity)是矩陣的列數減去矩陣的秩:

也就是說,如果一個m*n的矩陣,其秩為n的話,它的列是線性無關的:

所以總結一下線性方程組的解的相關問題:

5、求解線性方程組
5.1 初等行變換
如果兩個線性方程組的解集是相同的,我們就稱它們是等價的(equivalent)。

對線性方程組做以下三種操作可以得到等價的方程組:
1)交換兩行
2)對其中一行變為k倍
3)將一行的k倍加到另一行上

上面的三種操作我們也稱為初等行變換(elementary row operations)

這裡我們介紹一下增廣矩陣(Augmented Matrix),即將A和b進行橫向拼接:

因此,通過初等行變換,如果我們能夠將增廣矩陣轉換為一個相對簡單的形式,那麼我們可以很快的得出最終的解。

5.2 簡化行階梯形式Reduced Row Echelon Form
我們首先介紹行階梯形式的矩陣,它滿足兩個條件,首先是非零行要在全零行的上面,其先導元素(leading entries,每行的第一個非零元素)按階梯型排列:

在上述兩個條件的基礎上,如果先導元素所在的列都是標準向量的話,那麼它就是簡化行階梯形式Reduced Row Echelon Form:

下面的矩陣不是簡化行階梯形式:

而下面的矩陣是簡化行階梯形式:

根據簡化行階梯形式,我們很容易得到線性方程組的解的形式。

如果簡化行階梯形式是[I;b’]的,那麼線性方程組有唯一解:

下面的例子是有無窮多個解的情況,可以看到,第1、3、5列是包含先導元素的標準向量,其對應的變數也稱為基本變數,而第2、4個變數被稱為自由變數:

下面的例子是無解的情況,先導元素出現在了最後一列:

通過將增廣矩陣化簡為簡約行階梯形式,進而求解線性方程組解的方法,我們稱之為高斯消元法(Gaussian Elimination)

接下來,我們來看一下簡約行階梯型形式的一些性質:
(1)化簡為簡約行階梯型形式之後,列之間的關係不變

也就是說,初等行變換不改變矩陣中列之間的關係。加入A的簡約行階梯形式是R,那麼Ax=0和Rx=0有相同的解集。

但是對於行來說,行階梯形式改變了行之間的關係,比如原先兩行是兩倍的關係,其中一行變為二倍之後,二者就相等了,關係自然改變了。

(2)簡約行階梯形式改變了矩陣列所張成的空間
舉個簡單的例子就能理解,假設一個矩陣是[[1,2],[2,4]],它所張成的空間是y=2x,化簡後得到[[1,0],[0,0]],此時所張成的空間卻是整個平面。但是沒有改變行所張成的空間。

(3)先導元素所在的列線性無關,其他列是這些列的線性組合
先導元素所在的列,在原矩陣中被稱為主列(pivot columns),這些列是線性無關的,其他列可以有主列的線性組合得到。

(4) 矩陣的秩等於主列的個數,等於簡約行階梯型裡非0行的個數

根據這個性質,我們可以得到矩陣的秩的一個性質:
Rank(A) <= Min(Number of columns,Number of rows)

因為秩等於主列的個數,所以秩一定小於等於列的個數,因為秩等於簡約行階梯型中非零行的個數,所以秩一定小於等於矩陣行的個數。

有這個性質我們還可以得出兩個簡單的結論:對於m*n的矩陣A,如果m<n,那麼矩陣A的列一定是線性相關的和在Rm空間中,無法找到多於m個線性無關的向量。

所以我們再來回顧一下矩陣秩的判定,我們已經有多種得到矩陣秩的方式:

(5)當m*n的矩陣A的秩為m是,方程組Ax=b恆有解
對於增廣矩陣來說,如果變為簡約行階梯型後先導元素出現在了最後一列,則無解。

什麼情況下Ax=b恆有解呢?b是一個m*1的向量,也就是說矩陣A的列向量可以張成整個Rm空間,即A的秩為行數m,也就是A變成簡約行階梯型之後沒有全0行。

(6)m個線性無關的m維向量可以張成整個Rm空間,Rm空間中多於m個向量的向量集一定線性相關

5.3 滿秩
如果m*n的矩陣的秩為n或者m,那麼說該矩陣為滿秩(Full Rank)。

6、矩陣乘法
6.1 矩陣乘法的含義
給定兩個矩陣A和B,其相乘結果中的元素(i,j)是矩陣A的第i行和矩陣B的第j列的內積,因此,矩陣A的列數一定要個矩陣B的行數相等。

矩陣乘法可以看作是兩個線性方程的組合:

6.2 矩陣乘法的性質
(1) AB <> BA
(2)(AB)T = BTAT
(3)其他性質

(4)對角矩陣相乘

6.3 分塊矩陣乘法
分塊矩陣相乘和普通矩陣相乘其實是相同的:

7、逆矩陣
7.1 什麼是矩陣的逆
如果兩個方陣A和B的乘積是單位矩陣,AB=I,那麼A和B就是互為逆矩陣。

一個矩陣是可逆的(invertible)的,必須滿足兩個條件,首先要是方陣,其次是可以找到另一個方陣B,使得AB=I。

並不是所有的方陣都是可逆的。同時,一個矩陣的逆矩陣是唯一的:

逆矩陣可以用來求解一個線性方程組,但這種方法要求A是一個方陣,同時在計算上並不是十分有效率的:

7.2 初等矩陣
我們之前介紹了三種初等行變換,其實初等行變換都可以用矩陣相乘表示,這種左乘的矩陣被稱作初等矩陣(Elementary Matrix)。即單位矩陣經過一次初等變換得到的矩陣。

既然左乘一個初等矩陣相當於對單位矩陣做一次初等行變換,那麼只要再左乘一個相反操作的初等矩陣,就可以再次變回單位矩陣,所以初等矩陣的逆很容易得到:

回顧我們如何得到矩陣的簡約行階梯形式,用的就是初等行變換,因此我們可以用左乘初等矩陣的形式,來得到矩陣的簡約行階梯形式。

7.3 什麼矩陣是可逆的?
判斷一個矩陣是否是可逆的,可以用下面條件中的任意之一,不過一定要是一個方陣才行:

7.4 求解一個矩陣的逆
在上一節中,我們看到了,如果一個方陣是可逆的,那麼它的簡約行階梯型是單位矩陣,所以我們可以使用初等行變換來得到一個矩陣的逆。

8、行列式
8.1 什麼是行列式?
首先方陣才有行列式,我們先來簡單回顧一下22和33的矩陣的行列式:

那行列式代表什麼含義呢?在二維平面中,矩陣行列式的絕對值代表一個平行四邊形的面積,在三維空間中,矩陣行列式的絕對值代表一個平行六面體的體積:

8.2 行列式的性質
(1)單位矩陣的行列式為1
(2)交換任意的兩行,行列式變號

(3)對任意一行來說,行列式是“線性”的
從ppt上不好翻譯,但是看圖是很直觀的:

所以,下面的式子是正確的:

同時:

(4)如果行列式有兩行相等或者是倍數關係,行列式值為0
這個性質也是很直觀的,交換兩行變號嘛,但是交換的兩行如果是一樣的,那麼行列式的值應該不變,-a=a那麼a只能是0。

(5)對角矩陣的行列式等於對角線上元素的乘積

(6)如果一個方陣的行列式不為0,那麼它是可逆的,反之,如果一個方陣可逆,那麼它的行列式不為0
如果一個矩陣是可逆的,它可以經由初等變換得到單位矩陣,每一次初等變換得到的矩陣的行列式值,相當於對原矩陣的行列式值乘上一個標量。由於每次乘的標量不為0,所以可以得到原矩陣的行列式值不為0。

(7)det(AB)=det(A)*det(B)

(8)矩陣轉置的行列式和原矩陣相同

所以說,剛才的結論同樣適用於列。即如果有兩列相同或是倍數關係,行列式值同為0,同時每一列也是線性的。

8.3 行列式的計算
我們首先來介紹餘子式和代數餘子式,一個矩陣的任意一個元素aij都有對應的餘子式,它就是將第i行和第j列劃掉之後所得到的矩陣的行列式,用det(Aij)表示:

而cij=(-1)i+jdet(Aij)被稱為代數餘子式。

根據代數餘子式,我們可以得到計算行列式的公式如下:

舉個3維的例子:

因此,對於一個方陣的行列式,它是n!項的和(n!是n個元素的全排列的個數),對於每一項,它是從每一行選擇一個元素進行相乘,而這些元素分別屬於不同列。

有了代數餘子式,我們可以得到矩陣A的伴隨矩陣。伴隨矩陣中的每個元素是原矩陣中該位置元素的代數餘子式:

我們可以進一步通過伴隨矩陣和行列式值來計算矩陣的逆:

9、子空間
9.1 子空間
如果一個向量集合V滿足三個條件:(1)包含零向量(2)如果u和v屬於V,那麼u+v也屬於V(3)如果u屬於V,c是一個標量,那麼cu也屬於V。就稱這個向量集合V為子空間(subspace):

舉個例子,下面的向量集合是一個子空間:

只有零向量的集合也是一個子空間,三條性質都滿足。

9.2 零空間
對於一個矩陣A來說,使得Ax=0的所有x所組成的集合被稱為矩陣A的零空間(Null Space):

9.3 列空間和行空間
列空間(Column Space)是矩陣A的列所張成的空間,行空間(Row Space)是矩陣的行所張成的空間。

在將矩陣化簡為行階梯型之後,矩陣的列空間是改變的,而行空間不變。

好了,我們又可以新增一條判斷線性方程組是否有解的條件了,即b是否在A的列空間中。

10、基Basis
10.1 什麼是基Basis
假設V是Rn的一個子空間,能夠張成空間V的一組線性無關的向量被稱為基(Basis)。

對於一個矩陣來說,其主列是其列空間的基:

10.2 基的特性
基有如下的特性:
(1)基是一個能張成空間V的數量最小的向量集合
如果一組向量S能夠張成子空間V,那麼基中包含的向量數目小於或等於S中向量的數目。

(2)基是空間中數量最多的線性無關的向量集合

如果子空間V的基中向量的數量是k,那麼你不能找到比k個多的線性無關的向量集合。

(3)子空間中任意的兩組基都包含相同數目的向量

這個如何證明呢?
1)假設子空間V中有兩組基A和B,個數分別是k和p;
2)因為A是子空間中的基,所以B中的所有向量都可以表示成A中向量的線性組合,即有AC=B,C的列數為p,行數是k;
3)假設存在一個p維向量x使得Cx=0,所以ACx=Bx=0因為B是基,所以Bx=0的解只能是零向量,所以C也是線性無關的;
4)因為C中的列向量是k維的,p個k維的向量線性無關,所以一定有p<=k;
5)同理k<=p,所以最終k=p,即A和B中向量的個數是相同的。

(4)子空間V的基的向量的數量被稱為V的維度(dimension)

10.3 判斷一個集合是否為基
通過定義,我們可以判斷一個集合是否為基,需滿足兩個條件,向量之間線性無關,同時能夠張成空間V,前者容易判斷,後者較難判斷:

另一種思路,假設對於一個子空間V,我們已經知道它的維度為2,如果S是一個包含k個vector並且屬於V的一個子集,那麼如果
1)S中的向量線性無關,那麼S是一個基
2)S能夠張成空間V,那麼S是一個基

10.4 三種空間的基和維度
我們之前介紹過對於一個矩陣的三個空間,行空間、列空間以及零空間,他們的基以及維度都是多少呢?

A的列空間

A的列空間的基是主列組成的集合,維度就是主列的個數

A的零空間

A的零空間的的維度是Ax=0中自由變數的個數,基看下面的圖片:

A的行空間

A的行空間的維度是化簡為簡約行階梯型之後非零行的個數,基就是簡約行階梯型中先導元素所在的行所組成集合。

這裡我們可以得出一個結論,矩陣A和其轉置的秩相等:

總結一下就是下面這樣子啦:

11、座標系
11.1 使用基表示向量
在n維空間中,我們可以使用基向量來表示座標系,這樣空間中的任意向量的座標都確定了,但是對於同一向量,使用不同的座標系,其座標是不同的:

同理,在不同座標系下,同一個座標所代表的向量也不同:

當基確定時,一個向量的座標也是唯一的,由於基之間是線性無關的,因此證明如下:

在某一座標系B下,一個向量可以表示成其對應的座標表示:

而我們最為常用的一種座標系就是直角座標系(Cartesian coordinate system),通常表示如下:

那麼根據任意座標系以及某一向量在該座標系下的座標,如何得到該向量呢?很簡單,該向量可以表示成基的線性組合,係數即為其座標:

那麼,如何得到某一向量在任意座標系下的座標,兩邊同乘B-1即可:

11.2 直角座標系和其他座標系的轉換
其實我們的向量就是在直角座標系下的座標表示,所以其實直角座標系和其他座標系的轉換我們上一節已經講過:

11.3 座標系與線性方程
我們之前所說的線性方程,都是相對於直角座標系所說的,有時候有些問題直接在直角座標系下進行求解並不容易,但是轉換到另一座標系下就會變得十分簡單,這就得到了通過座標系轉換來求解問題的思路:

我們舉個例子來說吧,如果下圖中的T表示得到任意一個向量關於直線L的對稱向量:

直接求解這個問題非常難,我們想要找的是一個矩陣A,使得T(x)=Ax,直線如果不是橫軸或者縱軸的話,要找到這個矩陣A是十分困難的。但是如果直線是橫軸或者縱軸的話,這個問題就變得非常簡單。假設直線是橫軸,那麼要找的矩陣我們可以很容易寫出:

所以我們可以通過座標系變換,把直線L變成橫軸,那麼問題就簡單了:

所以我們在直角座標系下的這個變換矩陣A也就找到了,此時我們可以稱兩個座標系下的變換矩陣是相似矩陣(Similar matrices):

假設直線L為y=0.5x,那麼求解過程如下:

12、特徵值和特徵向量
12.1 什麼是特徵值和特徵向量
好了,在寫這一節之前,我們看來想一下上一節的東西,我們說一個直角座標系下的向量v, 其在另一個座標系下的座標表示為Bv,這個B是該座標系下的基所做成的矩陣,所以說矩陣可以表示一種線性變換(Linear Transformation),它將一個向量在直角座標系下的座標表示轉換為另一座標系下的座標表示!

我們知道,任意非零向量都可以張成一條直線,有的向量在一個矩陣A作用後,偏離了其所張成的空間;但有的向量在矩陣A作用後,還是在原有張成的空間,矩陣A只是對該向量起到了一定的伸縮作用,那麼我們就說該向量是矩陣A的特徵向量(Eigenvector),而這個伸縮作用的大小我們就稱為特徵值(Eigenvalue)。所以我們知道,該向量所張成空間中的所有向量(零向量除外)都是該矩陣的特徵向量。下面的例子中,經過變換後橫軸沒有發生變化,所以橫軸的向量都是特徵向量,特徵值為1。

好了,我們可以給出特徵值和特徵向量的定義了:

12.2 如何計算特徵向量
假設我們已經知道了特徵值λ,我們可以根據Av=λv求解其對應的特徵向量:

而某一特徵值λ的特徵空間(Eigenspace)定義為(A-λIn)v=0的解集:

Eigenspace也可以說是λ所對應的特徵向量再加上零向量(特徵向量不能是零向量)

12.3 檢查一個標量是否為特徵值
檢查一個標量是否為特徵值,只需要判斷其對應的特徵空間是否只有零向量即可:

12.4 計算特徵值
如果一個標量是矩陣A的特徵值,那麼他會滿足下面所有的條件:

那麼如何計算一個矩陣的特徵值呢,這裡要使用特徵多項式(Characteristic Polynomial),特徵值是特徵多項式的根。即:

舉個例子:

這裡我們可以得到一個性質,兩個相似矩陣的特徵值是相同的,證明如下:

那麼一個n階方陣有多少特徵值呢?最多n個。如果一個n階方陣有n個特徵值(包括重複值),那麼這n個特徵值的的和等於矩陣的跡(trace,即矩陣主對角線的元素之和),同時,這n個特徵值的乘積等於矩陣的行列式。

對特徵多項式進行因式分解,我們可以得到如下重要的結論,一個特徵值對應的特徵空間的維度,小於等於該特徵值重複出現的次數。

舉例來說:

12.5 正定矩陣&半正定矩陣
如果一個矩陣的所有特徵值都大於0,那麼這個矩陣被稱為正定矩陣(positive definite matrix),如過特徵值都大於等於0,則稱為半正定矩陣。

那麼正定或者半正定矩陣的含義是什麼呢?這裡我們以正定矩陣為例。我們知道一個矩陣的A代表一種線性變化,那麼如果一個矩陣是正定的,就有xTAx>0,假設x在經過A的變換後變為y,那麼xTy>0,即x和y的內積大於0,或者說夾角小於90度。所以正定矩陣的直覺代表一個向量經過它的變化後的向量與其本身的夾角小於90度。

13、對角化
13.1 可對角化
如果一個n階方陣A可以變為A=PDP-1,其中D是n階對角矩陣,P是n階可逆方陣,那麼A就是可對角化的(diagonalizable)。但並非所有的矩陣都可以進行對角化:

如果A是可對角化的,那麼P中的列向量是A的特徵向量,D中對角線元素是A的特徵值,證明如下:

同時,我們可以得到如下結論:

13.2 可對角化的性質
本節我們介紹幾個重要的性質,
1)不同特徵值對應的特徵向量之間線性無關。
2)如果一個矩陣A可對角化,那麼其特徵值對應的特徵空間的維度,等於該特徵值重複出現的次數。
3)如果一個矩陣A可對角化,那麼Am = PDmP-1。

我們首先來看第一個性質:

我們可以假設他們之間線性相關來進行反證:

再來看第二個性質:

14、正交
14.1 範數和距離
我們常用範數(Norm)來表示矩陣的長度,其中最常用的是二範數:

兩個向量的距離,我們使用的一般是歐式距離:

14.2 點積和正交
點積(Dot Product)的計算如下:

兩個向量是正交的(Orthogonal),如果兩個向量的點積是0,那麼零向量和任何向量都是正交的。

點積具有如下的性質:

同時,如果兩個向量是正交的,那麼有如下性質:

在三角形中,我們有著名的三角不等式,兩條邊長度之和大於第三條邊的長度,所以我們有:

14.3 正交補
對於一個非空的向量集合S,該集合的正交補(Orthogonal Complement)定義為:

關於正交補,我們有如下性質:

所以說,對於n維空間中的向量,我們都可以進行拆解:

14.4 正交投影
正交投影(Orthogonal Projection)通過下面的圖片很容易理解,如果向量u像子空間W做正交投影,其投影的結果就是w。

正交投影有一個很重要的性質就是,u在子空間W上的正交投影向量,是與u距離最近的,觀察下圖可以看出,直角三角形斜邊的長度總是大於直角邊的:

14.5 如何做正交投影
如何得到一個向量在另一個子空間上的正交投影呢,從一個向量得到另一個向量,我們不妨中間乘了一個變換矩陣Pw,即w=Pwu。所以關鍵是變成如何尋找這個矩陣
Pw。

好了,我們這裡直接給出結論,然後再進行證明:

證明如下,證明中的第一步是因為u-w是垂直於子空間W中所有向量的,因此自然垂直於C中所有的列向量,因此CT(u-w)=0:

14.6 正交投影的應用-求解線性迴歸
如果對於無解的線性方程組Ax=b,我們退而求其次,在A的列所張成的空間中找一個距離b最近的向量,其實就是b在A上的正交投影。

這個思想可以用在我們機器學習中的線性迴歸中。在進行線性迴歸時,我們往往希望殘差平方和最小,即:

這裡的C是我們的訓練資料,訓練資料的矩陣表示相當於線性方程組的A,要找的引數a相當於線性方程組的x,實際值y相當於線性方程組的b。根據我們上一節求解正交投影的方式,Ca的值應該等於y在C張成空間中的正交投影,因此,我們可以直接計算得到引數的值:

14.7 正交基
如果一組向量中任意兩個向量都是正交的,那麼我們可以稱這組向量為正交集(Orthogonal Set)。不含零向量的正交集中的向量是線性無關的,證明如下:

如果正交集中所有的向量長度都為1,那麼這個集合被稱為標準正交集(Orthonormal Set),標準正交集中的向量當然也是線性無關的。

因為正交集/標準正交集中的向量是線性無關的,那麼如果一個子空間的基是正交/標準正交的,那麼這個基被稱為正交基(Orthogonal Basis)/標準正交基(Orthonormal Basis)。

如果一個基是正交的,那麼我們可以很快的求解出子空間中一個向量的座標:

如果u是任意向量,那麼u在子空間中的正交投影也很容易計算得出:

我們可以將我們之前得到的投影變換矩陣進行改寫:

如何把一個普通的基轉換為正交基呢,方法如下:

14.8 正交矩陣
我們之前提到過,矩陣其實代表一種線性變換,如果將這種變換作用在任意的向量u上,不改變向量u的長度的話,我們就說該線性變換具有Norm-preserving(這裡不清楚怎麼翻譯,暫且翻譯為範數不變性)。注意,這樣的u是任意的向量,比如旋轉和對稱反轉操作就不會改變任何向量的範數:

顯然,具有範數不變性的矩陣,其必有一個特徵值為+1或者-1 。

一個n階的方陣Q,如果它的列是可以張成n維空間的標準正交基,我們就稱Q為正交矩陣(orthogonal matrix)。

例如,下面的矩陣就是一個正交矩陣:

範數不變性和正交矩陣是什麼關係呢?答案是:如果一個矩陣具有範數不變性,那麼它是正交矩陣,反之如果一個矩陣是正交矩陣,那麼該矩陣具有範數不變性。接下來,我們分別證明這兩點。

第一點:如果一個矩陣具有範數不變性,那麼它是正交矩陣
證明一個矩陣是正交矩陣無非就是證明兩點,每一列的長度都為1,任意兩列都是正交的。

證明每一列長度都為1:

證明任意兩列正交:

第二點:如果一個矩陣是正交矩陣,那麼該矩陣具有範數不變性

首先,我們很容易知道,對於一個正交矩陣Q,QT=Q-1,根據下面的推導可以得到正交矩陣一定具有範數不變性:

剛才我們說到了,對於一個正交矩陣Q,QT=Q-1,這個條件其實可以用來判斷一個矩陣是否為正交矩陣。根據這個條件,可以得到,如果一個矩陣是正交矩陣,那麼其轉置仍然是正交矩陣。這時我們只要檢查一下(QT)T=(QT)-1是否成立就好了。很顯然是成立的,因為轉置的逆等於逆的轉置。

所以對一個正交矩陣,有如下三點性質:
1)行和列都是正交的範數為1的向量
2)範數不變性
3)其轉置等於其逆矩陣

14.9 對稱矩陣
如果一個矩陣的轉置等於其本身,那麼這個矩陣被稱為對稱矩陣(symmetric matrices)。

對於對稱矩陣來說,它的特徵值都是實數:

同時,不同的特徵根所對應的特徵向量,是正交的:

對稱矩陣一定是可以對角化的(相關的證明網上可以找到,這裡就不證明了),我們之前介紹過,對於一個可對角化的矩陣,它的特徵向量之間都是線性無關的,根據這個性質,如果一個n階對稱陣有n個不同特徵值的話,其對應的特徵向量是兩兩正交的,那麼其組成的矩陣就可以是一個正交矩陣,如果存在重根,其對應的特徵向量之間不一定是正交的,但總是可以通過正交化的方式轉換成正交的。因此對於對稱矩陣來說,之前講過的對角化的方式可以變為:

15、奇異值分解
15.1 什麼是奇異值分解?
我們之前介紹的對角化,只能針對方陣,那麼對於非方陣來說,我們可不可以用類似對角化的方式對矩陣進行分解呢?這裡就用到了奇異值分解(Singular value decomposition ,SVD)的技術。

奇異值分解如下,一個mn的矩陣A可以分解為一個m階的正交矩陣,一個mn的對角矩陣(類似於對角矩陣吧)和一個n階的正交矩陣:

那這三個矩陣分別要怎麼求呢?我們參考劉建平老師的文章(https://www.cnblogs.com/pinard/p/6251584.html):

奇異值通常用於降維,也就是說,我們不需要所有的奇異值來描述矩陣,而是通過少數的幾個比較大的奇異值就可以,此時效果如下:

好了,本文的線性代數知識就帶你複習到這裡,真的建議大家去聽一下李巨集毅老師的線性代數課,講的還是十分清晰的。如果您發現了本文的錯誤,歡迎您在下方留言!

參考文獻

1、

http://speech.ee.ntu.edu.tw/~tlkagk/courses_LA16.html
2、

https://www.cnblogs.com/pinard/p/6251584.html