CS229 斯坦福大學機器學習複習材料(數學基礎) – 線性代數
線性代數提供了一種緊湊地表示和運算「線性方程組」的方法。例如,考慮以下方程組:
4x1−5x2=−13−2x1+3x2=9.
這是兩個方程和兩個變量,正如你從高中代數中所知,你可以找到
x1 和
x2 的唯一解(除非方程以某種方式退化,例如,如果第二個方程只是第一個的倍數,但在上面的情況下,實際上只有一個唯一解)。 在矩陣表示法中,我們可以更緊湊地表達:
Ax=b
其中
A=[4−2−53],b=[−139].
我們可以看到,以這種形式分析線性方程有許多優點(包括明顯的節省空間)。
我們使用以下符號:
-
用
A∈Rm×n表示一個
m行
n列的矩陣,其中
A的各項都是實數。
-
用
x∈Rn表示具有
n個元素的向量。按照慣例,
n維向量。通常被認為是
n行
1列的矩陣,稱為列向量。如果我們想表示一個行向量: 具有
1 行和
n列的矩陣 – 我們通常寫
xT(這裡
xT表示
x的轉置,我們稍後將定義它)。
-
用
xi表示向量
x的第
i個元素:
x=⎣⎡x1x2⋮xn⎦⎤.
-
我們用符號
aij(or
Aij,
Ai,j)表示
A的第
i行第
j列元素:
A=⎣⎡a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎦⎤.
-
我們將
A的第
j列表示為
aj or
A:,j :
A=⎣⎡|a1||a2|⋯|an|⎦⎤.
-
我們將
A的第
i行表示為
aiT or
Ai,: :
A=⎣⎡———a1Ta2T⋮amT———⎦⎤.
-
在許多情況下,將矩陣視為列向量或行向量的集合是非常重要和方便的。一般來說,在數學上(和概念上)向量級別上的操作比標量級別上的操作會更簡潔。表示矩陣的列或行沒有通用約定,因此你可以使用任何符號明確定義它。
矩陣
A∈Rm×n和矩陣
B∈Rn×p的乘積仍然是一個矩陣
C=AB∈Rm×p,其中
Cij=k=1∑nAikBkj.
請注意,為了使矩陣乘積存在,
A中的列數必須等於
B中的行數。有很多方法可以查看矩陣乘法,我們將從檢查一些特殊情況開始。
給兩個向量
x,y∈Rn,
xTy通常稱為向量的內積或者點積,結果是個實數:
xTy∈R=[x1x2⋯xn]⎣⎡y1y2⋮yn⎦⎤=i=1∑nxiyi
請注意,內積實際上只是矩陣乘法的特例。
xTy=yTx 始終成立。
給定向量
x∈Rm,y∈Rn(
m不一定等於
n),
xyT∈Rm×n叫向量外積,它是一個矩陣,由
(xyT)ij=xiyj組成,也就是(i.e.):
xyT∈Rm×n=⎣⎡x1x2⋮xm⎦⎤[y1y2⋯yn]=⎣⎡x1y1x2y1⋮xmy1x1y2x2y2⋮xmy2⋯⋯⋱⋯x1ynx2yn⋮xmyn⎦⎤
舉一個外積如何使用的一個例子:讓
1∈Rn表示一個
n維向量,其元素都等於 1,此外,考慮矩陣
A∈Rm×n,其列全部是某個向量
x∈Rm。 我們可以使用外積緊湊地表示矩陣
A:
A=⎣⎡|x||x|⋯|x|⎦⎤=⎣⎡x1x2⋮xmx1x2⋮xm⋯⋯⋱⋯x1x2⋮xm⎦⎤=⎣⎡x1x2⋮xm⎦⎤[11⋯1]=x1T
給定矩陣
A∈Rm×n,向量
x∈Rn , 它們的積是一個向量
y=Ax∈Rm。 有幾種方法可以查看矩陣向量乘法。
如果我們按行寫
A,那麼我們可以表示
Ax為:
y=Ax=⎣⎡———a1Ta2T⋮amT———⎦⎤x=⎣⎡a1Txa2Tx⋮amTx⎦⎤
換句話說,第
i個
y的元素是
A的第
i行和
x的內積,即:
yi=aiTx。
同樣的, 可以把
A 寫成列的方式,如下:
y=Ax=⎣⎡|a1||a2|⋯|an|⎦⎤⎣⎡x1x2⋮xn⎦⎤=[a1]x1+[a2]x2+⋯+[an]xn(1)
換句話說,
y是
A的列的線性組合,其中線性組合的係數由
x的元素給出。
到目前為止,我們一直是矩陣右乘一個列向量,但也可以是矩陣左乘一個行向量。如這樣表示:
yT=xTA 其中
A∈Rm×n,
x∈Rm,
y∈Rn。 和以前一樣,我們可以用兩種可行的方式表達
yT,這取決於我們是否根據行或列表達
A.
首先,我們把
A用列表示:
yT=xTA=xT⎣⎡|a1||a2|⋯|an|⎦⎤=[xTa1xTa2⋯xTan]
這表明
yT的第
i個元素等於
x和
A的第
i列的內積。
最後,根據行表示
A,我們得到了向量-矩陣乘積的最終表示:
yT=xTA=[x1x2⋯xn]⎣⎡———a1Ta2T⋮amT———⎦⎤=x1[—a1T—]+x2[—a2T—]+⋯+xn[—anT—]
所以我們看到
yT是
A的行的線性組合,其中線性組合的係數由
x的元素給出。
有了這些知識,我們現在可以看看四種不同的(當然是等價的)查看矩陣與矩陣乘法
C=AB的方法。
首先,我們可以將矩陣-矩陣乘法視為一組向量-向量乘積。 從定義中可以得出:最明顯的觀點是
C的(
i,j)元素等於
A的第
i行和
B的的
j列的內積。如下所示:
C=AB=⎣⎡———a1Ta2T⋮amT———⎦⎤⎣⎡|b1||b2|⋯|bp|⎦⎤=⎣⎡a1b1a2b1⋮amb1a1b2a2b2⋮amb2⋯⋯⋱⋯a1bpa2bp⋮ambp⎦⎤
這裡的矩陣
A∈Rm×n,B∈Rn×p , 向量
ai∈Rn,bj∈Rn ,所以它們可以計算內積。當我們用行表示
A 和用列表示
B 時,這是最「自然」的表示。
另外,我們可以用列表示
A,用行表示
B。這種表示導致將
AB 解釋為外積之和,這種表示則複雜得多。象徵性地,
C=AB=⎣⎡|a1||a2|⋯|an|⎦⎤⎣⎡———b1Tb2T⋮bnT———⎦⎤=i=1∑naibiT
換句話說,
AB等於所有的
A的第
i列和
B第
i行的外積的和。因此,在這種情況下,
ai∈Rm和
bi∈Rp, 外積
aibiT的維度是
m×p,與
C的維度一致。
其次,我們還可以將矩陣-矩陣乘法視為一組矩陣-向量乘法。如果我們把
B用列表示,我們可以將
C的列視為
A和
B的列(矩陣-向量)的乘積。如下所示:
C=AB=A⎣⎡|b1||b2|⋯|bp|⎦⎤=⎣⎡|Ab1||Ab2|⋯|Abp|⎦⎤(2)
這裡
C的第
i列由矩陣-向量乘積給出,右邊的向量為
ci=Abi。
最後,我們有類似的觀點,我們用行表示
A,並將
C的行視為
A的行和
B之間的矩陣-向量乘積。如下所示:
C=AB=⎣⎡———a1Ta2T⋮amT———⎦⎤B=⎣⎡———a1TBa2TB⋮amTB———⎦⎤
這裡
C的第
i行由矩陣-向量乘積給出:
ciT=aiTB。
將矩陣乘法剖析到如此大的程度似乎有點矯枉過正,特別是當所有這些觀點都緊跟在我們在本節開頭給出的初始定義(
C=AB)之後。
這些不同方法的直接優勢在於它們允許您在向量的級別/單位而不是標量上進行操作。 為了完全理解線性代數而不會迷失在複雜的索引操作中,關鍵是操作儘可能大(向量而不是標量)的概念。
實際上所有的線性代數都是在處理某種矩陣乘法,多花一些時間對這裡提出的觀點進行直觀的理解是非常必要的。
除此之外,你還應該了解一些更高級別的矩陣乘法的基本性質:
- 矩陣乘法結合律:
(AB)C=A(BC)
- 矩陣乘法分配律:
A(B+C)=AB+AC
- 矩陣乘法一般是不可交換的; 也就是說,通常
AB=BA。 (例如,假設
A∈Rm×n,
B∈Rn×p,如果
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)元素。 我們可以使用矩陣乘法的定義直接驗證這一點:
((AB)C)ij=k=1∑p(AB)ikCkj=k=1∑p(l=1∑nAilBlk)Ckj=k=1∑p(l=1∑nAilBlkCkj)=l=1∑n(k=1∑pAilBlkCkj)=l=1∑nAil(k=1∑pBlkCkj)=l=1∑nAil(BC)lj=(A(BC))ij
這裡,第一個和最後兩個等式簡單地使用了矩陣乘法的定義,第三個和第五個等式使用了標量乘法對加法的分配性質,第四個等式使用了標量加法的交換性和結合性。 這種通過簡化為簡單標量性質來證明矩陣性質的技術會經常出現,因此請確保您熟悉它。
在本節中,我們將介紹矩陣和向量的幾種操作和性質。 希望其中的大部分內容都可以幫您複習,此筆記可以作為參考。
單位矩陣用
I∈Rn×n表示,它是一個方陣,對角線的元素是 1,其餘元素都是 0。可以這樣表示:
Iij={10i=ji=j.
對於所有矩陣
A∈Rm×n,有:
AI=A=IA
注意,在某種意義上,上面單位矩陣的表示法是不明確的,因為它沒有指定
I的維數。通常,
I的維數是從上下文推斷出來的,以便使矩陣乘法成為可能。 例如,在上面的等式中,
AI=A中的
I是
n×n矩陣,而
A=IA中的
I是
m×m矩陣。
對角矩陣的非對角元素全為 0。對角陣通常表示為:
D=diag(d1,d2,⋯,dn),其中:
Dij={di0i=ji=j.
很明顯,單位矩陣
I=diag(1,1,⋯,1)。
矩陣的轉置是指翻轉矩陣的行和列。給定一個矩陣
A∈Rm×n,它的轉置
AT∈Rn×m ,其中的元素為:
(AT)ij=Aji.
事實上,我們在描述行向量時已經使用了轉置,因為列向量的轉置自然是行向量。
轉置有以下性質,且很容易驗證:
(AT)T=A
(AB)T=BTAT
(A+B)T=AT+BT
如果
A=AT,那麼方陣
A∈Rn×n是對稱的。
- 元素滿足
aij=aji,∀i,j
A=AT
- 對於任意方陣
A,
A+AT是對稱的
- 對角矩陣都是對稱矩陣
如果
A=−AT,那麼它就是反對稱的。
- 元素滿足
aij=−aji,∀i,j,所以當
i=j時,
aij=0
A,B都為反對稱矩陣,則
A±B仍為反對稱矩陣
- 若
A為反對稱矩陣,
B為對稱矩陣,則
AB−BA為對稱矩陣
很容易證明,對於任何矩陣
A∈Rn×n,矩陣
A+AT是對稱的,矩陣
A−AT是反對稱的。
由此得出,任意方矩陣
A∈Rn×n可以表示為對稱矩陣和反對稱矩陣的和,所以:
A=21(A+AT)+21(A−AT)
事實證明,對稱矩陣在實踐中用到很多,它們有很多很好的性質,我們很快就會看到它們。
通常將大小為
n的所有對稱矩陣的集合表示為
Sn,因此
A∈Sn意味着
A是對稱的
n×n矩陣。
方矩陣
A∈Rn×n的跡,表示為
tr(A)(或者
trA,括號顯然是隱含的),是矩陣中對角元素的總和:
trA=i=1∑nAii
如 CS229 講義中所述,跡具有以下性質(如下所示):
- 對於矩陣
A∈Rn×n,則:
trA=trAT
- 對於矩陣
A,B∈Rn×n,則:
tr(A+B)=trA+trB
- 對於矩陣
A∈Rn×n,
t∈R,則:
tr(tA)=ttrA.
- 對於矩陣
A,
B,
AB 為方陣, 則:
trAB=trBA
- 對於矩陣
A,
B,
C,
ABC為方陣(包含 1*1 的矩陣-標量), 則:
trABC=trBCA=trCAB, 同理,更多矩陣的積也是有這個性質。
我們給出第四個性質的證明。假設
A∈Rm×n和
B∈Rn×m(因此
AB∈Rm×m是方陣)。 觀察到
BA∈Rn×n也是一個方陣,因此對它們進行跡的運算是有意義的。 要證明
trAB=trBA,注意:
trAB=i=1∑m(AB)ii=i=1∑m(j=1∑nAijBji)=i=1∑mj=1∑nAijBji=j=1∑ni=1∑mBjiAij=j=1∑n(i=1∑mBjiAij)=j=1∑n(BA)jj=trBA
這裡,第一個和最後兩個等式使用了跡運算符和矩陣乘法的定義。 重點在第四個等式,使用標量乘法的交換性來反轉每個乘積中的項的順序,以及標量加法的交換性和結合性來重新排列求和的順序。
向量的範數
∥x∥是非正式度量的向量的「長度」 。 例如,我們有常用的歐幾里德或
ℓ2範數,
∥x∥2=i=1∑nxi2
注意:
∥x∥22=xTx
更正式地,範數是滿足 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範數:
∥x∥1=i=1∑n∣xi∣
和
ℓ∞範數:
∥x∥∞=imax∣xi∣
事實上,到目前為止所提出的所有三個範數都是
ℓp範數族的例子,它們由實數
p≥1參數化,並定義為:
∥x∥p=(i=1∑n∣xi∣p)1/p
也可以為矩陣定義範數,例如Frobenius範數:
∥A∥F=i=1∑mj=1∑nAij2=tr(ATA)
還有很多其他範數,但它們超出了這個複習材料的範圍。
一個向量集合
{x1,x2,⋯xn}⊂Rm, 如果沒有向量可以表示為其餘向量的線性組合,則稱稱該向量是線性無關的。 相反,如果屬於該組的一個向量可以表示為其餘向量的線性組合,則稱該向量是線性相關的。 也就是說,如果:
xj=i=1,i=j∑nαixi
存在
α1,⋯αn∈R,那麼向量
x1,x2,⋯xn是線性相關的; 否則,向量是線性無關的。
另一種線性相關的描述(存在不全為零的數
αi,使得等式成立):
i=1∑nαixi=0,∃αi=0
例如,向量:
x1=⎣⎡123⎦⎤x2=⎣⎡415⎦⎤x3=⎣⎡2−3−1⎦⎤
是線性相關的,因為:
x3=−2x1+x2。
矩陣
A∈Rm×n的列秩是構成線性無關集合的
A的最大列子集的大小。 由於術語的多樣性,這通常簡稱為
A的線性無關列的數量。同樣,行秩是構成線性無關集合的
A的最大行數。
對於任何矩陣
A∈Rm×n,事實證明
A的列秩等於
A的行秩(儘管我們不會證明這一點),因此兩個量統稱為
A的秩,用
rank(A)表示。 以下是秩的一些基本性質:
- 對於
A∈Rm×n,
rank(A)≤min(m,n),如果
(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)
方陣
A∈Rn×n的逆表示為
A−1,並且是這樣的唯一矩陣:
A−1A=I=AA−1
請注意,並非所有矩陣都具有逆。 例如,非方形矩陣根據定義沒有逆(存在偽逆)。 然而,對於一些方形矩陣
A,
A−1也可能不存在。 特別是,如果
A−1存在,我們說
A是可逆的或非奇異的,否則就是不可逆或奇異的。
為了使方陣 A 具有逆
A−1,則
A必須是滿秩。 我們很快就會發現,除了滿秩之外,還有許多其它的充分必要條件。
以下是逆的性質; 假設
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∈R, 如果
A是非奇異的(即可逆的),那麼
x=A−1b。 (如果
A∈Rm×n,不是方陣,這公式還有用嗎? – 偽逆)
如果
xTy=0,則兩個向量
x,y∈Rn 是正交的。如果
∥x∥2=1,則向量
x∈Rn 被歸一化。如果一個方陣
U∈Rn×n的所有列彼此正交並被歸一化,則方陣
U是正交矩陣(注意在討論向量與矩陣時的意義不一樣,兩個向量正交只需要內積為 0,正交矩陣是各列相互正交並且被歸一化)。
它可以從正交性和正態性的定義中得出:
UTU=I=UUT
換句話說,正交矩陣的逆是其轉置。 注意,如果
U不是方陣, 即,
U∈Rm×n,n<m ,但其列仍然是正交的,則
UTU=I,但是
UUT=I。所以正交矩陣一定是方陣。
正交矩陣的另一個好的特性是在具有正交矩陣的向量上操作不會改變其歐幾里德範數,即(i.e.):
∥Ux∥2=∥x∥2(3)
對於任何
x∈Rn ,
U∈Rn×n是正交矩陣。
張成一個向量集合
{x1,x2,⋯xn}可以表示為一個向量集合
{x1,⋯xn}的所以線性組合:
span({x1,⋯xn})={v:v=i=1∑nαixi,αi∈R}
可以看到,如果
{x1,⋯xn}是一組
n個線性無關的向量,其中每個
xi∈Rn,則
span({x1,…xn})=Rn。 換句話說,任何向量
v∈Rn都可以寫成
x1到
xn的線性組合。
向量
y∈Rm投影到
{x1,…xn}所張成的空間(這裡我們假設
xi∈Rm)得到向量
v∈span({x1,…,xn}),由歐幾里德範數
∥v−y∥2可以得知,這樣
v儘可能接近
y。
我們將投影表示為
Proj(y;{x1,…xn}),並且可以將其正式定義為:
Proj(y;{x1,…xn})=argminv∈span({x1,…,xn})∥y−v∥2
矩陣
A∈Rm×n的值域(有時也稱為列空間),表示為
R(A),是
A的列所張成的空間。換句話說,
R(A)={v∈Rm:v=Ax,x∈Rn}
做一些技術性的假設(即
A是滿秩且
n<m),向量
y∈Rm到
A的值域的投影由下式給出:
Proj(y;A)=argminv∈R(A)∥v−y∥2=A(ATA)−1ATy
這個最後的方程應該看起來非常熟悉,因為它幾乎與我們在課程中(我們將很快再次得出)得到的公式:與參數的最小二乘估計一樣。
看一下投影的定義,顯而易見,這實際上是我們在最小二乘問題中最小化的目標(除了範數的平方這裡有點不一樣,這不會影響找到最優解),所以這些問題自然是非常相關的。
當
A只包含一列時,
a∈Rm,這給出了向量投影到一條線上的特殊情況:
Proj(y;a)=aTaaaTy
一個矩陣
A∈Rm×n的零空間
N(A) 是所有乘以
A時等於 0 向量的集合,即:
N(A)={x∈Rn:Ax=0}
注意,
R(A)中的向量的大小為
m,而
N(A) 中的向量的大小為
n,因此
R(AT)和
N(A) 中的向量的大小均為
Rn。 事實上,還有很多例子。 證明:
{w:w=u+v,u∈R(AT),v∈N(A)}=Rn and R(AT)∩N(A)={0}
換句話說,
R(AT)和
N(A) 是不相交的子集,它們一起跨越
Rn的整個空間。 這種類型的集合稱為正交補,我們用
R(AT)=N(A)⊥表示。
一個方陣
A∈Rn×n的行列式是函數
det:
Rn×n→Rn,並且表示為
∣A∣或者
detA(有點像跡運算符,我們通常省略括號)。在代數上,我們可以寫出 A 的行列式的明確公式,但不幸的是,這並不能直觀地理解它的含義。 相反,我們將從提供行列式的幾何解釋開始,然後訪問其一些特定的代數性質。
給定一個矩陣:
⎣⎡———a1Ta2T⋮anT———⎦⎤
考慮通過採用
A行向量
a1,…an∈Rn的所有可能線性組合形成的點
S⊂Rn的集合,其中線性組合的係數都在 0 和 1 之間; 也就是說,集合
S是
span({a1,…an})受到係數
α1,…αn的限制的線性組合,
α1,⋯,αn滿足
0≤αi≤1,i=1,…,n。從形式上看,
S={v∈Rn:v=i=1∑nαiai where 0≤αi≤1,i=1,…,n}
事實證明,
A的行列式的絕對值是對集合
S的「體積」的度量。
比方說:一個
2×2的矩陣(4):
A=[1332](4)
它的矩陣的行是:
a1=[13]a2=[32]
對應於這些行對應的集合
S如圖 1 所示。對於二維矩陣,
S通常具有平行四邊形的形狀。 在我們的例子中,行列式的值是
∣A∣=−7(可以使用本節後面顯示的公式計算),因此平行四邊形的面積為 7。(請自己驗證!)
在三維中,集合
S對應於一個稱為平行六面體的對象(一個有傾斜邊的三維框,這樣每個面都有一個平行四邊形)。行定義
S的
3×3矩陣 S 的行列式的絕對值給出了平行六面體的三維體積。在更高的維度中,集合
S是一個稱為
n維平行體的對象。
(0, 0)
a1
(1, 3)
a2
(3, 2)
(4, 5)Viewer does not support full SVG 1.1
圖 1:(4)中給出的
2×2矩陣
A的行列式的圖示。 這裡,
a1和
a2是對應於
A行的向量,並且集合
S對應於平行四邊形區域。 這個行列式的絕對值,
∣detA∣=7,即平行四邊形的面積。
在代數上,行列式滿足以下三個性質(所有其他性質都遵循這些性質,包括通用公式):
-
單位陣的行列式為 1,
∣I∣=1(幾何上,單位超立方體的體積為 1)。
-
給定一個矩陣
A∈Rn×n, 如果我們將
A中的一行乘上一個標量
t∈R,那麼新矩陣的行列式是
t∣A∣
∣∣⎣⎡———ta1Ta2T⋮amT———⎦⎤∣∣=t∣A∣
幾何上,將集合
S的一個邊乘以係數
t,體積也會增加一個係數
t。
-
如果我們交換任意兩行在
aiT和
ajT,那麼新矩陣的行列式是
−∣A∣,例如:
∣∣⎣⎡———a2Ta1T⋮amT———⎦⎤∣∣=−∣A∣
你一定很奇怪,滿足上述三個性質的函數的存在並不多。事實上,這樣的函數確實存在,而且是唯一的(我們在這裡不再證明了)。
從上述三個性質中得出的幾個性質包括:
- 對於
A∈Rn×n,
∣A∣=∣∣AT∣∣
- 對於
A,B∈Rn×n,
∣AB∣=∣A∣∣B∣
- 對於
A∈Rn×n,如果
∣A∣=0 有且只有當
A是奇異的(即不可逆)(如果
A 是奇異的,那麼它沒有滿秩,因此它的列是線性相關的。在這種情況下,集合
S 對應於
n 維空間中的「平面」,因此體積為零。)
- 對於
A∈Rn×n 同時,
A為非奇異的,則:
∣∣A−1∣∣=1/∣A∣
在給出行列式的一般定義之前,我們定義,對於
A∈Rn×n,
Ai,j∈R(n−1)×(n−1)是由於刪除第
i行和第
j列而產生的矩陣。 行列式的一般(遞歸)公式是:
∣A∣=i=1∑n(−1)i+jaij∣∣A\i,\j∣∣( for any j∈1,…,n)=j=1∑n(−1)i+jaij∣∣A\i,\j∣∣( for any i∈1,…,n)
對於
A∈R1×1,初始情況為
∣A∣=a11。如果我們把這個公式完全展開為
A∈Rn×n,就等於
n!(
n階乘)不同的項。因此,對於大於
3×3的矩陣,我們幾乎沒有明確地寫出完整的行列式方程。然而,
3×3大小的矩陣的行列式方程是相當常見的,建議好好地了解它們:
∣[a11]∣∣∣[a11a21a12a22]∣∣∣∣⎣⎡a11a21a31a12a22a32a13a23a33⎦⎤∣∣=a11=a11a22−a12a21=a11a22a33+a12a23a31+a13a21a32−a11a23a32−a12a21a33−a13a22a31
矩陣
A∈Rn×n的經典伴隨矩陣(通常稱為伴隨矩陣)表示為
adj(A),並定義為:
adj(A)∈Rn×n,(adj(A))ij=(−1)i+j∣∣A\j,\i∣∣
(注意索引
A\j,\i中的變化)。可以看出,對於任何非奇異
A∈Rn×n,
A−1=∣A∣1adj(A)
雖然這是一個很好的「顯式」的逆矩陣公式,但我們應該注意,從數字上講,有很多更有效的方法來計算逆矩陣。
給定方矩陣
A∈Rn×n和向量
x∈Rn,標量
xTAx被稱為二次型。 寫得清楚些,我們可以看到:
xTAx=i=1∑nxi(Ax)i=i=1∑nxi(j=1∑nAijxj)=i=1∑nj=1∑nAijxixj
注意:
xTAx=(xTAx)T=xTATx=xT(21A+21AT)x
小技巧:
A=2A+AT+2A−AT,xTAx=xT2A+ATx+xT2A−ATx=xT2A+ATx+0
第一個等號的是因為是標量的轉置與自身相等,而第二個等號是因為是我們平均兩個本身相等的量。 由此,我們可以得出結論,只有
A的對稱部分有助於形成二次型(
A+AT是對稱的)。 出於這個原因,我們經常隱含地假設以二次型出現的矩陣是對稱陣。
我們給出以下定義:
很明顯,如果
A是正定的,那麼
−A是負定的,反之亦然。同樣,如果
A是半正定的,那麼
−A是是半負定的,反之亦然。如果果
A是不定的,那麼
−A是也是不定的。
正定矩陣和負定矩陣的一個重要性質是它們總是滿秩,因此是可逆的。為了了解這是為什麼,假設某個矩陣
A∈Sn不是滿秩。然後,假設
A的第
j列可以表示為其他
n−1列的線性組合:
aj=i=j∑xiai
對於某些
x1,⋯xj−1,xj+1,⋯,xn∈R。設
xj=−1,則:
Ax=i=1∑nxiai=0
但這意味着對於某些非零向量
x,
xTAx=0,因此
A必須既不是正定也不是負定。如果
A是正定或負定,則必須是滿秩。
最後,有一種類型的正定矩陣經常出現,因此值得特別提及。 給定矩陣
A∈Rm×n(不一定是對稱或偶數平方),矩陣
G=ATA∈Rn×n(有時稱為Gram 矩陣)總是半正定的。 此外,如果
m≥n(同時為了方便起見,我們假設
A是滿秩,即
rank(A)=n,則
G=ATA是正定的。
AAT(即 Gram 矩陣)是半正定矩陣;協方差矩陣要是半正定矩陣
正定矩陣的所有特徵值為正實數
半正定矩陣的所有特徵值為非負實數
負定矩陣的所有特徵值為負實數
半負定矩陣的所有特徵值為非正實數
不定矩陣的特徵值既有正數也有負數
給定一個方陣
A∈Rn×n,我們認為在以下條件下,
λ∈C是
A的特徵值,
x∈Cn是相應的特徵向量:
Ax=λx,x=0
直觀地說,這個定義意味着將
A乘以向量
x會得到一個新的向量,該向量指向與
x相同的方向,但按係數
λ縮放。
值得注意的是,對於任何特徵向量
x∈Cn和標量
c∈C,
A(cx)=cAx=cλx=λ(cx),
cx也是一個特徵向量。因此,當我們討論與
λ相關的特徵向量時,我們通常假設特徵向量被標準化為長度為 1(這仍然會造成一些歧義,因為
x和
−x都是特徵向量,但我們必須接受這一點)。
我們可以重寫上面的等式來說明
(λ,x)是
A的特徵值-特徵向量對:
(λI−A)x=0,x=0
但是
(λI−A)x=0只有當
(λI−A)有一個非空零空間時,同時
(λI−A)是奇異的,
x才具有非零解,即:
∣(λI−A)∣=0
我們現在可以使用之前的行列式定義來展開這個表達式式
∣(λI−A)∣為
λ的(非常大的)多項式,其中,
λ的次數為
n。它通常被稱為矩陣
A的特徵多項式。
然後我們找到這個特徵多項式的
n個根(可能是複數),並用
λ1,⋯,λn表示。這些都是矩陣
A的特徵值,但我們注意到它們可能不明顯。為了找到特徵值
λi對應的特徵向量,我們只需解線性方程
(λI−A)x=0,因為
(λI−A)是奇異的,所以保證有一個非零解(但也可能有多個或無窮多個解)。
應該注意的是,這不是實際用於數值計算特徵值和特徵向量的方法(記住行列式的完全展開式有
n!項),這是一個數學論證。
以下是特徵值和特徵向量的性質(所有假設在
A∈Rn×n具有特徵值
λ1,⋯,λn的前提下):
-
A的跡等於其特徵值之和,也等於對角元素之和(跡的定義)
trA=i=1∑nλi=i=1∑nAii
-
A的行列式等於其特徵值的乘積
∣A∣=i=1∏nλi
-
A的秩等於
A的非零特徵值的個數
-
假設
A非奇異,其特徵值為
λ和特徵向量為
x。那麼
1/λ是具有相關特徵向量
x的
A−1的特徵值,即
A−1x=(1/λ)x。(要證明這一點,取特徵向量方程,
Ax=λx,兩邊都左乘
A−1)
-
對角陣的特徵值
D=diag(d1,⋯dn)實際上就是對角元素
d1,⋯dn
一般而言,一般方陣的特徵值和特徵向量的結構很難表徵。 幸運的是,在機器學習的大多數情況下,處理對稱實矩陣就足夠了,其特徵值和特徵向量具有顯着的性質。
在本節中,我們假設
A是實對稱矩陣, 具有以下性質:
-
A的所有特徵值都是實數。 我們用
λ1,⋯,λn表示。
-
存在一組特徵向量
u1,⋯,un,對於所有
i,
ui是特徵值
λi對應的特徵向量。以及
u1,⋯,un是單位向量並且彼此正交。
設
U是包含
ui作為列的正交矩陣:
U=⎣⎡∣u1∣∣u2∣⋯∣un∣⎦⎤(5)
設
Λ=diag(λ1,⋯,λn)是包含
λ1,⋯,λn作為對角線上的元素的對角矩陣。 使用 2.3 節的方程
(2)中的矩陣 – 矩陣向量乘法的方法,我們可以驗證:
AU=⎣⎡∣Au1∣∣Au2∣⋯∣Aun∣⎦⎤=⎣⎡∣λ1u1∣∣λ2u2∣⋯∣λnun∣⎦⎤=Udiag(λ1,…,λn)=UΛ
考慮到正交矩陣
U滿足
UUT=I,利用上面的方程,我們得到:
A=AUUT=UΛUT(6)
這種
A的新的表示形式為
UΛUT,通常稱為矩陣
A的對角化。術語對角化是這樣來的:通過這種表示,我們通常可以有效地將對稱矩陣
A視為對角矩陣–這更容易理解–關於由特徵向量
U定義的基礎, 我們將通過幾個例子詳細說明。
背景知識:關於另一個基的向量。
任何正交矩陣
U=⎣⎡∣u1∣∣u2∣⋯∣un∣⎦⎤定義了一個新的屬於
Rn的基(坐標系),意義如下:對於任何向量
x∈Rn都可以表示為
u1,⋯,un的線性組合,其係數為
x^1,⋯,x^n:
x=x^1u1+⋯+x^nun=Ux^
在第二個等式中,我們使用矩陣和向量相乘的方法,查看式
(1)。 實際上,這種
x^是唯一存在的:
x=Ux^⇔UTx=x^
換句話說,向量
x^=UTx可以作為向量
x的另一種表示,與
U定義的基有關。
「對角化」矩陣向量乘法。 通過上面的設置,我們將看到左乘矩陣
A可以被視為左乘對角矩陣,也就是特徵向量組成的基。 假設
x是一個向量,
x^是以
U為基
x的表示。設
z=Ax為矩陣向量積。現在讓我們計算以
U為基來表示
z:
然後,再利用
UUT=UTU=I和
A=AUUT=UΛUT,也就是式
(6),我們得到:
z^=UTz=UTAx=UTUΛUTx=Λx^=⎣⎡λ1x^1λ2x^2⋮λnx^n⎦⎤
我們可以看到,原始空間中的左乘矩陣
A等於左乘對角矩陣
Λ相對於新的基,即僅將每個坐標縮放相應的特徵值。
在新的基上,矩陣多次相乘也變得簡單多了。例如,假設
q=AAAx。根據
A的元素導出
q的分析形式,使用原始的基可能是一場噩ڊ#x68A6;,但使用新的基就容易多了:
q^=UTq=UTAAAx=UTUΛUTUΛUTUΛUTx=Λ3x^=⎣⎡λ13x^1λ23x^2⋮λn3x^n⎦⎤(7)
「對角化」二次型。作為直接推論,二次型
xTAx也可以在新的基上簡化。
xTAx=xTUΛUTx=x^TΛx^=i=1∑nλix^i2(8)
(回想一下,在舊的表示法中,
xTAx=∑i=1,j=1nxixjAij涉及一個
n2項的和,而不是上面等式中的
n項。)利用這個觀點,我們還可以證明矩陣
A的正定性完全取決於其特徵值的符號:
-
如果所有的
λi>0,則矩陣
A正定的,因為對於任意的
x^=0,
xTAx=∑i=1nλix^i2>0
-
如果所有的
λi≥0,則矩陣
A是為正半定,因為對於任意的
x^,
xTAx=∑∗i=1nλ∗ix^_i2≥0
-
同樣,如果所有
λi<0或
λi≤0,則矩陣
A分別為負定或半負定。
-
最後,如果
A同時具有正特徵值和負特徵值,比如
λi>0和
λj<0,那麼它是不定的。這是因為如果我們讓
x^滿足
x^i=1 and x^k=0,∀k=i,那麼
xTAx=∑i=1nλix^i2>0 ,同樣的我們讓
x^滿足
x^j=1 and x^k=0,∀k=j,那麼
xTAx=∑i=1nλix^i2<0
特徵值和特徵向量經常出現的應用是最大化矩陣的某些函數。特別是對於矩陣
A∈Sn,考慮以下最大化問題:
x∈Rnmax xTAx=i=1∑nλix^i2 subject to ∥x∥22=1(9)
也就是說,我們要找到(範數 1)的向量,它使二次型最大化。假設特徵值的階數為
λ1≥λ2≥⋯λn,此優化問題的最優值為
λ1,且與
λ1對應的任何特徵向量
u1都是最大值之一。(如果
λ1>λ2,那麼有一個與特徵值
λ1對應的唯一特徵向量,它是上面那個優化問題
(9)的唯一最大值。)
我們可以通過使用對角化技術來證明這一點:注意,通過公式
∥Ux∥2=(3)∥x∥2推出
∥x∥2=∥x^∥2,並利用公式
xTAx=xTUΛUTx=x^TΛx^=∑∗i=1nλ∗ix^_i2,也就是式(8),我們可以將上面那個優化問題改寫為:
x^∈Rnmax x^TΛx^=i=1∑nλix^i2 subject to ∥x^∥22=1
然後,我們得到目標的上界為
λ1:
x^TΛx^=i=1∑nλix^i2≤i=1∑nλ1x^i2=λ1
此外,設置
x^=⎣⎡10⋮0⎦⎤可讓上述等式成立,這與設置
x=u1相對應。
雖然前幾節中的主題通常在線性代數的標準課程中涵蓋,但一個似乎不經常涉及(我們將廣泛使用)的主題是微積分對向量設置的擴展。 儘管我們使用的所有實際微積分都相對微不足道,但符號通常會使事情看起來比實際困難得多。 在本節中,我們將介紹矩陣微積分的一些基本定義並提供一些示例。
假設
f:Rm×n→R是將維度為
m×n的矩陣
A∈Rm×n作為輸入並返回實數值的函數。 然後
f的梯度(相對於
A∈Rm×n)是偏導數矩陣,定義如下:
∇Af(A)∈Rm×n=⎣⎡∂A11∂f(A)∂A21∂f(A)⋮∂Am1∂f(A)∂A12∂f(A)∂A22∂f(A)⋮∂Am2∂f(A)⋯⋯⋱⋯∂A1n∂f(A)∂A2n∂f(A)⋮∂Amn∂f(A)⎦⎤
即,
m×n矩陣:
(∇Af(A))ij=∂Aij∂f(A)
請注意,
∇Af(A)的維度始終與
A的維度相同。特殊情況,如果
A只是向量
A∈Rn,則
∇xf(x)=⎣⎡∂x1∂f(x)∂x2∂f(x)⋮∂xn∂f(x)⎦⎤
重要的是要記住,只有當函數是實值時,即如果函數返回標量值,才定義函數的梯度。例如,
A∈Rm×n相對於
x,我們不能取
Ax的梯度,因為這個量(輸出)是向量值。
直接從偏導數的等價性質得出:
原則上,梯度是偏導數對多維變量函數的自然延伸。然而,在實踐中,由於符號的原因,使用梯度有時是很棘手的。例如,假設
A∈Rm×n是一個固定係數矩陣,假設
b∈Rm是一個固定係數向量。設
f:Rm→R為
f(z)=zTz定義的函數,因此
∇zf(z)=2z。但現在考慮表達式,
∇f(Ax)
該表達式應該如何解釋? 至少有兩種可能性:
- 在第一個解釋中,回想起
∇zf(z)=2z。 在這裡,我們將
∇f(Ax)解釋為評估點
Ax處的梯度,因此:
∇f(Ax)=2(Ax)=2Ax∈Rm
- 在第二種解釋中,我們將數量
f(Ax)視為輸入變量
x的函數。 更正式地說,設
g(x)=f(Ax)。 然後在這個解釋中:
∇f(Ax)=∇xg(x)∈Rn
在這裡,我們可以看到這兩種解釋確實不同。 一種解釋產生
m維向量作為結果,而另一種解釋產生
n維向量作為結果(
x的維度是
n,所以
∇xg(x)也是
n,上面有講到)! 我們怎麼解決這個問題?
這裡,關鍵是要明確我們要區分的變量。
在第一種情況下,我們將函數
f與其參數
z進行區分,然後替換參數
Ax。
在第二種情況下,我們將複合函數
g(x)=f(Ax)直接與
x進行微分。
我們將第一種情況表示為
∇zf(Ax),第二種情況表示為
∇xf(Ax)。
保持符號清晰是非常重要的,以後完成課程作業時候你就會發現。
假設
f:Rn→R是一個函數,它接受
Rn中的向量並返回實數。那麼關於
x的黑塞矩陣(也有翻譯作海森矩陣),寫做:
∇x2f(Ax),或者簡單地說,
H是
n×n的偏導數矩陣:
∇x2f(x)∈Rn×n=⎣⎡∂x12∂2f(x)∂x2∂x1∂2f(x)⋮∂xn∂x1∂2f(x)∂x1∂x2∂2f(x)∂x22∂2f(x)⋮∂xn∂x2∂2f(x)⋯⋯⋱⋯∂x1∂xn∂2f(x)∂x2∂xn∂2f(x)⋮∂xn2∂2f(x)⎦⎤
換句話說,
∇x2f(x)∈Rn×n,其:
(∇x2f(x))ij=∂xi∂xj∂2f(x)
注意:黑塞矩陣通常是對稱陣:
∂xi∂xj∂2f(x)=∂xj∂xi∂2f(x)
與梯度相似,只有當
f(x)為實值時黑塞矩陣才有定義。
很自然地認為梯度與向量函數的一階導數的相似,而黑塞矩陣與二階導數的相似(我們使用的符號也暗示了這種關係)。 這種直覺通常是正確的,但需要記住以下幾個注意事項。
首先,對於一個變量
f:R→R的實值函數,它的基本定義:二階導數是一階導數的導數,即:
∂x2∂2f(x)=∂x∂∂x∂f(x)
然而,對於向量的函數,函數的梯度是一個向量,我們不能取向量的梯度,即:
∇x∇xf(x)=∇x⎣⎡∂x1∂f(x)∂x2∂f(x)⋮∂xn∂f(x)⎦⎤
上面這個表達式沒有意義。 因此,黑塞矩陣不是梯度的梯度。 然而,下面這種情況卻這幾乎是正確的:如果我們看一下梯度
(∇xf(x))i=∂f(x)/∂xi的第
i個元素,並取關於於
x的梯度我們得到:
∇x∂xi∂f(x)=⎣⎡∂xi∂x1∂2f(x)∂x2∂x2∂2f(x)⋮∂xi∂xn∂f(x)⎦⎤
這是黑塞矩陣第
i行(列),所以:
∇x2f(x)=[∇x(∇xf(x))1∇x(∇xf(x))2⋯∇x(∇xf(x))n]
簡單地說:我們可以說由於:
∇x2f(x)=∇x(∇xf(x))T,只要我們理解,這實際上是取
∇xf(x)的每個元素的梯度,而不是整個向量的梯度。
最後,請注意,雖然我們可以對矩陣
A∈Rn取梯度,但對於這門課,我們只考慮對向量
x∈Rn取黑塞矩陣。
這會方便很多(事實上,我們所做的任何計算都不要求我們找到關於矩陣的黑森方程),因為關於矩陣的黑塞方程就必須對矩陣所有元素求偏導數
∂2f(A)/(∂Aij∂Akℓ),將其表示為矩陣相當麻煩。
現在讓我們嘗試確定幾個簡單函數的梯度和黑塞矩陣。 應該注意的是,這裡給出的所有梯度都是CS229講義中給出的梯度的特殊情況。
對於
x∈Rn, 設
f(x)=bTx 的某些已知向量
b∈Rn ,則:
f(x)=i=1∑nbixi
所以:
∂xk∂f(x)=∂xk∂i=1∑nbixi=bk
由此我們可以很容易地看出
∇xbTx=b。 這應該與單變量微積分中的類似情況進行比較,其中
∂/(∂x)ax=a。
現在考慮
A∈Sn的二次函數
f(x)=xTAx。 記住這一點:
f(x)=i=1∑nj=1∑nAijxixj
為了取偏導數,我們將分別考慮包括
xk和
x2k因子的項:
∂xk∂f(x)=∂xk∂i=1∑nj=1∑nAijxixj=∂xk∂⎣⎡i=k∑j=k∑Aijxixj+i=k∑Aikxixk+j=k∑Akjxkxj+Akkxk2⎦⎤=i=k∑Aikxi+j=k∑Akjxj+2Akkxk=i=1∑nAikxi+j=1∑nAkjxj=2i=1∑nAkixi
最後一個等式,是因為
A是對稱的(我們可以安全地假設,因為它以二次形式出現)。 注意,
∇xf(x)的第
k個元素是
A和
x的第
k行的內積。 因此,
∇xxTAx=2Ax。 同樣,這應該提醒你單變量微積分中的類似事實,即
∂/(∂x)ax2=2ax。
最後,讓我們來看看二次函數
f(x)=xTAx黑塞矩陣(顯然,線性函數
bTx的黑塞矩陣為零)。在這種情況下:
∂xk∂xℓ∂2f(x)=∂xk∂[∂xℓ∂f(x)]=∂xk∂[2i=1∑nAℓixi]=2Aℓk=2Akℓ
因此,應該很清楚
∇x2xTAx=2A,這應該是完全可以理解的(同樣類似於
∂2/(∂x2)ax2=2a的單變量事實)。
簡要概括起來:
-
∇xbTx=b
-
∇xxTAx=2Ax (如果
A是對稱陣)
-
∇x2xTAx=2A (如果
A是對稱陣)
讓我們應用上一節中得到的方程來推導最小二乘方程。假設我們得到矩陣
A∈Rm×n(為了簡單起見,我們假設
A是滿秩)和向量
b∈Rm,從而使
b∈/R(A)。在這種情況下,我們將無法找到向量
x∈Rn,由於
Ax=b,因此我們想要找到一個向量
x,使得
Ax儘可能接近
b,用歐幾里德範數的平方
∥Ax−b∥_22來衡量。
使用公式
∥x∥2=xTx,我們可以得到:
∥Ax−b∥22=(Ax−b)T(Ax−b)=xTATAx−2bTAx+bTb
根據
x的梯度,並利用上一節中推導的性質:
∇x(xTATAx−2bTAx+bTb)=∇xxTATAx−∇x2bTAx+∇xbTb=2ATAx−2ATb
將最後一個表達式設置為零,然後解出
x,得到了正規方程:
x=(ATA)−1ATb
這和我們在課堂上得到的相同。
現在讓我們考慮一種情況,我們找到一個函數相對於矩陣的梯度,也就是說,對於
A∈Rn×n,我們要找到
∇A∣A∣。回想一下我們對行列式的討論:
∣A∣=i=1∑n(−1)i+jAij∣∣A\i,\j∣∣( for any j∈1,…,n)
所以:
∂Akℓ∂∣A∣=∂Akℓ∂i=1∑n(−1)i+jAij∣∣A\i,\j∣∣=(−1)k+ℓ∣∣A\k,\ℓ∣∣=(adj(A))ℓk
從這裡可以知道,它直接從伴隨矩陣的性質得出:
∇A∣A∣=(adj(A))T=∣A∣A−T
現在我們來考慮函數
f:S++n→R,
f(A)=log∣A∣。注意,我們必須將
f的域限制為正定矩陣,因為這確保了
∣A∣>0,因此
∣A∣的對數是實數。在這種情況下,我們可以使用鏈式法則(沒什麼奇怪的,只是單變量演算中的普通鏈式法則)來看看:
∂Aij∂log∣A∣=∂∣A∣∂log∣A∣∂Aij∂∣A∣=∣A∣1∂Aij∂∣A∣
從這一點可以明顯看出:
∇Alog∣A∣=∣A∣1∇A∣A∣=A−1
我們可以在最後一個表達式中刪除轉置,因為
A是對稱的。注意與單值情況的相似性,其中
∂/(∂x)logx=1/x。
最後,我們使用矩陣演算以直接導致特徵值/特徵向量分析的方式求解優化問題。 考慮以下等式約束優化問題:
x∈RnmaxxTAx subject to ∥x∥22=1
對於對稱矩陣
A∈Sn。求解等式約束優化問題的標準方法是採用拉格朗日形式,一種包含等式約束的目標函數,在這種情況下,拉格朗日函數可由以下公式給出:
L(x,λ)=xTAx−λxTx
其中,
λ被稱為與等式約束關聯的拉格朗日乘子。可以確定,要使
x⋆成為問題的最佳點,拉格朗日的梯度必須在
x⋆處為零(這不是唯一的條件,但它是必需的)。也就是說,
∇xL(x,λ)=∇x(xTAx−λxTx)=2ATx−2λx=0
請注意,這只是線性方程
Ax=λx。 這表明假設
xTx=1,可能最大化(或最小化)
xTAx的唯一點是
A的特徵向量。
column vector 列向量
row vector 行向量
inner product 內積
dot product 點積
outer product 外積
linear combination 線性組合
identity matrix 單位矩陣
diagonal matrix 對角矩陣
transpose 轉置
symmetric matrix 對稱矩陣
anti-symmetric matrix 反對稱矩陣
trace 跡
norm 範數
(linearly) independent 線性無關
(linearly) dependent 線性相關
column rank 列秩
row rank 行秩
rank 秩
full rank 滿秩
inverse 逆
invertible 可逆的
non-singular 非奇異
non-invertible 不可逆
singular 奇異
orthogonal 正交
normalized 歸一化
span 張成
projection 投影
range 值域
columnspace 列空間
nullspace 零空間
orthogonal complements 正交補
determinant 行列式
classical adjoint(adjugate) matrix 經典伴隨矩陣
adjoint(adjugate) matrix 伴隨矩陣
minor 餘子式
cofactor 代數餘子式
cofactor matrix 代數餘子式矩陣
quadratic form 二次型
positive definite(PD) 正定
positive semidefinitee (PSD) 半正定
negative definite (ND) 負定
negative semidefinite(NSD) 半負定
indefinite 不定
Gram matrix 格拉姆矩陣
eigenvalue 特徵值
eigenvector 特徵向量
Diagonalizing 對角化
gradient 梯度
Hessian 黑塞矩陣
Lagrangian 拉格朗日