適合有一點點線代基礎的人學習復習。
SuperCC 20210622
1基本概念和符號
線性代數可以對一組線性方程進行簡潔地表示和運算。例如,對於這個方程組:

這里有兩個方程和兩個變量,如果你學過高中代數的話,你肯定知道,可以為x1 和x2找到一組唯一的解 (除非方程可以進一步簡化,例如,如果第二個方程只是第一個方程的倍數形式。但是顯然上面的例子不可簡化,是有唯一解的)。在矩陣表達中,我們可以簡潔的寫作:

其中:

很快我們將會看到,咱們把方程表示成這種形式,在分析線性方程方面有很多優勢(包括明顯地節省空間)。
1.1基本符號
以下是我們要使用符號:
- 符號A ∈ Rm×n表示一個m行n列的矩陣,並且矩陣A中的所有元素都是實數。
- 符號x ∈ Rn表示一個含有n個元素的向量。通常,我們把n維向量看成是一個n行1列矩陣,即列向量。如果我們想表示一個行向量(1行n列矩陣),我們通常寫作xT (xT表示x的轉置,后面會解釋它的定義)。
- 一個向量x的第i個元素表示為xi:

- 我們用aij (或Aij,Ai,j,等) 表示第i行第j列的元素:

- 我們用aj 或A:,j表示A矩陣的第j列元素:

-
我們用aT i或 Ai,:表示矩陣的第i行元素:

-
請注意,這些定義都是不嚴格的(例如,a1和a1T在前面的定義中是兩個不同向量)。通常使用中,符號的含義應該是可以明顯看出來的。
2 矩陣乘法
矩陣 A ∈ Rm×n 和B ∈ Rn×p 的乘積為矩陣 :

其中:
.
請注意,矩陣A的列數應該與矩陣B的行數相等,這樣才存在矩陣的乘積。有很多種方式可以幫助我們理解矩陣乘法,這里我們將通過一些例子開始學習。
2.1向量的乘積
給定兩個向量x,y ∈ Rn,那么xT y的值,我們稱之為向量的內積或點積。它是一個由下式得到的實數:
.
可以發現,內積實際上是矩陣乘法的一個特例。通常情況下xT y = yT x。
對於向量x ∈ Rm, y ∈ Rn(大小不必相同),xyT ∈ Rm×n稱為向量的外積。外積是一個矩陣,其中中的每個元素,都可以由
得到,也就是說,
.
我們舉個例子說明外積有什么用。令1 ∈ Rn 表示所有元素都是1的n維向量,然后將矩陣 A ∈ Rm×n 的每一列都用列向量x ∈ Rm表示。使用外積,我們可以將A簡潔的表示為:
.
2.2矩陣-向量的乘積
對於一個矩陣A ∈ Rm×n 和向量x ∈ Rn,他們的乘積為向量 y = Ax ∈ Rm。理解矩陣向量乘法的方式有很多種,我們一起來逐一看看。
以行的形式書寫A,我們可以將其表示為Ax的形式:
.
也就是說,y第i行的元素等於A的第i行與x的內積
.
咱們換個角度,以列的形式表示A,我們可以看到:
.
換言之,y是A列的線性組合,線性組合的系數就是x的元素。
上面我們看到的是右乘一個列向量,那左乘一個行向量嘞?對於A ∈ Rm×n,x ∈ Rm, y ∈ Rn,這個式子可以寫成yT = xT A 。向之前那樣,我們有兩種方式表達yT,這取決於表達A的方式是行還是列。第一種情況是把A以列的形式表示:

這個式子說明yT 第i列的元素等於向量x與A的第i列的內積。
我們也一樣可以把A表示成行的形式,來說明向量-矩陣乘積。

我們可以看到yT 是A的行的線性組合,線性組合的系數是x的元素。
2.3矩陣-矩陣乘積
基於以上知識,我們可以看到如之前所定義的矩陣-矩陣乘法C=AB有四種不同(但是等價)的理解方法。
首先,我們可以將矩陣-矩陣相乘看作一組向量-向量乘積。根據其概念,我們最好理解的方式是矩陣C的(i,j)元素是A的i行與B的 j列的內積。符號表達如下:
.
注意由於A ∈ Rm×n , B ∈ Rn×p, ai ∈ Rn ,bj ∈ Rn, 所以內積永遠有意義。對矩陣乘法而言,以A的行和B的列表示是最"自然"的表示方法。當然,我們也可以以A的列和B的行的形式進行表示。表達方法是AB外積累加的形式,稍微復雜一點點。符號表達為:
.
換一種方式表達,AB的值等於對於所有的i,A的i列與B的i行的外積的和。因此,對於ai ∈ Rm 和 bi ∈ Rp,外積aibiT的維度是m×p,它與C的維度是相同的。等式可能有點難理解,花點時間想想,我猜你肯定能明白。
第二種理解方式是,我們也可將向量-向量乘法看做一系列的矩陣-向量乘積。具體來說,如果我們將B以列的形式表示,我們可以將C的每一列看做A和B列的矩陣-向量乘積。符號表達為:
.
可以將C的i列以矩陣-向量乘積(向量在右)的方式表示為ci = Abi. 這些矩陣-向量乘積可以用前面的兩種觀點解釋。最后類比一下,我們以A的行形式表示,將C的行視為A的行與C的矩陣-向量乘積,符號表達為
.
在此,我們以矩陣-向量乘積(向量左乘)的形式表示了C的i列,
只是一個矩陣乘法而已,這么細的分析看上去好像沒有必要,尤其是當我們知道矩陣乘法定義后其實很容易可以計算得到結果。然而,幾乎所有的線性代數內容都在處理某種類型的矩陣乘法,因此花一些時間去形成對這些結論的直觀認識還是很有幫助的。
此外,知道一些更高層次的矩陣乘法的基本性質也是有好處的:
- 結合律即(AB)C = A(BC)
- 分配率即A(B + C) = AB + AC
- 注意哦,矩陣乘法沒有交換律,即AB ≠BA.(例如,如果A ∈ Rm×n 和B ∈ Rn×q,矩陣的乘積BA在m和q不等時,BA可能根本就不存在)
如果你對這些性質不熟悉,最好花些時間自己證明一下。例如,為了驗證矩陣乘法的結合律,對於A ∈ Rm×n, B ∈ Rn×p,C ∈ Rp×q,注意AB ∈ Rm×p,而 (AB)C ∈ Rm×q。類似的有BC ∈ Rn×q,所以A(BC) ∈ Rm×q。因此可以得到維度相同的矩陣。為了說明矩陣乘法符合結合律,證明(AB)C 第(i,j)個元素是否與A(BC)的(i,j)個元素相等就夠了。我們可以直接運用矩陣乘法的定義進行證明。

上面的推導過程中,第一個和最后兩個等式使用矩陣乘法的定義,第三和第五的等式使用標量乘法的分配率,第四個等式使用了標量加法的交換律和結合律。這種將運算簡化成標量的特性以證明矩陣性質的方法會經常出現,你可以熟悉熟悉它們。
3 運算和性質
在這一節中,我們將介紹幾種矩陣/向量的運算和性質。很希望這些內容可以幫助你回顧以前知識,這些筆記僅僅是作為上述問題的一個參考。
3.1 單位矩陣與對角矩陣
單位矩陣,記作I ∈ Rn×n, 是一個方陣,其對角線上的都是1,其他元素都是0。即:

它具備A ∈ Rm×n矩陣的所有性質

請注意,在某種意義上,標識矩陣的符號是有歧義的,因為它沒有指定 I 的維度。一般而言,從上下文中可以推斷出 I 的維度,這個維度使矩陣相乘成為可能。例如,在上面的等式AI = A中的I是n × n矩陣,而A = IA中 I是m × m矩陣。
對角矩陣除了對角線元素之外其他元素都是0。可以記作D = diag(d1,d2,...,dn),其中:

顯然,I = diag(1,1,...,1).
3.2轉置
矩陣的轉置的是矩陣行和列的"翻轉"。對於一個矩陣A ∈ Rm×n,,它的轉置,AT ∈ Rn×m,是一個n × m 的矩陣,其元素為

我們實際上已經使用轉置當描述行向量的轉置,因為一個列向量的轉置,自然是一個行向量。
下面是一些關於轉置的性質,證明起來也不太難:
- (AT )T = A
- (AB)T = BT AT
- (A + B)T = AT + BT
3.3對稱矩陣
如果一個方陣A∈ Rn×n滿足條件A = AT,那么它就是對稱的。如果滿足A = −AT則A是反對稱的。很容易證明,任何矩陣A ∈ Rn×n,A + AT 是對稱的,而 A−AT是反對稱的。因此,任何方陣A ∈ Rn×n可以表示為一個對稱矩陣和反對稱矩陣的和,因為:

右邊的第一個矩陣是對稱的,第二個是反對稱的。在實踐中,對稱矩陣是很常用的,他們有諸多優秀的性質,我們將在以后進行說明。我們通常將所有大小為n的對稱矩陣的集合表示為Sn;A ∈ Sn則表示A是n × n的對稱矩陣。
3.4矩陣的跡
方陣A ∈ Rn×n的跡(trace),記作tr(A),或可以省略括號表示成trA,是矩陣的對角線元素之和:

正如cs229講義中所述,矩陣的跡具有以下性質(在此講述完全是為了內容的完整性):
- 對於A ∈ Rn×n, trA = trAT .
- 對於A,B ∈ Rn×n, tr(A + B) = trA + trB.
- 對於A ∈ Rn×n, t ∈ R, tr(tA) = t trA.
- 對於方陣A,B,C,trABC = trBCA = trCAB,即使有更多的矩陣相乘,這個性質也不變.
前三個性質比較容易證明,咱們一起來看看第4個性質。假設A ∈ Rm×n ,B ∈ Rn×m (因此AB ∈ Rm×m是個方陣)。觀察到BA ∈ Rn×n也是一個方陣,所以他的跡是有意義的。為了證明trAB = trBA,注意到:

在這里,第一個和最后兩個等式使用了跡運算和矩陣乘法的定義。第四個等式是最重要的部分,它使用了標量乘法的交換性來交換每個乘積中因式順序,也使用了標量加法的交換律和結合律將求和過程重新排序。
3.5范數
向量的范數
是向量"長度"的非正式度量。例如,我們常用的歐氏或ℓ2范數。

注意
.
更正式的來講,范數是滿足以下4個特性的任何一個方程f : Rn → R:
- 對於任意x ∈ Rn, f(x) ≥ 0 (非負性).
- 當且僅當x = 0 時,f(x) = 0(確定性).
- 對於任意x ∈ Rn,t∈ R,f(tx) = |t|f(x) (均勻性).
- 對於任意 x,y∈Rn,f(x + y)≤f(x) + f(y) (三角不等性).
另一個范數的例子是ℓ1范數,

以及ℓ∞范數,

事實上,這三個范數都是ℓP范數家族的的例子,它包含一個實參數p≥1。ℓP范數定義為:
.
也可以定義矩陣A的范數,如Frobenius范數,
.
也存在許多其他的范數,但它們超出了這篇綜述討論的范圍。
3.6線性無關和秩
對於一組向量{x1,x2,...xn} ∈ Rm,如果沒有向量可以表示為其余向量的線性組合,這組向量就是(線性)無關的。相反,如果一個向量屬於一個集合,這個集合中的向量可以表示為其余的向量某個線性組合,那么就稱其稱為向量(線性)相關。也就是說,對於一些標量值α1*,...,αn−1 ∈ R,如果

我們說向量x1,...,xn是線性相關;否則,該向量線性無關。例如,向量

是線性相關的,因為x3 = −2x1 + x2.
矩陣A ∈ Rm×n的列秩是所有線性獨立的列的最大子集的大小。由於某些術語的濫用,列秩通常指矩陣A線性無關的列的數目。相似的,將A的行構成一個線性無關集,行秩是它行數的最大值。
對任意矩陣A ∈ Rm×n,其列秩與行秩是相等的(此處不證明),所以我們將兩個相等的秩統稱為A的的秩。秩的一些基本性質如下:
- 對於 A ∈ Rm×n, rank(A) ≤ min(m,n). 如果rank(A) = min(m,n), 則稱A滿秩。
- 對於 A ∈ Rm×n, rank(A) = rank(AT ).
- 對於 A ∈ Rm×n, B ∈ Rn×p, rank(AB) ≤ min(rank(A),rank(B)).
- 對於 A,B ∈ Rm×n, rank(A + B) ≤ rank(A) + rank(B).
3.7逆
矩陣A ∈ Rn×n的逆,寫作A−1,是一個矩陣,並且是唯一的。
A−1A = I = AA−1.
注意不是所有的矩陣都有逆。例如非方陣,是沒有逆的。然而,即便對於一些方陣,它仍有可能不存在逆。如果A−1存在,我們稱矩陣A 是可逆的或非奇異的,如果不存在,則稱矩陣A不可逆或奇異。
如果一個方陣A有逆A−1,它必須滿秩。我們很快可以看到,除了滿秩,矩陣可逆還有許多充分必要條件。
滿足以下的性質的矩陣可逆;以下所有敘述都假設A,B ∈ Rn×n是非奇異的:
- (A−1)−1 = A
- (AB)−1 = B−1A−1
- (A−1)T = (AT )−1. 因此這樣的矩陣經常寫作A−T
舉一個矩陣的逆的應用實例。對於線性方程組Ax = b,其中 A ∈ Rn×n,並且x,b ∈ Rn.如果A是非奇異(即可逆),則x = A−1b(如果A ∈ Rm×n不是方陣呢?是否成立?)
3.8 正交矩陣
如果xT y = 0,則兩個向量 x,y ∈ Rn是正交的。對於一個向量x ∈ Rn,如果
則是x歸一化的。對於一個方陣U ∈ Rn×n,如果所有列都是彼此正交和歸一化的,(列就稱為標准正交)則這個方陣是正交的(注意在討論向量或矩陣時,正交具有不同的含義)。
根據正交和歸一化的定義可得:
UT U = I = UUT
換言之,一個正交矩陣的逆矩陣的是它的轉置。注意,如果U不是方陣的,也就是說, U ∈ Rm×n,n < m,但它的列仍然是正交的,則UT U = I,但UUT ≠ I.等。我們一般只使用正交這個術語來描述U為方陣的情形。
另一個正交矩陣的很好的屬性是,向量與正交矩陣的運算將不會改變其歐氏范數,即對於任意x ∈ Rn,正交的U ∈ Rn×n:

3.9矩陣的值域和零空間
一組向量{x1,x2,...xn}的值域是{x1,x2,...xn}線性組合的所有向量的集合。即

可以看出如{x1,...,xn}是一組n個線性無關的向量,其中xi∈ Rn,則({x1,...xn}) 的值域= Rn。換句話說,任何向量v ∈ Rn可以寫成x1 至 xn的線性組合。向量y ∈ Rm 在值域 {x1,...,xn}上的投影 (假定 xi ∈ Rm) 是向量v ∈ span({x1,...xn}),則通過比較其歐式范數
,v 與 y無限接近。這個投影記作Proj(Y;{ x1,…,xn}),可以定義它為,

A ∈ Rm×n的值域(有時也被稱為列空間),表示為R(A),就是A的值域。換言之,
R(A) = {v ∈ Rm : v = Ax,x ∈ Rn}.
我們假設A滿秩且n < m,向量y ∈ Rm 在A值域上面的投影可以表示為

這最后一個方程應該看起來非常熟悉,因為它幾乎是我們在課上用於參數的最小二乘估計公式(並且我們可以快速再次推導出來)幾乎相同的。看一下投影的定義,你會發現這其實與我們在解決最小二乘法問題時進行最小化的目的是相同的(除了范數是一個平方,這並不影響求得最優的點),所以這些問題是有自然聯系的。當 A 僅含有1個單獨的列 a ∈ Rm,則出現了向量在一條直線上投影的特殊情況。

矩陣A ∈ Rm×n的零空間,記為N(A),是被A乘后,得到的所有等於0的向量一個集合,即,
N(A) = {x ∈ Rn : Ax = 0}.
注意,向量R(A)的大小為m,而N(A)的大小為n,所以 R(AT ) 和 N(A) 的向量都在 Rn中。事實上,我們可以討論更多。

換句話說,R(AT ) 和 N(A)是不相交的子集,一同跨越了Rn整個空間。這種類型的集合稱為正交互補,寫作R(AT ) = N(A)⊥.
3.10 行列式
方陣A∈Rn×n的行列式(determinant)是一個映射det: Rn×n→R,記作|A|或det A (同跡運算一樣,我們通常省略括號)。在代數上,可以顯式地寫出A的行列式的公式,但是很遺憾,它的意義不夠直觀。咱們先給出行列式的幾何解釋,然后再探討一下它的一些特殊的代數性質。
對於矩陣:

考慮由A中所有行向量a1,a2,..,an的所有可能線性組合組成的點集S⊂Rn,其中線性組合的參數都介於0和1之間;換句話說,由於這些線性組合的參數a1,a2,..,an∈Rn滿足0≦ai≦1,i=1,...,n,集合S是子空間({a1,a2,..,an})的約束。公式表達如下:

A的行列式的絕對值,是集合S的"體積"的一個量度。
例如,考慮2×2矩陣,

此處,矩陣的行:

對應於這些行的集合S如圖1所示。對於二維矩陣,S一般是平行四邊形。在我們的示例中A的行列式的值為|A| = -7.(可以使用本節后文將給出的公式來計算)。所以平行四邊形的面積為7(自行證明!)
在三維中,集合S對應一個平行六面體(一個三維的斜面的盒子,例如每一面都是平行四邊形)。這個3×3矩陣的行列式的絕對值,就是這個平行六面體的三維體積。在更高的維數中,集合S是一個n維超平形體。

圖 1 :公式(1)給出2×2矩陣A的行列式圖示。此處,a1和a2是對應於A中的行的向量,集合S對應於陰影區域(亦即平行四邊形)。行列式的絕對值,|det A|=7,是平行四邊形的面積
代數上,行列式滿足下列三個性質(其它性質亦遵循它,包括行列式的一般公式)
1、單位矩陣的行列式為1 ,|I| = 1。(從幾何上來看,單位超立方體的體積為1)。
2、對於一個矩陣A∈Rn×n,如果將A中某行乘以一個標量t∈R,新矩陣的行列式值為t|A|。

(幾何上,集合S的一條邊乘以因數t,會導致體積擴大t倍)
3、我們交換行列式A任意兩行aTi和aTj,新矩陣的行列式的值為-|A|,例如:

滿足上述三個條件的函數是否存在,並不是那么容易看出來的。然而事實上,此函數存在且唯一。(此處不證明)
這三個性質的推論包括:
- 對於 A ∈ Rn×n, |A| = |AT |。
- 對於 A,B ∈ Rn×n, |AB| = |A||B|。
- 對於 A ∈ Rn×n,當且僅當A奇異(即不可逆)時,|A| = 0。(如果A奇異,它必不滿秩,它的列線性相關。此時,集合S對應於n維空間中的一個平板,因此體積為零。)
- 對於A ∈ Rn×n,且A非奇異, |A-1| = 1/|A|.
在給出行列式的一般定義之前,我們定義代數余子式:對於A∈ Rn×n,矩陣A\i,\j ∈R(n-1)×(n-1)是A刪除i行和j列的結果。
行列式的一般(遞推)定義:

其中首項A∈ R1×1的行列式,|A| = a11。如果我們把公式推廣到A∈ Rn×n,會有n!(n的階乘)個不同的項。因此,我們很難顯式地寫出3階以上的矩陣的行列式的計算等式。
然而,3階以內的矩陣的行列式十分常用,大家最好把它們記住。

矩陣A∈ Rn×n的古典伴隨矩陣(通常簡稱為伴隨矩陣),記作adj(A),定義為:

(注意A的系數的正負變化。)可以證明,對於任意非奇異矩陣A∈ Rn×n,有

這個式子是求矩陣的逆的一個很好的顯示公式。大家要記住,這是一個計算矩陣的逆的一個更加高效的方法。
3.11 二次型和半正定矩陣
對於一個方陣A∈ Rn×n和一個向量x∈ Rn,標量xTAx被稱作一個二次型。顯式地寫出來,我們可以看到:

注意:

第一個等式是由標量的轉置等於它自身得到,第二個等式是由兩個相等的量的平均值相等得到。由此,我們可以推斷,只有對稱分量對二次型有影響。我們通常約定俗成地假設二次型中出現的矩陣是對稱矩陣。
我們給出如下定義:
• 對於任一非零向量x∈Rn,如果xTAx>0,那么這個對稱矩陣A∈Sn是正定(PD)的.通常記作A≻0,(或簡單地A>0),所有的正定矩陣集合記作Sn++。
• 對於任一非零向量x∈Rn,如果xTAx≧0,那么這個對稱矩陣A∈Sn是半正定(PSD)的。記作A≽0,(或簡單地A≧0),所有的半正定矩陣集合記作Sn+ 。
• 同樣的,對於任一非零向量x∈Rn,如果xTAx<0,那么這個對稱矩陣A∈Sn是負定(ND)的。記作A≺0,(或簡單地A<0)。
•對於任一非零向量x∈Rn,如果xTAx≤0,那么這個對稱矩陣A∈Sn是半負定(NSD)的.記作A≼0,(或簡單地A≤0)。
•最后,如果它既不是半正定也不是半負定-亦即,存在x1,x2∈Rn使得x1TAx1>0且x2TAx2<0,那么對稱矩陣A∈Sn是不定矩陣。
顯然,如果A是正定的,那么-A是負定的,反之亦然。同樣的,如果A是半正定的,那么-A是半負定的,反之亦然。如果A是不定的,-A也是不定矩陣。
正定矩陣和負定矩陣的一個重要性質是,它們一定是滿秩的。因此,也是可逆的。為了證明這個性質,假設存在矩陣A∈ Rn×n是不滿秩的。進而,假設A的第j列可以其它n-1列線性表示。

對於x1,...,xj−1, xj+1,...,xn ∈R,設xj=-1,我們有

但是這意味着對於某些非零向量x,xTAx=0,所以A既不能正定,也不能負定。因此,如果A是正定或者負定,它一定是滿秩的。
最后,一種常見的正定矩陣需要注意:給定一個矩陣A ∈Rm×n (不一定是對稱,甚至不一定是方陣),矩陣G=ATA(有時也稱為格拉姆矩陣)必然是半正定的。進一步,如果m≥n,(為了方便,我們假設A滿秩)此時,G=ATA是正定的。
3.12特征值和特征向量
對於一個方陣A ∈Rn×n,如果:

我們說λ∈C是A的特征值,x∈Cn是對應的特征向量.
直觀上看,其實上面的式子說的就是A乘一個向量x,得到的新的向量指向和x相同的方向,但是須乘一個標量λ。注意對任一個特征向量x∈Cn和標量t∈C,A(cx) = cAx = cλx = λ(cx),,所以cx也是一個特征向量。因此,我們要說λ所對應的特征向量。我們通常假設特征向量被標准化為長度1。(此時依然有歧義,因為x和-x都可以是特征向量,但是我們也沒什么辦法)。
如果

我們可以把上文的等式換一種寫法,表明(λ,x)是A的一個特征值-特征向量對。
但是當且僅當有非空零空間時,也就是當(λI − A)非奇異時,亦即

時,(λI − A)x = 0有x的非零解。
我們現在可以用前文的行列式的定義,來把這個表達式展開為一個(非常大的) λ的多項式,其中λ的最高階為n。我們可以解出多項式的n個根(這可能十分復雜),來得到n個特征值λ1, ...,λn。 為了解出特征值對應的特征向量,我們可以簡單地求線性等式(λiI − A)x = 0的解。需要注意,實際操作時,計算特征值和特征向量不用這個方法。(行列式的完全展開式有n!項)。這只是一個數學論證。
下面是特征值和特征向量的性質(假設A∈ Rn×n,且特征值λ1,...,λn對應的特征向量為x1,...,xn):
- 矩陣A的跡等於特征值的和

- A的行列式等於特征值的積

-
A的秩等於A的非零特征值的個數。
-
如果A是非奇異矩陣,則1/λi是矩陣A-1對應於特征向量xi的特征值。亦即,A−1xi = (1/λi)xi。(證明方法是,對於特征向量等式,Axi = λixi,在兩邊同時左乘A-1)
-
對角矩陣D=diag(d1, . . . ,dn)的特征值是所有的對角元素。
我們可以把所有的特征向量等式聯立為

X ∈Rn×n 的列是A的特征向量,∧是對角元素為A的特征值的對角矩陣。亦即:

如果A的特征向量線性無關,則矩陣X可逆,所以A=X∧X-1。可以寫成這個形式的矩陣A被稱作可對角化。
3.13 對稱矩陣的特征值和特征向量
當我們考察對稱矩陣A∈Sn的特征值和特征向量時,有兩個特別的性質需要注意。首先,可以證明,A的所有特征值都是實數。其次,A的所有特征向量時正交的。也就是說,上面所定義的矩陣X是正交矩陣。(我們把此時的特征向量矩陣記作U)。
接下來,我們可以將A表示為A=U∧UT,由上文知,一個正交矩陣的逆等於它的轉置。
由此,我們可以得到所有完全使用特征值來定義的矩陣。假設A∈Sn= U∧UT。有:

其中,y=UTx(由於U滿秩,任意y∈Rn可以表示為此形式。)由於yi2永遠為正,這個表達式完全依賴於λi。如果所有的λi>0,那么矩陣正定;如果所有的λi≥0,矩陣半正定。同樣的,如果所有的λi<0或λi≤0,矩陣A分別負定和半負定。最后,如果A既有正的特征值又有負的特征值,它是不定矩陣。
特征值和特征向量的一個常見的應用是找出矩陣的某個函數的最大值。例如,對於矩陣A∈Sn,考慮這個求最大值問題:

也就是說,我們希望找到使二次型最大的單位向量。假設特征值大小為λ1 ≥ λ2 ≥ . . . ≥ λn,這個最優化問題的最優解x為x1,對應的特征值為λ1.此時,二次型的最大值是λ1。相似的,最小值問題的最優解

是xn,對應的特征值是λn,那么最小值是λn。可以通過將A表示為特征向量-特征值的形式,然后使用正定矩陣的性質證明。然而,在下一節我們可以使用矩陣微積分直接證明它。
4矩陣微積分
之前章節的內容,在一般線性代數的課程中都會講到。而有些常用的內容是沒有的,這就是把微積分推廣到向量。事實上,我們應用的微積分都會比較繁瑣,各種符號總是讓問題變得更復雜。在本節中,將給出一些矩陣微積分的基本定義,並舉例說明。
4.1梯度
設ƒ:Rm×n→R是大小為m×n的矩陣A的函數,且返回值為實數。ƒ的梯度(關於A∈Rm×n)是一個偏導矩陣,定義如下:

即,一個m×n矩陣,其中

注意∇Af(A)和A有相同的大小。所以,特別的,當A是一個向量x∈Rn時,

需要特別記住的是,函數的梯度只在函數值為實數的時候有定義。也就是說,函數一定要返回一個標量。例如,我們就不能對Ax,A∈Rn×n中的x求梯度,因為它是一個向量。
它遵循和偏導相同的性質:

原則上,梯度是多變量函數偏導的延伸。然而,實際應用梯度時,會因為數學符號而變得棘手。例如,假設A∈Rm×n是一個具有固定系數的矩陣,b∈Rm是一個固定系數的向量。令ƒ :Rm→R為由ƒ(z)=zTz,因此∇zf(z) =2z。現在,考慮表達式;
∇f(Ax)
上式該如何理解?至少有兩種解釋:
-
解釋一,因∇f(Ax). = 2z,所以可將∇f(Ax).理解為點Ax處的梯度,那么:
∇f(Ax) = 2(Ax) = 2Ax ∈ Rm
解釋二,可以認為f(Ax)是關於變量x的函數。正式的表述為,令g(x) = f(Ax)。那么在此種解釋下有:
∇f(Ax) = ∇xg(x) ∈ Rn
大家可以發現,這兩種解釋確實不同。解釋一得出的結果是m維向量,而解釋二得出n維向量!怎么辦?
這里的關鍵是確定對哪個變量求微分。在第一種情況下,是讓函數f對參數z求微分,然后代入參數Ax。第二種情況,是讓復合函數g(x)= F(AX)與直接對x求微分。第一種情況記為∇zf(AX),第二種情況記為∇xf(AX)。你會在作業中發現,理清數學符號是非常重要的。
4.2Hessian矩陣
假設 ƒ :Rn→R 是n維向量A的的函數,並返回一個實數。那么x的Hessian矩陣是偏導數的n×n矩陣,寫作∇2xf(x),簡記為H。

換句話說,∇2xf(x) ∈ Rn×n ,其中:

需要注意的是Hessian矩陣始終是對稱的,即:

和梯度類似,Hessian矩陣只在f(x)為實數時有定義。
可以很自然聯想到,偏導類似於函數的一階導數,而Hessian類似函數的的二階導數(我們使用的符號,也表明了這種聯系)。通常這種直覺是正確的,但有些注意事項需要牢記。
首先,只有一個變量的實值函數,f : R→R,它的基本定義是二階導數是一階導數的導數,即:

然而,對於關於向量的函數,該函數的梯度是一個向量,我們不能取向量的梯度,即;

並且這個表達式沒有定義。因此,不能說Hessian矩陣是梯度的梯度。然而,在下面的意義上比較靠譜:如果我們取第i項(∇xf(X))i =∂F(X)/∂xi,並取對x的梯度,我們得到:

這是Hessian矩陣的第i列(或行)。 因此:

如果此處稍粗略一點,可以得出
,只要將其真實的含義理解為對 (∇xf(x))的每一項求梯度,而不是對向量求梯度即可。
最后注意,雖然可求出對矩陣A∈Rn的梯度,但在本課程中,將只考慮向量x∈Rn的Hessian矩陣。這僅僅是為了方便起見(而事實上,沒有計算需要求矩陣的Hessian矩陣),因為矩陣的Hessian矩陣必須表示為所有的偏導數∂2f(A)/(∂Aij∂Akℓ),而要表示為矩陣卻相當麻煩。
4.3 二次函數或線性函數的梯度和Hessian矩陣
現在,讓我們確定一些簡單函數的梯度和Hessian矩陣。應當指出的是,這里給出的所有的梯度都是在CS229講義給出的特殊情況。
當x∈Rn,對於已知向量b∈Rn,令f(X)= bT x。 得:

因此

由此不難看出,∇xbT x= b。這是與單變量微積分類似的情況,其中,∂/(∂x)aX =a。
現在考慮二次函數f(x)= xTAx ,A∈Sn。注意到:

求其偏導數,分別考慮包含Xk和xk2因子的項:

其中最后一個等式是因為A是對稱的(完全可以假設,因為它是二次型)。注意,∇xf(x)的第k項只是A的第k行和x的內積。因此,∇xxTAx=2AX。同樣,與單變量微積分類似,即∂/(∂x) ax2= 2aX。
最后,再看二次函數f(X)= xTAx的Hessian矩陣(顯然,線性函數bT x的Hessian矩陣為零)。 在這種情況下,

因此,應當清楚的是∇x2xTAx=2A,這完全是可證明的(並再次類似於單變量的情況∂2/(∂x2) ax2 = 2a)。
總之:
∇xbT x = b
∇xxTAx = 2Ax ( A 為對稱矩陣)
∇x2xTAx = 2A ( A 為對稱矩陣)
4.4最小二乘法
這里將用最后一節得到的公式推導最小二乘方程。假設對矩陣A∈Rm×n(為簡單起見,假定A是滿秩)和向量b∈Rm ,使得b******R(A)。在這種情況下,無法找到一個向量x∈Rn,使得Ax = b。退一步,我們找一個向量x∈Rn,使得Ax是盡可能接近b,即歐氏范數||Ax - b||22。
且知||x||22=xTx,有:

取對已有x的梯度,並使用上一節推出的性質

讓最后一個表達式等於零,並求解X滿足的標准方程

這正和我們課上推導的一樣。
4.5行列式的梯度
現在考慮一種情況,求函數對矩陣的梯度,即對A∈Rn×n,求∇A| A |。回顧之前關於行列式的討論:

因此:

根據伴隨矩陣的性質,可立即得出:

現在,考慮函數f : Sn ++ → R, f(A) = log |A|,需要注意的是,一定要限制f的域是正定矩陣,因為這將確保| A | >0,這樣log| A |是一個實數。在這種情況下,我們可以使用鏈式法則(很簡單,只是單變量微積分的普通鏈式法則)得出:

那么,很顯然:

此處,在最后一個表達式中去掉了轉置符,因為A是對稱的。注意當∂/(∂x) log x = 1/x時,和單值情況相似。
4.6最優化特征值
最后,通過直接分析特征值/特征向量,用矩陣微積分來解決一個優化問題。接下來,考慮等式約束優化問題:

對於一個對稱矩陣A ∈ Sn,解決等式約束優化問題的標准方法是構造拉格朗日(一個包括等式約束的目標函數)。這種情況下的拉格朗日可由下式給出:

其中λ被稱為與等式約束對應的拉格朗日乘子。對這問題可以找到一個x的最佳點,讓拉格朗日的梯度在x上為零(這不是唯一的條件,但它是必需的)。 即:

注意,這其實是線性方程組Ax =λx。這表明,假設xT x = 1,使xT Ax最大化或(或最小化)的唯一的點正是A的特征向量。
references:
【轉載】線性代數基礎知識 - Blue妞 - 博客園 (cnblogs.com)
http://blog.csdn.net/longxinchen_ml/article/details/51629328
http://blog.csdn.net/han_xiaoyang/article/details/51629242
http://blog.csdn.net/longxinchen_ml/article/details/51629328
聲明:版權所有,轉載請聯系作者並注明出處
