首发:吴恩达的 CS229的数学基础(线性代数),有人把它做成了在线翻译版本!...
本文是斯坦福大學 CS 229 機器學習課程的基礎材料,是斯坦福各大人工智能課程的數學基礎,本文為線性代數部分,原始文件下載[1]
原文作者:Zico Kolter,修改:Chuong Do, Tengyu Ma
翻譯:黃海廣[2]
備注:請關注github[3]的更新,線性代數和概率論已經更新完畢。
線性代數復習和參考
1. 基礎概念和符號
線性代數提供了一種緊湊地表示和操作線性方程組的方法。例如,以下方程組:
這是兩個方程和兩個變量,正如你從高中代數中所知,你可以找到??和??的唯一解(除非方程以某種方式退化,例如,如果第二個方程只是第一個的倍數,但在上面的情況下,實際上只有一個唯一解)。在矩陣表示法中,我們可以更緊湊地表達:
我們可以看到,這種形式的線性方程有許多優點(比如明顯地節省空間)(備注:此處筆誤,b應該是-13和9)。
1.1 基本符號
我們使用以下符號:
,表示??為由實數組成具有行和列的矩陣。
,表示具有個元素的向量。 通常,向量將表示列向量: 即,具有行和列的矩陣。 如果我們想要明確地表示行向量: 具有??行和列的矩陣 - 我們通常寫(這里的轉置)。
表示向量的第個元素
我們使用符號?(或,等)來表示第??行和第列中的??的元素:
我們用或者表示矩陣的第列:
我們用或者表示矩陣的第行:
在許多情況下,將矩陣視為列向量或行向量的集合非常重要且方便。 通常,在向量而不是標量上操作在數學上(和概念上)更清晰。只要明確定義了符號,用于矩陣的列或行的表示方式并沒有通用約定。
2.矩陣乘法
兩個矩陣相乘,其中??and??,則:
其中:
請注意,為了使矩陣乘積存在,中的列數必須等于中的行數。有很多方法可以查看矩陣乘法,我們將從檢查一些特殊情況開始。
2.1 向量-向量乘法
給定兩個向量,通常稱為向量內積或者點積,結果是個實數。
注意:?始終成立。
給定向量?,??(他們的維度是否相同都沒關系),叫做向量外積?, 當??的時候,它是一個矩陣。
舉一個外積如何使用的一個例子:讓表示一個維向量,其元素都等于 1,此外,考慮矩陣,其列全部等于某個向量?。我們可以使用外積緊湊地表示矩陣?:
2.2 矩陣-向量乘法
給定矩陣?,向量??, 它們的積是一個向量?。有幾種方法可以查看矩陣向量乘法,我們將依次查看它們中的每一種。
如果我們按行寫,那么我們可以表示為:
換句話說,第個是的第行和的內積,即:。
同樣的, 可以把 A 寫成列的方式,則公式如下:,
換句話說,是的列的線性組合,其中線性組合的系數由的元素給出。
到目前為止,我們一直在右側乘以列向量,但也可以在左側乘以行向量。這是寫的,?表示,,。和以前一樣,我們可以用兩種可行的方式表達,這取決于我們是否根據行或列表達.
第一種情況,我們把用列表示:
這表明的第個元素等于和的第列的內積。
最后,根據行表示,我們得到了向量-矩陣乘積的最終表示:
所以我們看到是的行的線性組合,其中線性組合的系數由的元素給出。
2.3 矩陣-矩陣乘法
有了這些知識,我們現在可以看看四種不同的(形式不同,但結果是相同的)矩陣-矩陣乘法:也就是本節開頭所定義的的乘法。
首先,我們可以將矩陣 - 矩陣乘法視為一組向量-向量乘積。從定義中可以得出:最明顯的觀點是的,元素等于的第行和的的列的內積。如下面的公式所示:
這里的?,,??,, 這里的,?,?,,所以它們可以計算內積。我們用通常用行表示而用列表示。或者,我們可以用列表示,用行表示,這時是求外積的和。公式如下:
換句話說,等于所有的的第列和第行的外積的和。因此,在這種情況下,?和, 外積的維度是,與的維度一致。
其次,我們還可以將矩陣 - 矩陣乘法視為一組矩陣向量積。如果我們把用列表示,我們可以將的列視為和的列的矩陣向量積。公式如下:
這里的第列由矩陣向量乘積給出,右邊的向量為。 這些矩陣向量乘積可以使用前一小節中給出的兩個觀點來解釋。 最后,我們有類似的觀點,我們用行表示,的行作為和行之間的矩陣向量積。公式如下:
這里第行的由左邊的向量的矩陣向量乘積給出:
將矩陣乘法剖析到如此大的程度似乎有點過分,特別是當所有這些觀點都緊跟在我們在本節開頭給出的初始定義(在一行數學中)之后。
這些不同方法的直接優勢在于它們允許您在向量的級別/單位而不是標量上進行操作。 為了完全理解線性代數而不會迷失在復雜的索引操作中,關鍵是要用盡可能多的概念進行操作。
實際上所有的線性代數都處理某種矩陣乘法,花一些時間對這里提出的觀點進行直觀的理解是非常必要的。
除此之外,了解一些更高級別的矩陣乘法的基本屬性是很有必要的:
矩陣乘法結合律:?
矩陣乘法分配律:?
矩陣乘法通常不是可交換的; 也就是說,通常。 (例如,假設,?,如果和不相等,矩陣乘積甚至不存在!)
如果您不熟悉這些屬性,請花點時間自己驗證它們。 例如,為了檢查矩陣乘法的相關性,假設,?,。 注意,所以。 類似地,,所以。 因此,所得矩陣的維度一致。 為了表明矩陣乘法是相關的,足以檢查的第個元素是否等于的第個元素。 我們可以使用矩陣乘法的定義直接驗證這一點:
3 運算和屬性
在本節中,我們介紹矩陣和向量的幾種運算和屬性。希望能夠為您復習大量此類內容,這些筆記可以作為這些主題的參考。
3.1 單位矩陣和對角矩陣
單位矩陣,,它是一個方陣,對角線的元素是 1,其余元素都是 0:
對于所有,有:
注意,在某種意義上,單位矩陣的表示法是不明確的,因為它沒有指定的維數。通常,的維數是從上下文推斷出來的,以便使矩陣乘法成為可能。例如,在上面的等式中,中的 I 是矩陣,而中的是矩陣。
對角矩陣是一種這樣的矩陣:對角線之外的元素全為 0。對角陣通常表示為:,其中:
很明顯:單位矩陣。
3.2 轉置
矩陣的轉置是指翻轉矩陣的行和列。
給定一個矩陣:
, 它的轉置為的矩陣?,其中的元素為:
事實上,我們在描述行向量時已經使用了轉置,因為列向量的轉置自然是行向量。
轉置的以下屬性很容易驗證:
3.3 對稱矩陣
如果,則矩陣是對稱矩陣。如果,它是反對稱的。很容易證明,對于任何矩陣,矩陣是對稱的,矩陣是反對稱的。由此得出,任何方矩陣可以表示為對稱矩陣和反對稱矩陣的和,所以:
上面公式的右邊的第一個矩陣是對稱矩陣,而第二個矩陣是反對稱矩陣。事實證明,對稱矩陣在實踐中用到很多,它們有很多很好的屬性,我們很快就會看到它們。通常將大小為的所有對稱矩陣的集合表示為,因此意味著是對稱的矩陣;
3.4 矩陣的跡
方矩陣的跡,表示為(或者只是,如果括號顯然是隱含的),是矩陣中對角元素的總和:
如CS229講義中所述,跡具有以下屬性(如下所示):
對于矩陣,則:
對于矩陣,則:
對于矩陣,,則:.
對于矩陣?,?,?為方陣, 則:
對于矩陣?,?,?,?為方陣, 則:, 同理,更多矩陣的積也是有這個性質。
這里,第一個和最后兩個等式使用跡運算符和矩陣乘法的定義,重點在第四個等式,使用標量乘法的可交換性來反轉每個乘積中的項的順序,以及標量加法的可交換性和相關性,以便重新排列求和的順序。
3.5 范數
向量的范數是非正式度量的向量的“長度” 。例如,我們有常用的歐幾里德或范數,
注意:
更正式地,范數是滿足 4 個屬性的函數():
對于所有的?,?(非負).
當且僅當?時,?(明確性).
對于所有,,則??(正齊次性).
對于所有?,??(三角不等式)
其他范數的例子是范數:
和范數:
事實上,到目前為止所提出的所有三個范數都是范數族的例子,它們由實數參數化,并定義為:
也可以為矩陣定義范數,例如Frobenius范數:
許多其他更多的范數,但它們超出了這個復習材料的范圍。
3.6 線性相關性和秩
一組向量, 如果沒有向量可以表示為其余向量的線性組合,則稱稱該向量是線性無相關的。相反,如果屬于該組的一個向量可以表示為其余向量的線性組合,則稱該向量是線性相關的。也就是說,如果:
對于某些標量值,要么向量是線性相關的; 否則,向量是線性無關的。例如,向量:
是線性相關的,因為:。
矩陣的列秩是構成線性無關集合的的最大列子集的大小。由于術語的多樣性,這通常簡稱為的線性無關列的數量。同樣,行秩是構成線性無關集合的的最大行數。對于任何矩陣,事實證明的列秩等于的行秩(盡管我們不會證明這一點),因此兩個量統稱為的秩,用?表示。以下是秩的一些基本屬性:
對于?,,如果,則:??被稱作滿秩。
對于?,?
對于?,?,
對于?,
3.7 方陣的逆
方陣的倒數表示為,并且是這樣的獨特矩陣:
請注意,并非所有矩陣都具有逆。例如,非方形矩陣根據定義沒有逆。然而,對于一些方形矩陣,可能仍然存在可能不存在的情況。特別是,如果存在,我們說是可逆的或非奇異的,否則就是不可逆或奇異的。為了使方陣 A 具有逆,則必須是滿秩。我們很快就會發現,除了滿秩之外,還有許多其它的充分必要條件。以下是逆的屬性; 假設,而且是非奇異的:
因此,該矩陣通常表示為。作為如何使用逆的示例,考慮線性方程組,,其中,, 如果是非奇異的(即可逆的),那么。(如果不是方陣,這公式還有用嗎?)
3.8 正交陣
如果?,則兩個向量?是正交的。如果,則向量?被歸一化。如果一個方陣的所有列彼此正交并被歸一化(這些列然后被稱為正交),則方陣是正交陣(注意在討論向量時的意義不一樣)。
它可以從正交性和正態性的定義中得出:
換句話說,正交矩陣的逆是其轉置。注意,如果不是方陣 :即,,?,但其列仍然是正交的,則,但是。我們通常只使用術語"正交"來描述先前的情況 ,其中是方陣。正交矩陣的另一個好的特性是在具有正交矩陣的向量上操作不會改變其歐幾里德范數,即:
對于任何??,?是正交的。
3.9 矩陣的值域和零空間
一組向量是可以表示為的線性組合的所有向量的集合。即:
可以證明,如果是一組個線性無關的向量,其中每個,則。換句話說,任何向量都可以寫成到的線性組合。
向量投影到(這里我們假設)得到向量,由歐幾里德范數可以得知,這樣盡可能接近。
我們將投影表示為,并且可以將其正式定義為:
矩陣的值域(有時也稱為列空間),表示為,是列的跨度。換句話說,
做一些技術性的假設(即是滿秩且),向量到的范圍的投影由下式給出:
這個最后的方程應該看起來非常熟悉,因為它幾乎與我們在課程中(我們將很快再次得出)得到的公式:用于參數的最小二乘估計一樣。看一下投影的定義,顯而易見,這實際上是我們在最小二乘問題中最小化的目標(除了范數的平方這里有點不一樣,這不會影響找到最優解),所以這些問題自然是非常相關的。
當只包含一列時,,這給出了向量投影到一條線上的特殊情況:
一個矩陣的零空間??是所有乘以時等于 0 向量的集合,即:
注意,中的向量的大小為,而??中的向量的大小為,因此和??中的向量的大小均為。事實上,還有很多例子。證明:
換句話說,和??是不相交的子集,它們一起跨越的整個空間。這種類型的集合稱為正交補,我們用表示。
3.10 行列式
一個方陣的行列式是函數:,并且表示為。或者(有點像跡運算符,我們通常省略括號)。從代數的角度來說,我們可以寫出一個關于行列式的顯式公式。因此,我們首先提供行列式的幾何解釋,然后探討它的一些特定的代數性質。
給定一個矩陣:
考慮通過采用行向量的所有可能線性組合形成的點的集合,其中線性組合的系數都在 0 和 1 之間; 也就是說,集合是受到系數的限制的線性組合,滿足。從形式上看,
事實證明,的行列式的絕對值是對集合的“體積”的度量。
比方說:一個的矩陣(4):
它的矩陣的行是:
對應于這些行對應的集合如圖 1 所示。對于二維矩陣,通常具有平行四邊形的形狀。在我們的例子中,行列式的值是(可以使用本節后面顯示的公式計算),因此平行四邊形的面積為 7。(請自己驗證!)
在三維中,集合對應于一個稱為平行六面體的對象(一個有傾斜邊的三維框,這樣每個面都有一個平行四邊形)。行定義的矩陣 S 的行列式的絕對值給出了平行六面體的三維體積。在更高的維度中,集合是一個稱為維平行切的對象。
圖 1:(4)中給出的矩陣的行列式的圖示。這里,和是對應于行的向量,并且集合對應于陰影區域(即,平行四邊形)。這個行列式的絕對值,,即平行四邊形的面積。
在代數上,行列式滿足以下三個屬性(所有其他屬性都遵循這些屬性,包括通用公式):
恒等式的行列式為 1,?(幾何上,單位超立方體的體積為 1)。
給定一個矩陣?, 如果我們將中的一行乘上一個標量,那么新矩陣的行列式是
幾何上,將集合的一個邊乘以系數,體積也會增加一個系數。
如果我們交換任意兩行在和,那么新矩陣的行列式是,例如:
你一定很奇怪,滿足上述三個屬性的函數的存在并不多。事實上,這樣的函數確實存在,而且是唯一的(我們在這里不再證明了)。
從上述三個屬性中得出的幾個屬性包括:
對于?,?
對于?,?
對于?, 有且只有當是奇異的(比如不可逆) ,則:
對于??同時,為非奇異的,則:
在給出行列式的一般定義之前,我們定義,對于,是由于刪除第行和第列而產生的矩陣。行列式的一般(遞歸)公式是:
對于?,初始情況為。如果我們把這個公式完全展開為?,就等于(階乘)不同的項。因此,對于大于的矩陣,我們幾乎沒有明確地寫出完整的行列式方程。然而,大小的矩陣的行列式方程是相當常見的,建議好好地了解它們:
矩陣的經典伴隨矩陣(通常稱為伴隨矩陣)表示為,并定義為:
(注意索引中的變化)。可以看出,對于任何非奇異,
雖然這是一個很好的“顯式”的逆矩陣公式,但我們應該注意,從數字上講,有很多更有效的方法來計算逆矩陣。
3.11 二次型和半正定矩陣
給定方矩陣和向量,標量值被稱為二次型。寫得清楚些,我們可以看到:
注意:
第一個等號的是因為是標量的轉置與自身相等,而第二個等號是因為是我們平均兩個本身相等的量。由此,我們可以得出結論,只有的對稱部分有助于形成二次型。出于這個原因,我們經常隱含地假設以二次型出現的矩陣是對稱陣。我們給出以下定義:
對于所有非零向量,,對稱陣為正定(positive definite,PD)。這通常表示為(或),并且通常將所有正定矩陣的集合表示為。
對于所有向量,對稱矩陣是半正定(positive semidefinite ,PSD)。這寫為(或僅),并且所有半正定矩陣的集合通常表示為。
同樣,對稱矩陣是負定(negative definite,ND),如果對于所有非零,則表示為(或)。
類似地,對稱矩陣是半負定(negative semidefinite,NSD),如果對于所有,則表示為(或)。
最后,對稱矩陣是不定的,如果它既不是正半定也不是負半定,即,如果存在,那么且。
很明顯,如果是正定的,那么是負定的,反之亦然。同樣,如果是半正定的,那么是是半負定的,反之亦然。如果果是不定的,那么是也是不定的。
正定矩陣和負定矩陣的一個重要性質是它們總是滿秩,因此是可逆的。為了了解這是為什么,假設某個矩陣不是滿秩。然后,假設的第列可以表示為其他列的線性組合:
對于某些。設,則:
但這意味著對于某些非零向量,,因此必須既不是正定也不是負定。如果是正定或負定,則必須是滿秩。最后,有一種類型的正定矩陣經常出現,因此值得特別提及。給定矩陣(不一定是對稱或偶數平方),矩陣(有時稱為Gram 矩陣)總是半正定的。此外,如果(同時為了方便起見,我們假設是滿秩),則是正定的。
3.12 特征值和特征向量
給定一個方陣,我們認為在以下條件下,是的特征值,是相應的特征向量:
直觀地說,這個定義意味著將乘以向量會得到一個新的向量,該向量指向與相同的方向,但按系數縮放。值得注意的是,對于任何特征向量和標量,,也是一個特征向量。因此,當我們討論與相關的特征向量時,我們通常假設特征向量被標準化為長度為 1(這仍然會造成一些歧義,因為和都是特征向量,但我們必須接受這一點)。
我們可以重寫上面的等式來說明是的特征值和特征向量的組合:
但是只有當有一個非空零空間時,同時是奇異的,才具有非零解,即:
現在,我們可以使用行列式的先前定義將表達式擴展為中的(非常大的)多項式,其中,的度為。它通常被稱為矩陣的特征多項式。
然后我們找到這個特征多項式的(可能是復數)根,并用表示。這些都是矩陣的特征值,但我們注意到它們可能不明顯。為了找到特征值對應的特征向量,我們只需解線性方程,因為是奇異的,所以保證有一個非零解(但也可能有多個或無窮多個解)。
應該注意的是,這不是實際用于數值計算特征值和特征向量的方法(記住行列式的完全展開式有項),這是一個數學上的爭議。
以下是特征值和特征向量的屬性(所有假設在具有特征值的前提下):
的跡等于其特征值之和
的行列式等于其特征值的乘積
的秩等于的非零特征值的個數
假設非奇異,其特征值為和特征向量為。那么是具有相關特征向量的的特征值,即。(要證明這一點,取特征向量方程,,兩邊都左乘)
對角陣的特征值,實際上就是對角元素,
3.13 對稱矩陣的特征值和特征向量
通常情況下,一般的方陣的特征值和特征向量的結構可以很細微地表示出來。值得慶幸的是,在機器學習的大多數場景下,處理對稱實矩陣就足夠了,其處理的對稱實矩陣的特征值和特征向量具有顯著的特性。
在本節中,我們假設是實對稱矩陣, 具有以下屬性:
的所有特征值都是實數。我們用用表示。
存在一組特征向量,,對于所有,是具有特征值和的特征向量。,是單位向量并且彼此正交。
設是包含作為列的正交矩陣:
設是包含作為對角線上的元素的對角矩陣。使用 2.3 節的方程(2)中的矩陣 - 矩陣向量乘法的方法,我們可以驗證:
考慮到正交矩陣滿足,利用上面的方程,我們得到:
這種的新的表示形式為,通常稱為矩陣的對角化。術語對角化是這樣來的:通過這種表示,我們通常可以有效地將對稱矩陣視為對角矩陣 , 這更容易理解。關于由特征向量定義的基礎, 我們將通過幾個例子詳細說明。
背景知識:代表另一個基的向量。
任何正交矩陣定義了一個新的屬于的基(坐標系),意義如下:對于任何向量都可以表示為,的線性組合,其系數為:
在第二個等式中,我們使用矩陣和向量相乘的方法。實際上,這種是唯一存在的:
換句話說,向量可以作為向量的另一種表示,與定義的基有關。
“對角化”矩陣向量乘法。通過上面的設置,我們將看到左乘矩陣可以被視為左乘以對角矩陣關于特征向量的基。假設是一個向量,表示的基。設為矩陣向量積。現在讓我們計算關于的基:然后,再利用和方程,我們得到:
我們可以看到,原始空間中的左乘矩陣等于左乘對角矩陣相對于新的基,即僅將每個坐標縮放相應的特征值。在新的基上,矩陣多次相乘也變得簡單多了。例如,假設。根據的元素導出的分析形式,使用原始的基可能是一場噩夢,但使用新的基就容易多了:
“對角化”二次型。作為直接的推論,二次型也可以在新的基上簡化。
(回想一下,在舊的表示法中,涉及一個項的和,而不是上面等式中的項。)利用這個觀點,我們還可以證明矩陣的正定性完全取決于其特征值的符號:
如果所有的,則矩陣正定的,因為對于任意的,
如果所有的,則矩陣是為正半定,因為對于任意的,
同樣,如果所有或,則矩陣分別為負定或半負定。
最后,如果同時具有正特征值和負特征值,比如 λ和,那么它是不定的。這是因為如果我們讓滿足和,同時所有的,那么?,我們讓滿足和,同時所有的,那么
特征值和特征向量經常出現的應用是最大化矩陣的某些函數。特別是對于矩陣,考慮以下最大化問題:
也就是說,我們要找到(范數 1)的向量,它使二次型最大化。假設特征值的階數為,此優化問題的最優值為,且與對應的任何特征向量都是最大值之一。(如果,那么有一個與特征值對應的唯一特征向量,它是上面那個優化問題的唯一最大值。) 我們可以通過使用對角化技術來證明這一點:注意,通過公式推出,并利用公式:
,我們可以將上面那個優化問題改寫為:
然后,我們得到目標的上界為:
此外,設置可讓上述等式成立,這與設置相對應。
4.矩陣微積分
雖然前面章節中的主題通常包含在線性代數的標準課程中,但似乎很少涉及(我們將廣泛使用)的一個主題是微積分擴展到向量設置展。盡管我們使用的所有實際微積分都是相對微不足道的,但是符號通常會使事情看起來比實際困難得多。 在本節中,我們將介紹矩陣微積分的一些基本定義,并提供一些示例。
4.1 梯度
假設是將維度為的矩陣作為輸入并返回實數值的函數。 然后的梯度(相對于)是偏導數矩陣,定義如下:
即,矩陣:
請注意,的維度始終與的維度相同。特殊情況,如果只是向量,則
重要的是要記住,只有當函數是實值時,即如果函數返回標量值,才定義函數的梯度。例如,相對于,我們不能取的梯度,因為這個量是向量值。 它直接從偏導數的等價性質得出:
對于?,
原則上,梯度是偏導數對多變量函數的自然延伸。然而,在實踐中,由于符號的原因,使用梯度有時是很困難的。例如,假設是一個固定系數矩陣,假設是一個固定系數向量。設為定義的函數,因此。但現在考慮表達式,
該表達式應該如何解釋? 至少有兩種可能性: 1.在第一個解釋中,回想起。 在這里,我們將解釋為評估點處的梯度,因此:
2.在第二種解釋中,我們將數量視為輸入變量的函數。 更正式地說,設。 然后在這個解釋中:
在這里,我們可以看到這兩種解釋確實不同。 一種解釋產生維向量作為結果,而另一種解釋產生維向量作為結果! 我們怎么解決這個問題?
這里,關鍵是要明確我們要區分的變量。 在第一種情況下,我們將函數與其參數進行區分,然后替換參數。 在第二種情況下,我們將復合函數直接與 x 進行微分。
我們將第一種情況表示為,第二種情況表示為。
保持符號清晰是非常重要的,以后完成課程作業時候你就會發現。
這是黑塞矩陣第行(列),所以:
簡單地說:我們可以說由于:,只要我們理解,這實際上是取的每個元素的梯度,而不是整個向量的梯度。
最后,請注意,雖然我們可以對矩陣取梯度,但對于這門課,我們只考慮對向量取黑塞矩陣。 這會方便很多(事實上,我們所做的任何計算都不要求我們找到關于矩陣的黑森方程),因為關于矩陣的黑森方程就必須對矩陣所有元素求偏導數,將其表示為矩陣相當麻煩。
4.2 黑塞矩陣
假設是一個函數,它接受中的向量并返回實數。那么關于的黑塞矩陣(也有翻譯作海森矩陣),寫做:,或者簡單地說,是矩陣的偏導數:
換句話說,,其:
注意:黑塞矩陣通常是對稱陣:
與梯度相似,只有當為實值時才定義黑塞矩陣。
很自然地認為梯度與向量函數的一階導數的相似,而黑塞矩陣與二階導數的相似(我們使用的符號也暗示了這種關系)。 這種直覺通常是正確的,但需要記住以下幾個注意事項。 首先,對于一個變量的實值函數,它的基本定義:二階導數是一階導數的導數,即:
然而,對于向量的函數,函數的梯度是一個向量,我們不能取向量的梯度,即:
上面這個表達式沒有意義。 因此,黑塞矩陣不是梯度的梯度。 然而,下面這種情況卻這幾乎是正確的:如果我們看一下梯度的第個元素,并取關于于的梯度我們得到:
這是黑塞矩陣第行(列),所以:
簡單地說:我們可以說由于:,只要我們理解,這實際上是取的每個元素的梯度,而不是整個向量的梯度。
最后,請注意,雖然我們可以對矩陣取梯度,但對于這門課,我們只考慮對向量取黑塞矩陣。 這會方便很多(事實上,我們所做的任何計算都不要求我們找到關于矩陣的黑森方程),因為關于矩陣的黑塞方程就必須對矩陣所有元素求偏導數,將其表示為矩陣相當麻煩。
4.3 二次函數和線性函數的梯度和黑塞矩陣
現在讓我們嘗試確定幾個簡單函數的梯度和黑塞矩陣。 應該注意的是,這里給出的所有梯度都是CS229講義中給出的梯度的特殊情況。
對于, 設?的某些已知向量?,則:
所以:
由此我們可以很容易地看出。 這應該與單變量微積分中的類似情況進行比較,其中。 現在考慮的二次函數。 記住這一點:
為了取偏導數,我們將分別考慮包括和因子的項:
最后一個等式,是因為是對稱的(我們可以安全地假設,因為它以二次形式出現)。 注意,的第個元素是和的第行的內積。 因此,。 同樣,這應該提醒你單變量微積分中的類似事實,即。
最后,讓我們來看看二次函數黑塞矩陣(顯然,線性函數的黑塞矩陣為零)。在這種情況下:
因此,應該很清楚,這應該是完全可以理解的(同樣類似于的單變量事實)。
簡要概括起來:
?(如果是對稱陣)
?(如果是對稱陣)
4.4 最小二乘法
讓我們應用上一節中得到的方程來推導最小二乘方程。假設我們得到矩陣(為了簡單起見,我們假設是滿秩)和向量,從而使。在這種情況下,我們將無法找到向量,由于,因此我們想要找到一個向量,使得盡可能接近?,用歐幾里德范數的平方來衡量。
使用公式“,我們可以得到:
根據的梯度,并利用上一節中推導的性質:
將最后一個表達式設置為零,然后解出,得到了正規方程:
這和我們在課堂上得到的相同。
4.5 行列式的梯度
現在讓我們考慮一種情況,我們找到一個函數相對于矩陣的梯度,也就是說,對于,我們要找到。回想一下我們對行列式的討論:
所以:
從這里可以知道,它直接從伴隨矩陣的性質得出:
現在我們來考慮函數,。注意,我們必須將的域限制為正定矩陣,因為這確保了,因此的對數是實數。在這種情況下,我們可以使用鏈式法則(沒什么奇怪的,只是單變量演算中的普通鏈式法則)來看看:
從這一點可以明顯看出:
我們可以在最后一個表達式中刪除轉置,因為是對稱的。注意與單值情況的相似性,其中。
4.6 特征值優化
最后,我們使用矩陣演算以直接導致特征值/特征向量分析的方式求解優化問題。 考慮以下等式約束優化問題:
對于對稱矩陣。求解等式約束優化問題的標準方法是采用拉格朗日形式,一種包含等式約束的目標函數,在這種情況下,拉格朗日函數可由以下公式給出:
其中,被稱為與等式約束關聯的拉格朗日乘子。可以確定,要使?成為問題的最佳點,拉格朗日的梯度必須在處為零(這不是唯一的條件,但它是必需的)。也就是說,
請注意,這只是線性方程。 這表明假設,可能最大化(或最小化)的唯一點是的特征向量。
參考資料
[1]
原始文件下載:?http://cs229.stanford.edu/summer2019/cs229-linalg.pdf
[2]黃海廣:?https://github.com/fengdu78
[3]github:?https://github.com/fengdu78/Data-Science-Notes/tree/master/0.math
關于本站
“機器學習初學者”公眾號由是黃海廣博士創建,黃博個人知乎粉絲23000+,github排名全球前110名(32000+)。本公眾號致力于人工智能方向的科普性文章,為初學者提供學習路線和基礎資料。原創作品有:吳恩達機器學習個人筆記、吳恩達深度學習筆記等。
往期精彩回顧
那些年做的學術公益-你不是一個人在戰斗
適合初學者入門人工智能的路線及資料下載
吳恩達機器學習課程筆記及資源(github標星12000+,提供百度云鏡像)
吳恩達深度學習筆記及視頻等資源(github標星8500+,提供百度云鏡像)
《統計學習方法》的python代碼實現(github標星7200+)
精心整理和翻譯的機器學習的相關數學資料
首發:深度學習入門寶典-《python深度學習》原文代碼中文注釋版及電子書
備注:加入本站微信群或者qq群,請回復“加群”
加入知識星球(4300+用戶,ID:92416895),請回復“知識星球”
總結
以上是生活随笔為你收集整理的首发:吴恩达的 CS229的数学基础(线性代数),有人把它做成了在线翻译版本!...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ML 自学者周刊:第 5 期
- 下一篇: BERT论文总结