作者:Zico Kolter
出處:http://blog.csdn.net/longxinchen_ml/article/details/51629328
1 基本概念和符號(hào)
線性代數(shù)可以對(duì)一組線性方程進(jìn)行簡(jiǎn)潔地表示和運(yùn)算。例如,對(duì)于這個(gè)方程組:
這里有兩個(gè)方程和兩個(gè)變量,如果你學(xué)過(guò)高中代數(shù)的話,你肯定知道,可以為x1 和x2找到一組唯一的解 (除非方程可以進(jìn)一步簡(jiǎn)化,例如,如果第二個(gè)方程只是第一個(gè)方程的倍數(shù)形式。但是顯然上面的例子不可簡(jiǎn)化,是有唯一解的)。在矩陣表達(dá)中,我們可以簡(jiǎn)潔的寫(xiě)作:
其中:
很快我們將會(huì)看到,咱們把方程表示成這種形式,在分析線性方程方面有很多優(yōu)勢(shì)(包括明顯地節(jié)省空間)。
以下是我們要使用符號(hào):
符號(hào)A ∈ Rm×n表示一個(gè)m行n列的矩陣,并且矩陣A中的所有元素都是實(shí)數(shù)。
符號(hào)x ∈ Rn表示一個(gè)含有n個(gè)元素的向量。通常,我們把n維向量看成是一個(gè)n行1列矩陣,即列向量。如果我們想表示一個(gè)行向量(1行n列矩陣),我們通常寫(xiě)作xT (xT表示x的轉(zhuǎn)置,后面會(huì)解釋它的定義)。
一個(gè)向量x的第i個(gè)元素表示為xi:
我們用aij (或Aij,Ai,j,等) 表示第i行第j列的元素:
我們用aj 或A:,j表示A矩陣的第j列元素:
我們用aT i或 Ai,:表示矩陣的第i行元素:
請(qǐng)注意,這些定義都是不嚴(yán)格的(例如,a1和a1T在前面的定義中是兩個(gè)不同向量)。通常使用中,符號(hào)的含義應(yīng)該是可以明顯看出來(lái)的。
矩陣 A ∈ Rm×n 和B ∈ Rn×p 的乘積為矩陣 :
其中:
.
請(qǐng)注意,矩陣A的列數(shù)應(yīng)該與矩陣B的行數(shù)相等,這樣才存在矩陣的乘積。有很多種方式可以幫助我們理解矩陣乘法,這里我們將通過(guò)一些例子開(kāi)始學(xué)習(xí)。
給定兩個(gè)向量x,y ∈ Rn,那么xT y的值,我們稱(chēng)之為向量的內(nèi)積或點(diǎn)積。它是一個(gè)由下式得到的實(shí)數(shù):
可以發(fā)現(xiàn),內(nèi)積實(shí)際上是矩陣乘法的一個(gè)特例。通常情況下xT y = yT x。
對(duì)于向量x ∈ Rm, y ∈ Rn(大小不必相同),xyT ∈ Rm×n稱(chēng)為向量的外積。外積是一個(gè)矩陣,其中中的每個(gè)元素,都可以由
我們舉個(gè)例子說(shuō)明外積有什么用。令1 ∈ Rn 表示所有元素都是1的n維向量,然后將矩陣 A ∈ Rm×n 的每一列都用列向量x ∈ Rm表示。使用外積,我們可以將A簡(jiǎn)潔的表示為:
對(duì)于一個(gè)矩陣A ∈ Rm×n 和向量x ∈ Rn,他們的乘積為向量 y = Ax ∈ Rm。理解矩陣向量乘法的方式有很多種,我們一起來(lái)逐一看看。
以行的形式書(shū)寫(xiě)A,我們可以將其表示為Ax的形式:
也就是說(shuō),y第i行的元素等于A的第i行與x的內(nèi)積
咱們換個(gè)角度,以列的形式表示A,我們可以看到:
換言之,y是A列的線性組合,線性組合的系數(shù)就是x的元素。
上面我們看到的是右乘一個(gè)列向量,那左乘一個(gè)行向量嘞?對(duì)于A ∈ Rm×n,x ∈ Rm, y ∈ Rn,這個(gè)式子可以寫(xiě)成yT = xT A 。向之前那樣,我們有兩種方式表達(dá)yT,這取決于表達(dá)A的方式是行還是列。第一種情況是把A以列的形式表示:
這個(gè)式子說(shuō)明yT 第i列的元素等于向量x與A的第i列的內(nèi)積。
我們也一樣可以把A表示成行的形式,來(lái)說(shuō)明向量-矩陣乘積。
我們可以看到yT 是A的行的線性組合,線性組合的系數(shù)是x的元素。
基于以上知識(shí),我們可以看到如之前所定義的矩陣-矩陣乘法C=AB有四種不同(但是等價(jià))的理解方法。
首先,我們可以將矩陣-矩陣相乘看作一組向量-向量乘積。根據(jù)其概念,我們最好理解的方式是矩陣C的(i,j)元素是A的i行與B的 j列的內(nèi)積。符號(hào)表達(dá)如下:
注意由于A ∈ Rm×n , B ∈ Rn×p, ai ∈ Rn bj ∈ Rn, 所以?xún)?nèi)積永遠(yuǎn)有意義。對(duì)矩陣乘法而言,以A的行和B的列表示是最'自然'的表示方法。當(dāng)然,我們也可以以A的列和B的行的形式進(jìn)行表示。表達(dá)方法是AB外積累加的形式,稍微復(fù)雜一點(diǎn)點(diǎn)。符號(hào)表達(dá)為:
換一種方式表達(dá),AB的值等于對(duì)于所有的i,A的i列與B的i行的外積的和。因此,對(duì)于ai ∈ Rm 和 bi ∈ Rp,外積aibiT的維度是m×p,它與C的維度是相同的。等式可能有點(diǎn)難理解,花點(diǎn)時(shí)間想想,我猜你肯定能明白。
第二種理解方式是,我們也可將向量-向量乘法看做一系列的矩陣-向量乘積。具體來(lái)說(shuō),如果我們將B以列的形式表示,我們可以將C的每一列看做A和B列的矩陣-向量乘積。符號(hào)表達(dá)為:
可以將C的i列以矩陣-向量乘積(向量在右)的方式表示為ci = Abi. 這些矩陣-向量乘積可以用前面的兩種觀點(diǎn)解釋。最后類(lèi)比一下,我們以A的行形式表示,將C的行視為A的行與C的矩陣-向量乘積,符號(hào)表達(dá)為
在此,我們以矩陣-向量乘積(向量左乘)的形式表示了C的i列,
只是一個(gè)矩陣乘法而已,這么細(xì)的分析看上去好像沒(méi)有必要,尤其是當(dāng)我們知道矩陣乘法定義后其實(shí)很容易可以計(jì)算得到結(jié)果。然而,幾乎所有的線性代數(shù)內(nèi)容都在處理某種類(lèi)型的矩陣乘法,因此花一些時(shí)間去形成對(duì)這些結(jié)論的直觀認(rèn)識(shí)還是很有幫助的。
此外,知道一些更高層次的矩陣乘法的基本性質(zhì)也是有好處的:
結(jié)合律即(AB)C = A(BC)
分配率即A(B + C) = AB + AC
注意哦,矩陣乘法沒(méi)有交換律,即AB ≠BA.(例如,如果A ∈ Rm×n 和B ∈ Rn×q,矩陣的乘積BA在m和q不等時(shí),BA可能根本就不存在)
如果你對(duì)這些性質(zhì)不熟悉,最好花些時(shí)間自己證明一下。例如,為了驗(yàn)證矩陣乘法的結(jié)合律,對(duì)于A ∈ Rm×n, B ∈ Rn×p,C ∈ Rp×q,注意AB ∈ Rm×p,而 (AB)C ∈ Rm×q。類(lèi)似的有BC ∈ Rn×q,所以A(BC) ∈ Rm×q。因此可以得到維度相同的矩陣。為了說(shuō)明矩陣乘法符合結(jié)合律,證明(AB)C 第(i,j)個(gè)元素是否與A(BC)的(i,j)個(gè)元素相等就夠了。我們可以直接運(yùn)用矩陣乘法的定義進(jìn)行證明。
上面的推導(dǎo)過(guò)程中,第一個(gè)和最后兩個(gè)等式使用矩陣乘法的定義,第三和第五的等式使用標(biāo)量乘法的分配率,第四個(gè)等式使用了標(biāo)量加法的交換律和結(jié)合律。這種將運(yùn)算簡(jiǎn)化成標(biāo)量的特性以證明矩陣性質(zhì)的方法會(huì)經(jīng)常出現(xiàn),你可以熟悉熟悉它們。
在這一節(jié)中,我們將介紹幾種矩陣/向量的運(yùn)算和性質(zhì)。很希望這些內(nèi)容可以幫助你回顧以前知識(shí),這些筆記僅僅是作為上述問(wèn)題的一個(gè)參考。
單位矩陣,記作I ∈ Rn×n, 是一個(gè)方陣,其對(duì)角線上的都是1,其他元素都是0。即:
它具備A ∈ Rm×n矩陣的所有性質(zhì)
請(qǐng)注意,在某種意義上,標(biāo)識(shí)矩陣的符號(hào)是有歧義的,因?yàn)樗鼪](méi)有指定I的維度。一般而言,從上下文中可以推斷出I的維度,這個(gè)維度使矩陣相乘成為可能。例如,在上面的等式AI = A中的I是n × n矩陣,而A = IA中 I是m × m矩陣。
對(duì)角矩陣除了對(duì)角線元素之外其他元素都是0??梢杂涀?em>D = diag(d1,d2,...,dn),其中:
顯然,I = diag(1,1,...,1).
矩陣的轉(zhuǎn)置的是矩陣行和列的'翻轉(zhuǎn)'。對(duì)于一個(gè)矩陣A ∈ Rm×n,,它的轉(zhuǎn)置,AT ∈ Rn×m,是一個(gè)n × m 的矩陣,其元素為
我們實(shí)際上已經(jīng)使用轉(zhuǎn)置當(dāng)描述行向量的轉(zhuǎn)置,因?yàn)橐粋€(gè)列向量的轉(zhuǎn)置,自然是一個(gè)行向量。
下面是一些關(guān)于轉(zhuǎn)置的性質(zhì),證明起來(lái)也不太難:
(AT )T = A
(AB)T = BT AT
(A + B)T = AT + BT
如果一個(gè)方陣A∈ Rn×n滿(mǎn)足條件A = AT,那么它就是對(duì)稱(chēng)的。如果滿(mǎn)足A = ?AT則A是反對(duì)稱(chēng)的。很容易證明,任何矩陣A ∈ Rn×n,A + AT 是對(duì)稱(chēng)的,而 A?AT是反對(duì)稱(chēng)的。因此,任何方陣A ∈ Rn×n可以表示為一個(gè)對(duì)稱(chēng)矩陣和反對(duì)稱(chēng)矩陣的和,因?yàn)?
右邊的第一個(gè)矩陣是對(duì)稱(chēng)的,第二個(gè)是反對(duì)稱(chēng)的。在實(shí)踐中,對(duì)稱(chēng)矩陣是很常用的,他們有諸多優(yōu)秀的性質(zhì),我們將在以后進(jìn)行說(shuō)明。我們通常將所有大小為n的對(duì)稱(chēng)矩陣的集合表示為Sn;A ∈ Sn則表示A是n × n的對(duì)稱(chēng)矩陣。
方陣A ∈ Rn×n的跡,記作tr(A),或可以省略括號(hào)表示成trA,是矩陣的對(duì)角線元素之和:
正如cs229講義中所述,矩陣的跡具有以下性質(zhì)(在此講述完全是為了內(nèi)容的完整性):
對(duì)于A ∈ Rn×n, trA = trAT .
對(duì)于A,B ∈ Rn×n, tr(A + B) = trA + trB.
對(duì)于A ∈ Rn×n, t ∈ R, tr(tA) = t trA.
對(duì)于方陣A,B,C,trABC = trBCA = trCAB,即使有更多的矩陣相乘,這個(gè)性質(zhì)也不變.
前三個(gè)性質(zhì)比較容易證明,咱們一起來(lái)看看第4個(gè)性質(zhì)。假設(shè)A ∈ Rm×n ,B ∈ Rn×m (因此AB ∈ Rm×m是個(gè)方陣)。觀察到BA ∈ Rn×n也是一個(gè)方陣,所以他的跡是有意義的。為了證明trAB = trBA,注意到:
在這里,第一個(gè)和最后兩個(gè)等式使用了跡運(yùn)算和矩陣乘法的定義。第四個(gè)等式是最重要的部分,它使用了標(biāo)量乘法的交換性來(lái)交換每個(gè)乘積中因式順序,也使用了標(biāo)量加法的交換律和結(jié)合律將求和過(guò)程重新排序。
向量的范數(shù)
注意
更正式的來(lái)講,范數(shù)是滿(mǎn)足以下4個(gè)特性的任何一個(gè)方程f : Rn → R:
對(duì)于任意x ∈ Rn, f(x) ≥ 0 (非負(fù)性).
當(dāng)且僅當(dāng)x = 0 時(shí),f(x) = 0(確定性).
對(duì)于任意x ∈ Rn,t∈ R,f(tx) = |t|f(x) (均勻性).
對(duì)于任意 x,y∈Rn,f(x + y)≤f(x) + f(y) (三角不等性).
另一個(gè)范數(shù)的例子是1范數(shù),
以及∞范數(shù),
事實(shí)上,這三個(gè)范數(shù)都是?P范數(shù)家族的的例子,它包含一個(gè)實(shí)參數(shù)p≥1。?P范數(shù)定義為:
也可以定義矩陣A的范數(shù),如Frobenius范數(shù),
也存在許多其他的范數(shù),但它們超出了這篇綜述討論的范圍。
對(duì)于一組向量{x1,x2,...xn} ∈ Rm,如果沒(méi)有向量可以表示為其余向量的線性組合,這組向量就是(線性)無(wú)關(guān)的。相反,如果一個(gè)向量屬于一個(gè)集合,這個(gè)集合中的向量可以表示為其余的向量某個(gè)線性組合,那么就稱(chēng)其稱(chēng)為向量(線性)相關(guān)。也就是說(shuō),對(duì)于一些標(biāo)量值α1,...,αn1 ∈ R,如果
我們說(shuō)向量x1,...,xn是線性相關(guān);否則,該向量線性無(wú)關(guān)。例如,向量
是線性相關(guān)的,因?yàn)?em>x3 = ?2x1 + x2.
矩陣A ∈ Rm×n的列秩是所有線性獨(dú)立的列的最大子集的大小。由于某些術(shù)語(yǔ)的濫用,列秩通常指矩陣A線性無(wú)關(guān)的列的數(shù)目。相似的,將A的行構(gòu)成一個(gè)線性無(wú)關(guān)集,行秩是它行數(shù)的最大值。
對(duì)任意矩陣A ∈ Rm×n,其列秩與行秩是相等的(雖然我們不打算證明),所以我們將兩個(gè)相等的秩統(tǒng)稱(chēng)為A的的秩。秩的一些基本性質(zhì)如下:
對(duì)于 A ∈ Rm×n, rank(A) ≤ min(m,n). 如果rank(A) = min(m,n), 則稱(chēng)A滿(mǎn)秩。
對(duì)于 A ∈ Rm×n, rank(A) = rank(AT ).
對(duì)于 A ∈ Rm×n, B ∈ Rn×p, rank(AB) ≤ min(rank(A),rank(B)).
對(duì)于 A,B ∈ Rm×n, rank(A + B) ≤ rank(A) + rank(B).
矩陣A ∈ Rn×n的逆,寫(xiě)作A1,是一個(gè)矩陣,并且是唯一的。
A1A = I = AA1.
注意不是所有的矩陣都有逆。例如非方陣,是沒(méi)有逆的。然而,即便對(duì)于一些方陣,它仍有可能不存在逆。如果A1存在,我們稱(chēng)矩陣A 是可逆的或非奇異的,如果不存在,則稱(chēng)矩陣A不可逆或奇異。
如果一個(gè)方陣A有逆A1,它必須滿(mǎn)秩。我們很快可以看到,除了滿(mǎn)秩,矩陣可逆還有許多充分必要條件。
滿(mǎn)足以下的性質(zhì)的矩陣可逆;以下所有敘述都假設(shè)A,B ∈ Rn×n是非奇異的:
(A1)1 = A
(AB)1 = B1A1
(A1)T = (AT )1. 因此這樣的矩陣經(jīng)常寫(xiě)作AT
舉一個(gè)矩陣的逆的應(yīng)用實(shí)例。對(duì)于線性方程組Ax = b,其中 A ∈ Rn×n,并且x,b ∈ Rn.如果A是非奇異(即可逆),則x = A1b(如果A ∈ Rm×n不是方陣呢?是否成立?)
如果xT y = 0,則兩個(gè)向量 x,y ∈ Rn是正交的。對(duì)于一個(gè)向量x ∈ Rn,如果
根據(jù)正交和歸一化的定義可得:
UT U = I = UUT
換言之,一個(gè)正交矩陣的逆矩陣的是它的轉(zhuǎn)置。注意,如果U不是方陣的,也就是說(shuō), U ∈ Rm×n,n <>,但它的列仍然是正交的,則UT U = I,但UUT ≠ I.等。我們一般只使用正交這個(gè)術(shù)語(yǔ)來(lái)描述U為方陣的情形。
另一個(gè)正交矩陣的很好的屬性是,向量與正交矩陣的運(yùn)算將不會(huì)改變其歐氏范數(shù),即對(duì)于任意x ∈ Rn,正交的U ∈ Rn×n:
一組向量{x1,x2,...xn}的值域是{x1,x2,...xn}線性組合的所有向量的集合。即
可以看出如{x1,...,xn}是一組n個(gè)線性無(wú)關(guān)的向量,其中xi ∈ Rn,則({x1,...xn}) 的值域= Rn。換句話說(shuō),任何向量v ∈ Rn可以寫(xiě)成x1 至 xn的線性組合。向量y ∈ Rm 在值域 {x1,...,xn}上的投影 (假定 xi ∈ Rm) 是向量v ∈ span({x1,...xn}),則通過(guò)比較其歐式范數(shù)
A ∈ Rm×n的值域(有時(shí)也被稱(chēng)為列空間),表示為R(A),就是A的值域。換言之,
R(A) = {v ∈ Rm : v = Ax,x ∈ Rn}.
我們假設(shè)A滿(mǎn)秩且n <>,向量y ∈ Rm 在A值域上面的投影可以表示為
這最后一個(gè)方程應(yīng)該看起來(lái)非常熟悉,因?yàn)樗鼛缀跏俏覀冊(cè)谡n上用于參數(shù)的最小二乘估計(jì)公式(并且我們可以快速再次推導(dǎo)出來(lái))幾乎相同的。看一下投影的定義,你會(huì)發(fā)現(xiàn)這其實(shí)與我們?cè)诮鉀Q最小二乘法問(wèn)題時(shí)進(jìn)行最小化的目的是相同的(除了范數(shù)是一個(gè)平方,這并不影響求得最優(yōu)的點(diǎn)),所以這些問(wèn)題是有自然聯(lián)系的。當(dāng) A 僅含有1個(gè)單獨(dú)的列 a ∈ Rm,則出現(xiàn)了向量在一條直線上投影的特殊情況。
矩陣A ∈ Rm×n的零空間,記為N(A),是被A乘后,得到的所有等于0的向量一個(gè)集合,即,
N(A) = {x ∈ Rn : Ax = 0}.
注意,向量R(A)的大小為m,而N(A)的大小為n,所以 R(AT ) 和 N(A) 的向量都在 Rn中。事實(shí)上,我們可以討論更多。
換句話說(shuō),R(AT ) 和 N(A)是不相交的子集,一同跨越了Rn整個(gè)空間。這種類(lèi)型的集合稱(chēng)為正交互補(bǔ),寫(xiě)作R(AT ) = N(A)⊥.
方陣A∈Rn×n的行列式是一個(gè)映射det: Rn×n→R,記作|A|或det A (同跡運(yùn)算一樣,我們通常省略括號(hào))。在代數(shù)上,可以顯式地寫(xiě)出A的行列式的公式,但是很遺憾,它的意義不夠直觀。咱們先給出行列式的幾何解釋?zhuān)?/span>然后再探討一下它的一些特殊的代數(shù)性質(zhì)。
對(duì)于矩陣:
考慮由A中所有行向量a1,a2,..,an的所有可能線性組合組成的點(diǎn)集S?Rn,其中線性組合的參數(shù)都介于0和1之間;換句話說(shuō),由于這些線性組合的參數(shù)a1,a2,...,an∈Rn滿(mǎn)足0≦ai≦1,i=1,...,n,集合S是張成子空間({a1, . . , an})的約束。公式表達(dá)如下:
A的行列式的絕對(duì)值,是集合S的'體積'的一個(gè)量度。
例如,考慮2×2矩陣,
此處,矩陣的行:
對(duì)應(yīng)于這些行的集合S如圖1所示。對(duì)于二維矩陣,S一般是平行四邊形。在我們的示例中A的行列式的值為|A| = -7.(可以使用本節(jié)后文將給出的公式來(lái)計(jì)算)。所以平行四邊形的面積為7(自行證明?。?/span>
在三維中,集合S對(duì)應(yīng)一個(gè)平行六面體(一個(gè)三維的斜面的盒子,例如每一面都是平行四邊形)。這個(gè)3×3矩陣的行列式的絕對(duì)值,就是這個(gè)平行六面體的三維體積。在更高的維數(shù)中,集合S是一個(gè)n維超平形體。
圖 1 :公式(1)給出2×2矩陣A的行列式圖示。此處,a1和a2是對(duì)應(yīng)于A中的行的向量,集合S對(duì)應(yīng)于陰影區(qū)域(亦即平行四邊形)。行列式的絕對(duì)值,|det A|=7,是平行四邊形的面積
代數(shù)上,行列式滿(mǎn)足下列三個(gè)性質(zhì)(其它性質(zhì)亦遵循它,包括行列式的一般公式)
1、單位矩陣的行列式為1 ,|I| = 1。(從幾何上來(lái)看,單位超立方體的體積為1)。
2、對(duì)于一個(gè)矩陣A∈Rn×n,如果將A中某行乘以一個(gè)標(biāo)量t∈R,新矩陣的行列式值為t|A|。
(幾何上,集合S的一條邊乘以因數(shù)t,會(huì)導(dǎo)致體積擴(kuò)大t倍)
3、我們交換行列式A任意兩行aTi和aTj,新矩陣的行列式的值為-|A|,例如:
滿(mǎn)足上述三個(gè)條件的函數(shù)是否存在,并不是那么容易看出來(lái)的。然而事實(shí)上,此函數(shù)存在且唯一。(此處不證明)
這三個(gè)性質(zhì)的推論包括:
對(duì)于 A ∈ Rn×n, |A| = |AT |。
對(duì)于 A,B ∈ Rn×n, |AB| = |A||B|。
對(duì)于 A ∈ Rn×n,當(dāng)且僅當(dāng)A奇異(即不可逆)時(shí),|A| = 0。(如果A奇異,它必不滿(mǎn)秩,它的列線性相關(guān)。此時(shí),集合S對(duì)應(yīng)于n維空間中的一個(gè)平板,因此體積為零。)
對(duì)于A ∈ Rn×n,且A非奇異, |A-1| = 1/|A|.
在給出行列式的一般定義之前,我們定義代數(shù)余子式:對(duì)于A∈ Rn×n,矩陣A\i,\j ∈R(n-1)×(n-1)是A刪除i行和j列的結(jié)果。
行列式的一般(遞推)定義:
其中首項(xiàng)A∈ R1×1的行列式,|A| = a11。如果我們把公式推廣到A∈ Rn×n,會(huì)有n?。╪的階乘)個(gè)不同的項(xiàng)。因此,我們很難顯式地寫(xiě)出3階以上的矩陣的行列式的計(jì)算等式。
然而,3階以?xún)?nèi)的矩陣的行列式十分常用,大家最好把它們記住。
矩陣A∈ Rn×n的古典伴隨矩陣(通常簡(jiǎn)稱(chēng)為伴隨矩陣),記作adj(A),定義為:
(注意A的系數(shù)的正負(fù)變化。)可以證明,對(duì)于任意非奇異矩陣A∈ Rn×n,有
這個(gè)式子是求矩陣的逆的一個(gè)很好的顯示公式。大家要記住,這是一個(gè)計(jì)算矩陣的逆的一個(gè)更加高效的方法。
對(duì)于一個(gè)方陣A∈ Rn×n和一個(gè)向量x∈ Rn,標(biāo)量xTAx被稱(chēng)作一個(gè)二次型。顯式地寫(xiě)出來(lái),我們可以看到:
注意:
第一個(gè)等式是由標(biāo)量的轉(zhuǎn)置等于它自身得到,第二個(gè)等式是由兩個(gè)相等的量的平均值相等得到。由此,我們可以推斷,只有對(duì)稱(chēng)分量對(duì)二次型有影響。我們通常約定俗成地假設(shè)二次型中出現(xiàn)的矩陣是對(duì)稱(chēng)矩陣。
我們給出如下定義:
· 對(duì)于任一非零向量x∈Rn,如果xTAx>0,那么這個(gè)對(duì)稱(chēng)矩陣A∈Sn是正定(PD)的.通常記作A?0,(或簡(jiǎn)單地A>0),所有的正定矩陣集合記作Sn++。
· 對(duì)于任一非零向量x∈Rn,如果xTAx≧0,那么這個(gè)對(duì)稱(chēng)矩陣A∈Sn是半正定(PSD)的。記作A?0,(或簡(jiǎn)單地A≧0),所有的半正定矩陣集合記作Sn+ 。
· 同樣的,對(duì)于任一非零向量x∈Rn,如果xTAx<0,那么這個(gè)對(duì)稱(chēng)矩陣A∈Sn是負(fù)定(ND)的。記作A?0,(或簡(jiǎn)單地A<0)。
·對(duì)于任一非零向量x∈Rn,如果xTAx≤0,那么這個(gè)對(duì)稱(chēng)矩陣A∈Sn是半負(fù)定(NSD)的.記作A?0,(或簡(jiǎn)單地A≤0)。
·最后,如果它既不是半正定也不是半負(fù)定-亦即,存在x1,x2∈Rn使得x1TAx1>0且x2TAx2<>那么對(duì)稱(chēng)矩陣A∈Sn是不定矩陣。
顯然,如果A是正定的,那么-A是負(fù)定的,反之亦然。同樣的,如果A是半正定的,那么-A是半負(fù)定的,反之亦然。如果A是不定的,-A也是不定矩陣。
正定矩陣和負(fù)定矩陣的一個(gè)重要性質(zhì)是,它們一定是滿(mǎn)秩的。因此,也是可逆的。為了證明這個(gè)性質(zhì),假設(shè)存在矩陣A∈ Rn×n是不滿(mǎn)秩的。進(jìn)而,假設(shè)A的第j列可以其它n-1列線性表示。
對(duì)于x1,...,xj?1, xj+1,...,xn ∈R,設(shè)xj=-1,我們有
但是這意味著對(duì)于某些非零向量x,xTAx=0,所以A既不能正定,也不能負(fù)定。因此,如果A是正定或者負(fù)定,它一定是滿(mǎn)秩的。
最后,一種常見(jiàn)的正定矩陣需要注意:給定一個(gè)矩陣A ∈Rm×n (不一定是對(duì)稱(chēng),甚至不一定是方陣),矩陣G=ATA(有時(shí)也稱(chēng)為格拉姆矩陣)必然是半正定的。進(jìn)一步,如果m≥n,(為了方便,我們假設(shè)A滿(mǎn)秩)此時(shí),G=ATA是正定的。
對(duì)于一個(gè)方陣A ∈Rn×n,如果:
我們說(shuō)λ∈C是A的特征值,x∈Cn是對(duì)應(yīng)的特征向量.
直觀上看,其實(shí)上面的式子說(shuō)的就是A乘一個(gè)向量x,得到的新的向量指向和x相同的方向,但是須乘一個(gè)標(biāo)量λ。注意對(duì)任一個(gè)特征向量x∈Cn和標(biāo)量t∈C,A(cx) = cAx = cλx = λ(cx),,所以cx也是一個(gè)特征向量。因此,我們要說(shuō)λ所對(duì)應(yīng)的特征向量。我們通常假設(shè)特征向量被標(biāo)準(zhǔn)化為長(zhǎng)度1。(此時(shí)依然有歧義,因?yàn)閤和-x都可以是特征向量,但是我們也沒(méi)什么辦法)。
如果
我們可以把上文的等式換一種寫(xiě)法,表明(λ,x)是A的一個(gè)特征值-特征向量對(duì)。
但是當(dāng)且僅當(dāng)有非空零空間時(shí),也就是當(dāng)(λI ? A)非奇異時(shí),亦即
時(shí),(λI ? A)x = 0有x的非零解。
我們現(xiàn)在可以用前文的行列式的定義,來(lái)把這個(gè)表達(dá)式展開(kāi)為一個(gè)(非常大的) λ的多項(xiàng)式,其中λ的最高階為n。我們可以解出多項(xiàng)式的n個(gè)根(這可能十分復(fù)雜),來(lái)得到n個(gè)特征值λ1, ...,λn。 為了解出特征值對(duì)應(yīng)的特征向量,我們可以簡(jiǎn)單地求線性等式(λiI ? A)x = 0的解。需要注意,實(shí)際操作時(shí),計(jì)算特征值和特征向量不用這個(gè)方法。(行列式的完全展開(kāi)式有n!項(xiàng))。這只是一個(gè)數(shù)學(xué)論證。
下面是特征值和特征向量的性質(zhì)(假設(shè)A∈ Rn×n,且特征值λ1,...,λn對(duì)應(yīng)的特征向量為x1,...,xn):
矩陣A的跡等于特征值的和
A的行列式等于特征值的積
A的秩等于A的非零特征值的個(gè)數(shù)。
如果A是非奇異矩陣,則1/λi是矩陣A-1對(duì)應(yīng)于特征向量xi的特征值。亦即,A1xi = (1/λi)xi。(證明方法是,對(duì)于特征向量等式,Axi = λixi,在兩邊同時(shí)左乘A-1)
對(duì)角矩陣D=diag(d1, . . . ,dn)的特征值是所有的對(duì)角元素。
我們可以把所有的特征向量等式聯(lián)立為
X ∈Rn×n 的列是A的特征向量,∧是對(duì)角元素為A的特征值的對(duì)角矩陣。亦即:
如果A的特征向量線性無(wú)關(guān),則矩陣X可逆,所以A=X∧X-1??梢詫?xiě)成這個(gè)形式的矩陣A被稱(chēng)作可對(duì)角化。
當(dāng)我們考察對(duì)稱(chēng)矩陣A∈Sn的特征值和特征向量時(shí),有兩個(gè)特別的性質(zhì)需要注意。首先,可以證明,A的所有特征值都是實(shí)數(shù)。其次,A的所有特征向量時(shí)正交的。也就是說(shuō),上面所定義的矩陣X是正交矩陣。(我們把此時(shí)的特征向量矩陣記作U)。
接下來(lái),我們可以將A表示為A=U∧UT,由上文知,一個(gè)正交矩陣的逆等于它的轉(zhuǎn)置。
由此,我們可以得到所有完全使用特征值來(lái)定義的矩陣。假設(shè)A∈Sn= U∧UT。有:
其中,y=UTx(由于U滿(mǎn)秩,任意y∈Rn可以表示為此形式。)由于yi2永遠(yuǎn)為正,這個(gè)表達(dá)式完全依賴(lài)于λi。如果所有的λi>0,那么矩陣正定;如果所有的λi≥0,矩陣半正定。同樣的,如果所有的λi<>i≤0,矩陣A分別負(fù)定和半負(fù)定。最后,如果A既有正的特征值又有負(fù)的特征值,它是不定矩陣。
特征值和特征向量的一個(gè)常見(jiàn)的應(yīng)用是找出矩陣的某個(gè)函數(shù)的最大值。例如,對(duì)于矩陣A∈Sn,考慮這個(gè)求最大值問(wèn)題:
也就是說(shuō),我們希望找到使二次型最大的單位向量。假設(shè)特征值大小為λ1 ≥ λ2 ≥ . . . ≥ λn,這個(gè)最優(yōu)化問(wèn)題的最優(yōu)解x為x1,對(duì)應(yīng)的特征值為λ1.此時(shí),二次型的最大值是λ1。相似的,最小值問(wèn)題的最優(yōu)解
是xn,對(duì)應(yīng)的特征值是λn,那么最小值是λn??梢酝ㄟ^(guò)將A表示為特征向量-特征值的形式,然后使用正定矩陣的性質(zhì)證明。然而,在下一節(jié)我們可以使用矩陣微積分直接證明它。
之前章節(jié)的內(nèi)容,在一般線性代數(shù)的課程中都會(huì)講到。而有些常用的內(nèi)容是沒(méi)有的,這就是把微積分推廣到向量。事實(shí)上,我們應(yīng)用的微積分都會(huì)比較繁瑣,各種符號(hào)總是讓問(wèn)題變得更復(fù)雜。在本節(jié)中,將給出一些矩陣微積分的基本定義,并舉例說(shuō)明。
設(shè)?:Rm×n→R是大小為m×n的矩陣A的函數(shù),且返回值為實(shí)數(shù)。?的梯度(關(guān)于A∈Rm×n)是一個(gè)偏導(dǎo)矩陣,定義如下:
即,一個(gè)m×n矩陣,其中
注意?Af(A)和A有相同的大小。所以,特別的,當(dāng)A是一個(gè)向量x∈Rn時(shí),
需要特別記住的是,函數(shù)的梯度只在函數(shù)值為實(shí)數(shù)的時(shí)候有定義。也就是說(shuō),函數(shù)一定要返回一個(gè)標(biāo)量。例如,我們就不能對(duì)Ax,A∈Rn×n中的x求梯度,因?yàn)樗且粋€(gè)向量。
它遵循和偏導(dǎo)相同的性質(zhì):
原則上,梯度是多變量函數(shù)偏導(dǎo)的延伸。然而,實(shí)際應(yīng)用梯度時(shí),會(huì)因?yàn)閿?shù)學(xué)符號(hào)而變得棘手。例如,假設(shè)A∈Rm×n是一個(gè)具有固定系數(shù)的矩陣,b∈Rm是一個(gè)固定系數(shù)的向量。令? :Rm→R為由?(z)=zTz,因此?zf(z) =2z?,F(xiàn)在,考慮表達(dá)式;
f(Ax)
上式該如何理解?至少有兩種解釋?zhuān)?/span>
解釋一,因f(Ax). = 2z,所以可將f(Ax).理解為點(diǎn)Ax處的梯度,那么:
f(Ax) = 2(Ax) = 2Ax ∈ Rm
解釋二,可以認(rèn)為f(Ax)是關(guān)于變量x的函數(shù)。正式的表述為,令g(x) = f(Ax)。那么在此種解釋下有:
f(Ax) = ?xg(x) ∈ Rn
大家可以發(fā)現(xiàn),這兩種解釋確實(shí)不同。解釋一得出的結(jié)果是m維向量,而解釋二得出n維向量!怎么辦?
這里的關(guān)鍵是確定對(duì)那個(gè)變量求微分。在第一種情況下,是讓函數(shù)f對(duì)參數(shù)z求微分,然后代入?yún)?shù)Ax。第二種情況,是讓復(fù)合函數(shù)g(x)= F(AX)與直接對(duì)x求微分。第一種情況記為?zf(AX),第二種情況記為?xf(AX)。你會(huì)在作業(yè)中發(fā)現(xiàn),理清數(shù)學(xué)符號(hào)是非常重要的。
假設(shè) :Rn→R 是n維向量A的的函數(shù),并返回一個(gè)實(shí)數(shù)。那么x的Hessian矩陣是偏導(dǎo)數(shù)的n×n矩陣,寫(xiě)作?2xf(x),簡(jiǎn)記為H。
換句話說(shuō),?2xf(x) ∈ Rn×n ,其中:
需要注意的是Hessian矩陣始終是對(duì)稱(chēng)的,即:
和梯度類(lèi)似,Hessian矩陣只在f(x)為實(shí)數(shù)時(shí)有定義。
可以很自然聯(lián)想到,偏導(dǎo)類(lèi)似于函數(shù)的一階導(dǎo)數(shù),而Hessian類(lèi)似函數(shù)的的二階導(dǎo)數(shù)(我們使用的符號(hào),也表明了這種聯(lián)系)。通常這種直覺(jué)是正確的,但有些注意事項(xiàng)需要牢記。
首先,只有一個(gè)變量的實(shí)值函數(shù),f : R→R,它的基本定義是二階導(dǎo)數(shù)是一階導(dǎo)數(shù)的導(dǎo)數(shù),即:
然而,對(duì)于關(guān)于向量的函數(shù),該函數(shù)的梯度是一個(gè)向量,我們不能取向量的梯度,即;
并且這個(gè)表達(dá)式?jīng)]有定義。因此,不能說(shuō)Hessian矩陣是梯度的梯度。然而,在下面的意義上比較靠譜:如果我們?nèi)〉趇項(xiàng)(?xf(X))i =?F(X)/?xi,并取對(duì)x的梯度,我們得到:
這是Hessian矩陣的第i列(或行)。 因此:
如果此處稍粗略一點(diǎn),可以得出
最后注意,雖然可求出對(duì)矩陣A∈Rn的梯度,但在本課程中,將只考慮向量x∈Rn的Hessian矩陣。這僅僅是為了方便起見(jiàn)(而事實(shí)上,沒(méi)有計(jì)算需要求矩陣的Hessian矩陣),因?yàn)榫仃嚨腍essian矩陣必須表示為所有的偏導(dǎo)數(shù)?2f(A)/(?AijAk?),而要表示為矩陣卻相當(dāng)麻煩。
現(xiàn)在,讓我們確定一些簡(jiǎn)單函數(shù)的梯度和Hessian矩陣。應(yīng)當(dāng)指出的是,這里給出的所有的梯度都是在CS229講義給出的特殊情況。
當(dāng)x∈Rn,對(duì)于已知向量b∈Rn,令f(X)= bT x。 得:
因此
由此不難看出,?xbT x= b。這是與單變量微積分類(lèi)似的情況,其中,?/(?x)aX =a。
現(xiàn)在考慮二次函數(shù)f(x)= xTAx ,A∈Sn。注意到:
求其偏導(dǎo)數(shù),分別考慮包含Xk和xk2因子的項(xiàng):
其中最后一個(gè)等式是因?yàn)锳是對(duì)稱(chēng)的(完全可以假設(shè),因?yàn)樗嵌涡停?。注意?xf(x)的第k項(xiàng)只是A的第k行和x的內(nèi)積。因此,?xxTAx=2AX。同樣,與單變量微積分類(lèi)似,即?/(?x) ax2= 2aX。
最后,再看二次函數(shù)f(X)= xTAx的Hessian矩陣(顯然,線性函數(shù)bT x的Hessian矩陣為零)。 在這種情況下,
因此,應(yīng)當(dāng)清楚的是?x2xTAx=2A,這完全是可證明的(并再次類(lèi)似于單變量的情況?2/(?x2) ax2 = 2a)。
總之:
xbT x = b
xxTAx = 2Ax ( A 為對(duì)稱(chēng)矩陣)
x2xTAx = 2A ( A 為對(duì)稱(chēng)矩陣)
這里將用最后一節(jié)得到的公式推導(dǎo)最小二乘方程。假設(shè)對(duì)矩陣A∈Rm×n(為簡(jiǎn)單起見(jiàn),假定A是滿(mǎn)秩)和向量b∈Rm ,使得b錯(cuò)誤!未找到引用源。R(A)。在這種情況下,無(wú)法找到一個(gè)向量x∈Rn,使得Ax = b。退一步,我們找一個(gè)向量x∈Rn,使得Ax是盡可能接近b,即歐氏范數(shù)||Ax - b||22。
且知||x||22=xTx,有:
取對(duì)已有x的梯度,并使用上一節(jié)推出的性質(zhì)
讓最后一個(gè)表達(dá)式等于零,并求解X滿(mǎn)足的標(biāo)準(zhǔn)方程
這正和我們課上推導(dǎo)的一樣。
現(xiàn)在考慮一種情況,求函數(shù)對(duì)矩陣的梯度,即對(duì)A∈Rn×n,求?A| A |。回顧之前關(guān)于行列式的討論:
因此:
根據(jù)伴隨矩陣的性質(zhì),可立即得出:
現(xiàn)在,考慮函數(shù)f : Sn ++ → R, f(A) = log |A|,需要注意的是,一定要限制f的域是正定矩陣,因?yàn)檫@將確保| A | >0,這樣log| A |是一個(gè)實(shí)數(shù)。在這種情況下,我們可以使用鏈?zhǔn)椒▌t(很簡(jiǎn)單,只是單變量微積分的普通鏈?zhǔn)椒▌t)得出:
那么,很顯然:
此處,在最后一個(gè)表達(dá)式中去掉了轉(zhuǎn)置符,因?yàn)锳是對(duì)稱(chēng)的。注意當(dāng)?/(?x) log x = 1/x時(shí),和單值情況相似。
最后,通過(guò)直接分析特征值/特征向量,用矩陣微積分來(lái)解決一個(gè)優(yōu)化問(wèn)題。接下來(lái),考慮等式約束優(yōu)化問(wèn)題:
對(duì)于一個(gè)對(duì)稱(chēng)矩陣A ∈ Sn,解決等式約束優(yōu)化問(wèn)題的標(biāo)準(zhǔn)方法是構(gòu)造拉格朗日(一個(gè)包括等式約束的目標(biāo)函數(shù))。這種情況下的拉格朗日可由下式給出:
其中λ被稱(chēng)為與等式約束對(duì)應(yīng)的拉格朗日乘子。對(duì)這問(wèn)題可以找到一個(gè)x*的最佳點(diǎn),讓拉格朗日的梯度在x*上為零(這不是唯一的條件,但它是必需的)。 即:
注意,這其實(shí)是線性方程組Ax =λx。這表明,假設(shè)xT x = 1,使xT Ax最大化或(或最小化)的唯一的點(diǎn)正是A的特征向量。
聯(lián)系客服