機器學習線性代數基礎

本文是斯坦福大學CS 229機器學習課程的基礎材料,原始文件下載

原文作者:Zico Kolter,修改:Chuong Do, Tengyu Ma

翻譯:黃海廣
備注:請關注github的更新,線性代數和概率論已經更新完畢。

CS229 機器學習課程復習材料-線性代數

目錄
  • CS229 機器學習課程復習材料-線性代數
    • 線性代數復習和參考
      • 1. 基礎概念和符號
        • 1.1 基本符號
      • 2.矩陣乘法
        • 2.1 向量-向量乘法
        • 2.2 矩陣-向量乘法
        • 2.3 矩陣-矩陣乘法
      • 3 運算和屬性
        • 3.1 單位矩陣和對角矩陣
        • 3.2 轉置
        • 3.3 對稱矩陣
        • 3.4 矩陣的跡
        • 3.5 范數
        • 3.6 線性相關性和秩
        • 3.7 方陣的逆
        • 3.8 正交陣
        • 3.9 矩陣的值域和零空間
        • 3.10 行列式
        • 3.11 二次型和半正定矩陣
        • 3.12 特征值和特征向量
        • 3.13 對稱矩陣的特征值和特征向量
      • 4.矩陣微積分
        • 4.1 梯度
        • 4.2 黑塞矩陣
        • 4.3 二次函數和線性函數的梯度和黑塞矩陣
        • 4.4 最小二乘法
        • 4.5 行列式的梯度
        • 4.6 特征值優化

線性代數復習和參考

1. 基礎概念和符號

線性代數提供了一種緊湊地表示和操作線性方程組的方法。 例如,以下方程組:

\[4x_1 ? 5x_2 = ?13 \]
\[?2x_1 + 3x_2 = 9 \]

這是兩個方程和兩個變量,正如你從高中代數中所知,你可以找到 \(x_1\)\(x_2\) 的唯一解(除非方程以某種方式退化,例如,如果第二個方程只是第一個的倍數,但在上面的情況下,實際上只有一個唯一解)。 在矩陣表示法中,我們可以更緊湊地表達:

\[Ax= b \]
\[\text { with } A=\left[\begin{array}{cc}{4} & {-5} \\ {-2} & {3}\end{array}\right], b=\left[\begin{array}{c}{-13} \\ {9}\end{array}\right] \]

我們可以看到,這種形式的線性方程有許多優點(比如明顯地節省空間)。

1.1 基本符號

我們使用以下符號:

  • \(A \in \mathbb{R}^{m \times n}\),表示 \(A\) 為由實數組成具有\(m\)行和\(n\)列的矩陣。

  • \(x \in \mathbb{R}^{ n}\),表示具有\(n\)個元素的向量。 通常,向量\(x\)將表示列向量: 即,具有\(n\)行和\(1\)列的矩陣。 如果我們想要明確地表示行向量: 具有 \(1\) 行和\(n\)列的矩陣 - 我們通常寫\(x^T\)(這里\(x^T\)\(x\)的轉置)。

  • \(x_i\)表示向量\(x\)的第\(i\)個元素

\[x=\left[\begin{array}{c}{x_{1}} \\ {x_{2}} \\ {\vdots} \\ {x_{n}}\end{array}\right] \]
  • 我們使用符號 \(a_{ij}\)(或\(A_{ij}\),\(A_{i,j}\)等)來表示第 \(i\) 行和第\(j\)列中的 \(A\) 的元素:
\[A=\left[\begin{array}{cccc}{a_{11}} & {a_{12}} & {\cdots} & {a_{1 n}} \\ {a_{21}} & {a_{22}} & {\cdots} & {a_{2 n}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {a_{m 1}} & {a_{m 2}} & {\cdots} & {a_{m n}}\end{array}\right] \]
  • 我們用\(a^j\)或者\(A_{:,j}\)表示矩陣\(A\)的第\(j\)列:
\[A=\left[\begin{array}{llll}{ |} & { |} & {} & { |} \\ {a^{1}} & {a^{2}} & {\cdots} & {a^{n}} \\ { |} & { |} & {} & { |}\end{array}\right] \]
  • 我們用\(a^T_i\)或者\(A_{i,:}\)表示矩陣\(A\)的第\(i\)行:
\[A=\left[\begin{array}{c}{-a_{1}^{T}-} \\ {-a_{2}^{T}-} \\ {\vdots} \\ {-a_{m}^{T}-}\end{array}\right] \]
  • 在許多情況下,將矩陣視為列向量或行向量的集合非常重要且方便。 通常,在向量而不是標量上操作在數學上(和概念上)更清晰。只要明確定義了符號,用于矩陣的列或行的表示方式并沒有通用約定。

2.矩陣乘法

兩個矩陣相乘,其中 \(A \in \mathbb{R}^{m \times n}\) and \(B \in \mathbb{R}^{n \times p}\) ,則:

\[C = AB \in \mathbb{R}^{m \times p} \]

其中:

\[C_{i j}=\sum_{k=1}^{n} A_{i k} B_{k j} \]

請注意,為了使矩陣乘積存在,\(A\)中的列數必須等于\(B\)中的行數。有很多方法可以查看矩陣乘法,我們將從檢查一些特殊情況開始。

2.1 向量-向量乘法

給定兩個向量\(x, y \in \mathbb{R}^{n}\),\(x^T y\)通常稱為向量內積或者點積,結果是個實數

\[x^{T} y \in \mathbb{R}=\left[\begin{array}{llll}{x_{1}} & {x_{2}} & {\cdots} & {x_{n}}\end{array}\right]\left[\begin{array}{c}{y_{1}} \\ {y_{2}} \\ {\vdots} \\ {y_{n}}\end{array}\right]=\sum_{i=1}^{n} x_{i} y_{i} \]

注意:\(x^T y = y^Tx\) 始終成立。

給定向量 \(x \in \mathbb{R}^{m}\), \(y \in \mathbb{R}^{n}\) (他們的維度是否相同都沒關系),\(xy^T \in \mathbb{R}^{m \times n}\)叫做**向量外積 ** , 當 \((xy^T)_{ij} = x_iy_j\) 的時候,它是一個矩陣。

\[x y^{T} \in \mathbb{R}^{m \times n}=\left[\begin{array}{c}{x_{1}} \\ {x_{2}} \\ {\vdots} \\ {x_{m}}\end{array}\right]\left[\begin{array}{llll}{y_{1}} & {y_{2}} & {\cdots} & {y_{n}}\end{array}\right]=\left[\begin{array}{cccc}{x_{1} y_{1}} & {x_{1} y_{2}} & {\cdots} & {x_{1} y_{n}} \\ {x_{2} y_{1}} & {x_{2} y_{2}} & {\cdots} & {x_{2} y_{n}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {x_{m} y_{1}} & {x_{m} y_{2}} & {\cdots} & {x_{m} y_{n}}\end{array}\right] \]

舉一個外積如何使用的一個例子:讓\(1\in R^{n}\)表示一個\(n\)維向量,其元素都等于1,此外,考慮矩陣\(A \in R^{m \times n}\),其列全部等于某個向量 \(x \in R^{m}\)。 我們可以使用外積緊湊地表示矩陣 \(A\):

\[A=\left[\begin{array}{llll}{ |} & { |} & {} & { |} \\ {x} & {x} & {\cdots} & {x} \\ { |} & { |} & {} & { |}\end{array}\right]=\left[\begin{array}{cccc}{x_{1}} & {x_{1}} & {\cdots} & {x_{1}} \\ {x_{2}} & {x_{2}} & {\cdots} & {x_{2}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {x_{m}} & {x_{m}} & {\cdots} & {x_{m}}\end{array}\right]=\left[\begin{array}{c}{x_{1}} \\ {x_{2}} \\ {\vdots} \\ {x_{m}}\end{array}\right]\left[\begin{array}{lll}{1} & {1} & {\cdots} & {1}\end{array}\right]=x \mathbf{1}^{T} \]

2.2 矩陣-向量乘法

給定矩陣 \(A \in \mathbb{R}^{m \times n}\),向量 \(x \in \mathbb{R}^{n}\) , 它們的積是一個向量 \(y = Ax \in R^{m}\)。 有幾種方法可以查看矩陣向量乘法,我們將依次查看它們中的每一種。

如果我們按行寫\(A\),那么我們可以表示\(Ax\)為:

\[y=A x=\left[\begin{array}{ccc}{-} & {a_{1}^{T}} & {-} \\ {-} & {a_{2}^{T}} & {-} \\ {} & {\vdots} & {} \\ {-} & {a_{m}^{T}} & {-}\end{array}\right] x=\left[\begin{array}{c}{a_{1}^{T} x} \\ {a_{2}^{T} x} \\ {\vdots} \\ {a_{m}^{T} x}\end{array}\right] \]

換句話說,第\(i\)\(y\)\(A\)的第\(i\)行和\(x\)的內積,即:\(y_i = y_{i}=a_{i}^{T} x\)

同樣的, 可以把 \(A\) 寫成列的方式,則公式如下:

\[y=A x=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {a^{1}} & {a^{2}} & {\cdots} & {a^{n}} \\ { |} & { |} & {} & { |}\end{array}\right]\left[\begin{array}{c}{x_{1}} \\ {x_{2}} \\ {\vdots} \\ {x_{n}}\end{array}\right]=\left[\begin{array}{c}{ } \\ {a^{1}{ } \\ }\end{array}\right] x_{1}+\left[\begin{array}{c}{ } \\ {a^{2}{ } \\ }\end{array}\right] x_{2}+{\cdots} +\left[\begin{array}{c}{ } \\ {a^{n}{ } \\ }\end{array}\right] x_{n} \]

換句話說,\(y\)\(A\)的列的線性組合,其中線性組合的系數由\(x\)的元素給出。

到目前為止,我們一直在右側乘以列向量,但也可以在左側乘以行向量。 這是寫的,\(y^T = x^TA\) 表示\(A \in \mathbb{R}^{m \times n}\)\(x \in \mathbb{R}^{m}\)\(y \in \mathbb{R}^{n}\)。 和以前一樣,我們可以用兩種可行的方式表達\(y^T\),這取決于我們是否根據行或列表達\(A\).

第一種情況,我們把\(A\)用列表示:

\[y^{T}=x^{T} A=x^{T}\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {a^{1}} & {a^{2}} & {\cdots} & {a^{n}} \\ { |} & { |} & {} & { |}\end{array}\right]=\left[\begin{array}{cccc}{x^{T} a^{1}} & {x^{T} a^{2}} & {\dots} & {x^{T} a^{n}}\end{array}\right] \]

這表明\(y^T\)的第\(i\)個元素等于\(x\)\(A\)的第\(i\)列的內積。

最后,根據行表示\(A\),我們得到了向量-矩陣乘積的最終表示:

\[y^T=x^TA =\left[\begin{array}{llll}{x_{1}} & {x_{2}} & {\cdots} & {x_{n}}\end{array}\right]\left[\begin{array}{c}{-a_{1}^{T}-} \\ {-a_{2}^{T}-} \\ {\vdots} \\ {-a_{m}^{T}-}\end{array}\right] =x_{1}\left[-a_{1}^{T}-\right]+x_{2}\left[-a_{2}^{T}-\right]+\ldots+x_{n}\left[-a_{n}^{T}-\right] \]

所以我們看到\(y^T\)\(A\)的行的線性組合,其中線性組合的系數由\(x\)的元素給出。

2.3 矩陣-矩陣乘法

有了這些知識,我們現在可以看看四種不同的(形式不同,但結果是相同的)矩陣-矩陣乘法:也就是本節開頭所定義的\(C=AB\)的乘法。

首先,我們可以將矩陣 - 矩陣乘法視為一組向量-向量乘積。 從定義中可以得出:最明顯的觀點是$C \(的\)( i,j )\(元素等于\)A\(的第\)i\(行和\)B\(的的\)j$列的內積。如下面的公式所示:

\[C=A B=\left[\begin{array}{cc}{-} & {a_{1}^{T}} &{-} \\ {-} & {a_{2}^{T}} &{-} \\ {} & {\vdots} \\ {-} & {a_{m}^{T}} &{-} \end{array}\right]\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {b_{1}} & {b_{2}} & {\cdots} & {b_{p}} \\ { |} & { |} & {} & { |}\end{array}\right]=\left[\begin{array}{cccc}{a_{1}^{T} b_{1}} & {a_{1}^{T} b_{2}} & {\cdots} & {a_{1}^{T} b_{p}} \\ {a_{2}^{T} b_{1}} & {a_{2}^{T} b_{2}} & {\cdots} & {a_{2}^{T} b_{p}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {a_{m}^{T} b_{1}} & {a_{m}^{T} b_{2}} & {\cdots} & {a_{m}^{T} b_{p}}\end{array}\right] \]

這里的$ A \in \mathbb{R}^{m\times n}$ ,\(B \in \mathbb{R}^{n \times p}\)\(a_i \in \mathbb{R}^n\)\(b^j \in \mathbb{R}^{n \times p}\), 這里的$ A \in \mathbb{R}^ {m \times n},$ $B \in \mathbb{R}^ {n \times p} $, $a_i \in \mathbb{R} ^ n \(,\) b ^ j \in \mathbb{R} ^ {n \times p} \(,所以它們可以計算內積。 我們用通常用行表示\) A \(而用列表示\)B\(。 或者,我們可以用列表示\) A\(,用行表示\)B \(,這時\)AB$是求外積的和。公式如下:

\[C=A B=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {a_{1}} & {a_{2}} & {\cdots} & {a_{n}} \\ { |} & { |} & {} & { |}\end{array}\right]\left[\begin{array}{c}{-}& {b_{1}^{T}}&{-} \\ {-}& {b_{2}^{T}}&{-} \\ {\vdots} \\{-}& {b_{n}^{T}}&{-}\end{array}\right]=\sum_{i=1}^{n} a_{i} b_{i}^{T} \]

換句話說,\(AB\)等于所有的\(A\)的第\(i\)列和\(B\)\(i\)行的外積的和。因此,在這種情況下, $a_i \in \mathbb{R}^ m \(和\)b_i \in \mathbb{R}^p\(, 外積\)aib_iT\(的維度是\)m×p\(,與\)C$的維度一致。

其次,我們還可以將矩陣 - 矩陣乘法視為一組矩陣向量積。如果我們把\(B\)用列表示,我們可以將\(C\)的列視為\(A\)\(B\)的列的矩陣向量積。公式如下:

\[C=A B=A\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {b_{1}} & {b_{2}} & {\cdots} & {b_{p}} \\ { |} & { |} & {} & { |}\end{array}\right]=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {A b_{1}} & {A b_{2}} & {\cdots} & {A b_{p}} \\ { |} & { |} & {} & { |}\end{array}\right] \]

這里\(C\)的第\(i\)列由矩陣向量乘積給出,右邊的向量為\(c_i = Ab_i\)。 這些矩陣向量乘積可以使用前一小節中給出的兩個觀點來解釋。
最后,我們有類似的觀點,我們用行表示\(A\)\(C\)的行作為\(A\)\(C\)行之間的矩陣向量積。公式如下:

\[C=A B=\left[\begin{array}{ccc}{-} & {a_{1}^{T}} & {-} \\ {-} & {a_{2}^{T}} & {-} \\ {} & {\vdots} & {} \\ {-} & {a_{m}^{T}} & {-}\end{array}\right] B=\left[\begin{array}{c} {-} & {a_{1}^{T} B} & {-}\\ {-} & {a_{2}^{T} B} & {-} \\ {\vdots} \\ {-} & {a_{m}^{T} B}& {-}\end{array}\right] \]

這里第\(i\)行的\(C\)由左邊的向量的矩陣向量乘積給出:\(c_i^T = a_i^T B\)

將矩陣乘法剖析到如此大的程度似乎有點過分,特別是當所有這些觀點都緊跟在我們在本節開頭給出的初始定義(在一行數學中)之后。

這些不同方法的直接優勢在于它們允許您在向量的級別/單位而不是標量上進行操作。 為了完全理解線性代數而不會迷失在復雜的索引操作中,關鍵是要用盡可能多的概念進行操作。

實際上所有的線性代數都處理某種矩陣乘法,花一些時間對這里提出的觀點進行直觀的理解是非常必要的。

除此之外,了解一些更高級別的矩陣乘法的基本屬性是很有必要的:

  • 矩陣乘法結合律: \((AB)C = A(BC)\)

  • 矩陣乘法分配律: \(A(B + C) = AB + AC\)

  • 矩陣乘法通常不是可交換的; 也就是說,通常\(AB \ne BA\)。 (例如,假設$ A \in \mathbb{R}^ {m \times n},$ $B \in \mathbb{R}^ {n \times p} \(,如果\)m\(和\)q\(不相等,矩陣乘積\)BA$甚至不存在!)

如果您不熟悉這些屬性,請花點時間自己驗證它們。 例如,為了檢查矩陣乘法的相關性,假設\(A \in \mathbb{R}^ {m \times n},\) $B \in \mathbb{R}^ {n \times p} \(,\)C \in \mathbb{R}^ {p \times q}\(。 注意\)AB \in \mathbb{R}^ {m \times p}\(,所以\)(AB)C \in \mathbb{R}^ {m \times q}\(。 類似地,\)BC \in \mathbb{R}^ {n \times q}\(,所以\)A(BC) \in \mathbb{R}^ {m \times q}\(。 因此,所得矩陣的維度一致。 為了表明矩陣乘法是相關的,足以檢查\)(AB)C \(的第\)(i,j)\(個元素是否等于\)A(BC)\(的第\)(i,j)$個元素。 我們可以使用矩陣乘法的定義直接驗證這一點:

\[\begin{aligned}((A B) C)_{i j} &=\sum_{k=1}^{p}(A B)_{i k} C_{k j}=\sum_{k=1}^{p}\left(\sum_{l=1}^{n} A_{i l} B_{l k}\right) C_{k j} \\ &=\sum_{k=1}^{p}\left(\sum_{l=1}^{n} A_{i l} B_{l k} C_{k j}\right)=\sum_{l=1}^{n}\left(\sum_{k=1}^{p} A_{i l} B_{l k} C_{k j}\right) \\ &=\sum_{l=1}^{n} A_{i l}\left(\sum_{k=1}^{p} B_{l k} C_{k j}\right)=\sum_{l=1}^{n} A_{i l}(B C)_{l j}=(A(B C))_{i j} \end{aligned} \]

3 運算和屬性

在本節中,我們介紹矩陣和向量的幾種運算和屬性。 希望能夠為您復習大量此類內容,這些筆記可以作為這些主題的參考。

3.1 單位矩陣和對角矩陣

單位矩陣,$I \in \mathbb{R}^{n \times n} $,它是一個方陣,對角線的元素是1,其余元素都是0:

\[I_{i j}=\left\{\begin{array}{ll}{1} & {i=j} \\ {0} & {i \neq j}\end{array}\right. \]

對于所有\(A \in \mathbb{R}^ {m \times n}\),有:

\[AI = A = IA \]

注意,在某種意義上,單位矩陣的表示法是不明確的,因為它沒有指定\(I\)的維數。通常,\(I\)的維數是從上下文推斷出來的,以便使矩陣乘法成為可能。 例如,在上面的等式中,\(AI = A\)中的I是\(n\times n\)矩陣,而\(A = IA\)中的\(I\)\(m\times m\)矩陣。

對角矩陣是一種這樣的矩陣:對角線之外的元素全為0。對角陣通常表示為:\(D= diag(d_1, d_2, . . . , d_n)\),其中:

\[D_{i j}=\left\{\begin{array}{ll}{d_{i}} & {i=j} \\ {0} & {i \neq j}\end{array}\right. \]

很明顯:單位矩陣$ I = diag(1, 1, . . . , 1)$。

3.2 轉置

矩陣的轉置是指翻轉矩陣的行和列。

給定一個矩陣:

\(A \in \mathbb{R}^ {m \times n}\), 它的轉置為\(n \times m\)的矩陣\(A^T \in \mathbb{R}^ {n \times m}\) ,其中的元素為:

\[(A^T)_{ij} = A_{ji} \]

事實上,我們在描述行向量時已經使用了轉置,因為列向量的轉置自然是行向量。

轉置的以下屬性很容易驗證:

  • \((A^T )^T = A\)
  • $ (AB)^T = B^T A^T$
  • \((A + B)^T = A^T + B^T\)

3.3 對稱矩陣

如果\(A = A^T\),則矩陣\(A \in \mathbb{R}^ {n \times n}\)是對稱矩陣。 如果$ A = - A^T\(,它是反對稱的。 很容易證明,對于任何矩陣\)A \in \mathbb{R}^ {n \times n}\(,矩陣\)A + A^ T\(是對稱的,矩陣\)A -A^T\(是反對稱的。 由此得出,任何方矩陣\)A \in \mathbb{R}^ {n \times n}$可以表示為對稱矩陣和反對稱矩陣的和,所以:

\[A=\frac{1}{2}(A+A^T)+\frac{1}{2}(A-A^T) \]

上面公式的右邊的第一個矩陣是對稱矩陣,而第二個矩陣是反對稱矩陣。 事實證明,對稱矩陣在實踐中用到很多,它們有很多很好的屬性,我們很快就會看到它們。
通常將大小為\(n\)的所有對稱矩陣的集合表示為\(\mathbb{S}^n\),因此\(A \in \mathbb{S}^n\)意味著\(A\)是對稱的\(n\times n\)矩陣;

3.4 矩陣的跡

方矩陣\(A \in \mathbb{R}^ {n \times n}\)的跡,表示為\(\operatorname{tr} (A)\)(或者只是\(\operatorname{tr} A\),如果括號顯然是隱含的),是矩陣中對角元素的總和:

\[\operatorname{tr} A=\sum_{i=1}^{n} A_{i i} \]

CS229講義中所述,跡具有以下屬性(如下所示):

  • 對于矩陣\(A \in \mathbb{R}^ {n \times n}\),則:\(\operatorname{tr}A =\operatorname{tr}A^T\)

  • 對于矩陣\(A,B \in \mathbb{R}^ {n \times n}\),則:\(\operatorname{tr}(A + B) = \operatorname{tr}A + \operatorname{tr}B\)

  • 對于矩陣\(A \in \mathbb{R}^ {n \times n}\),$ t \in \mathbb{R}\(,則:\)\operatorname{tr}(tA) = t\operatorname{tr}A$.

  • 對于矩陣 \(A\), \(B\)\(AB\) 為方陣, 則:\(\operatorname{tr}AB = \operatorname{tr}BA\)

  • 對于矩陣 \(A\), \(B\), \(C\), \(ABC\)為方陣, 則:\(\operatorname{tr}ABC = \operatorname{tr}BCA=\operatorname{tr}CAB\), 同理,更多矩陣的積也是有這個性質。

作為如何證明這些屬性的示例,我們將考慮上面給出的第四個屬性。 假設\(A \in \mathbb{R}^ {m \times n}\)\(B \in \mathbb{R}^ {n \times m}\)(因此\(AB \in \mathbb{R}^ {m \times m}\)是方陣)。 觀察到\(BA \in \mathbb{R}^ {n \times n}\)也是一個方陣,因此對它們進行跡的運算是有意義的。 要證明\(\operatorname{tr}AB = \operatorname{tr}BA\),請注意:

\[\begin{aligned} \operatorname{tr} A B &=\sum_{i=1}^{m}(A B)_{i i}=\sum_{i=1}^{m}\left(\sum_{j=1}^{n} A_{i j} B_{j i}\right) \\ &=\sum_{i=1}^{m} \sum_{j=1}^{n} A_{i j} B_{j i}=\sum_{j=1}^{n} \sum_{i=1}^{m} B_{j i} A_{i j} \\ &=\sum_{j=1}^{n}\left(\sum_{i=1}^{m} B_{j i} A_{i j}\right)=\sum_{j=1}^{n}(B A)_{j j}=\operatorname{tr} B A \end{aligned} \]

這里,第一個和最后兩個等式使用跡運算符和矩陣乘法的定義,重點在第四個等式,使用標量乘法的可交換性來反轉每個乘積中的項的順序,以及標量加法的可交換性和相關性,以便重新排列求和的順序。

3.5 范數

向量的范數\(\|x\|\)是非正式度量的向量的“長度” 。 例如,我們有常用的歐幾里德或\(\ell_{2}\)范數,

\[\|x\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}} \]

注意:\(\|x\|_{2}^{2}=x^{T} x\)

更正式地,范數是滿足4個屬性的函數(\(f : \mathbb{R}^{n} \rightarrow \mathbb{R}\)):

  1. 對于所有的 \(x \in \mathbb{R}^ {n}\), $f(x) \geq 0 $(非負).
  2. 當且僅當\(x = 0\) 時,\(f(x) = 0\) (明確性).
  3. 對于所有\(x \in \mathbb{R}^ {n}\),\(t\in \mathbb{R}\),則 \(f(tx) = \left| t \right|f(x)\) (正齊次性).
  4. 對于所有 \(x,y \in \mathbb{R}^ {n}\), \(f(x + y) \leq f(x) + f(y)\) (三角不等式)

其他范數的例子是\(\ell_1\)范數:

\[\|x\|_{1}=\sum_{i=1}^{n}\left|x_{i}\right| \]

\(\ell_{\infty }\)范數:

\[\|x\|_{\infty}=\max _{i}\left|x_{i}\right| \]

事實上,到目前為止所提出的所有三個范數都是\(\ell_p\)范數族的例子,它們由實數\(p \geq 1\)參數化,并定義為:

\[\|x\|_{p}=\left(\sum_{i=1}^{n}\left|x_{i}\right|^{p}\right)^{1 / p} \]

也可以為矩陣定義范數,例如Frobenius范數:

\[\|A\|_{F}=\sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} A_{i j}^{2}}=\sqrt{\operatorname{tr}\left(A^{T} A\right)} \]

許多其他更多的范數,但它們超出了這個復習材料的范圍。

3.6 線性相關性和秩

一組向量\({x_1,x_2, \cdots x_n} \in \mathbb{R}\), 如果沒有向量可以表示為其余向量的線性組合,則稱稱該向量是線性無相關的。 相反,如果屬于該組的一個向量可以表示為其余向量的線性組合,則稱該向量是線性相關的。 也就是說,如果:

\[x_{n}=\sum_{i=1}^{n-1} \alpha_{i} x_{i} \]

對于某些標量值\(\alpha_1,\cdots \alpha_n-1 \in \mathbb{R}\),要么向量\(x_1,x_2, \cdots x_n\)是線性相關的; 否則,向量是線性無關的。 例如,向量:

\[x_{1}=\left[\begin{array}{l}{1} \\ {2} \\ {3}\end{array}\right] \quad x_{2}=\left[\begin{array}{c}{4} \\ {1} \\ {5}\end{array}\right] \quad x_{3}=\left[\begin{array}{c}{2} \\ {-3} \\ {-1}\end{array}\right] \]

是線性相關的,因為:\(x_3=-2x_1+x_2\)

矩陣\(A \in \mathbb{R}^{m \times n}\)列秩是構成線性無關集合的\(A\)的最大列子集的大小。 由于術語的多樣性,這通常簡稱為\(A\)的線性無關列的數量。同樣,行秩是構成線性無關集合的\(A\)的最大行數。 對于任何矩陣\(A \in \mathbb{R}^{m \times n}\),事實證明\(A\)的列秩等于\(A\)的行秩(盡管我們不會證明這一點),因此兩個量統稱為\(A\),用 \(\text{rank}(A)\)表示。 以下是秩的一些基本屬性:

  • 對于 \(A \in \mathbb{R}^{m \times n}\)\(\text{rank}(A) \leq min(m, n)\),如果$ \text(A) = \text{min} (m, n)$,則: \(A\) 被稱作滿秩
  • 對于 \(A \in \mathbb{R}^{m \times n}\)\(\text{rank}(A) = \text{rank}(A^T)\)
  • 對于 \(A \in \mathbb{R}^{m \times n}\),\(B \in \mathbb{R}^{n \times p}\) ,\(\text{rank}(AB) \leq \text{min} ( \text{rank}(A), \text{rank}(B))\)
  • 對于 \(A,B \in \mathbb{R}^{m \times n}\)\(\text{rank}(A + B) \leq \text{rank}(A) + \text{rank}(B)\)

3.7 方陣的逆

方陣\(A \in \mathbb{R}^{n \times n}\)的倒數表示為\(A^{-1}\),并且是這樣的獨特矩陣:

\[A^{-1}A=I=AA^{-1} \]

請注意,并非所有矩陣都具有逆。 例如,非方形矩陣根據定義沒有逆。 然而,對于一些方形矩陣\(A\),可能仍然存在\(A^{-1}\)可能不存在的情況。 特別是,如果\(A^{-1}\)存在,我們說\(A\)可逆的或非奇異的,否則就是不可逆奇異的。
為了使方陣A具有逆\(A^{-1}\),則\(A\)必須是滿秩。 我們很快就會發現,除了滿秩之外,還有許多其它的充分必要條件。
以下是逆的屬性; 假設\(A,B \in \mathbb{R}^{n \times n}\),而且是非奇異的:

  • \((A^{-1})^{-1} = A\)
  • \((AB)^{-1} = B^{-1}A^{-1}\)
  • $(A{-1}) =(A{T}) \(因此,該矩陣通常表示為\)A^{-T}\(。 作為如何使用逆的示例,考慮線性方程組,\)Ax = b\(,其中\)A \in \mathbb{R}^{n \times n}\(,\)x,b\in \mathbb{R}\(, 如果\)A\(是非奇異的(即可逆的),那么\)x = A^{-1}b\(。 (如果\)A \in \mathbb{R}^{m \times n}$不是方陣,這公式還有用嗎?)

3.8 正交陣

如果 \(x^Ty=0\),則兩個向量\(x,y\in \mathbb{R}^{n}\)正交的。如果\(\|x\|_2=1\),則向量\(x\in \mathbb{R}^{n}\) 被歸一化。如果一個方陣\(U\in \mathbb{R}^{n \times n}\)的所有列彼此正交并被歸一化(這些列然后被稱為正交),則方陣\(U\)是正交陣(注意在討論向量時的意義不一樣)。

它可以從正交性和正態性的定義中得出:

\[U^ TU = I = U U^T \]

換句話說,正交矩陣的逆是其轉置。 注意,如果\(U\)不是方陣 :即,\(U\in \mathbb{R}^{m \times n}\)\(n <m\) ,但其列仍然是正交的,則\(U^TU = I\),但是\(UU^T \neq I\)。我們通常只使用術語"正交"來描述先前的情況 ,其中\(U\)是方陣。
正交矩陣的另一個好的特性是在具有正交矩陣的向量上操作不會改變其歐幾里德范數,即:

\[\|U x\|_{2}=\|x\|_{2} \]

對于任何 \(x\in \mathbb{R}\) , \(U\in \mathbb{R}^{n}\)是正交的。

3.9 矩陣的值域和零空間

一組向量\(\{x_{1}, \ldots x_{n}\}\)是可以表示為\(\{x_{1}, \ldots x_{n}\}\)的線性組合的所有向量的集合。 即:

\[\operatorname{span}\left(\left\{x_{1}, \ldots x_{n}\right\}\right)=\left\{v : v=\sum_{i=1}^{n} \alpha_{i} x_{i}, \quad \alpha_{i} \in \mathbb{R}\right\} \]

可以證明,如果\(\{x_{1}, \ldots x_{n}\}\)是一組\(n\)個線性無關的向量,其中每個\(x_i \in \mathbb{R}^{n}\),則\(\text{span}(\{x_{1}, \ldots x_{n}\})=\mathbb{R}^{n}\)。 換句話說,任何向量\(v\in \mathbb{R}^{n}\)都可以寫成\(x_1\)\(x_n\)的線性組合。

向量\(y\in \mathbb{R}^{m}\)投影到\(\{x_{1}, \ldots x_{n}\}\)(這里我們假設\(x_i \in \mathbb{R}^{m}\))得到向量\(v \in \operatorname{span}(\{x_{1}, \ldots, x_{n}\})\),由歐幾里德范數\(\|v - y\|_2\)可以得知,這樣\(v\)盡可能接近\(y\)

我們將投影表示為\(\operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right)\),并且可以將其正式定義為:

\[\operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right)=\operatorname{argmin}_{v \in \operatorname{span}\left(\left\{x_{1}, \ldots, x_{n}\right\}\right)}\|y-v\|_{2} \]

矩陣\(A\in \mathbb{R}^{m \times n}\)的值域(有時也稱為列空間),表示為\(\mathcal{R}(A)\),是\(A\)列的跨度。換句話說,

\[\mathcal{R}(A)=\left\{v \in \mathbb{R}^{m} : v=A x, x \in \mathbb{R}^{n}\right\} \]

做一些技術性的假設(即\(A\)是滿秩且\(n <m\)),向量\(y \in \mathbb{R}^{m}\)\(A\)的范圍的投影由下式給出:

\[\operatorname{Proj}(y ; A)=\operatorname{argmin}_{v \in \mathcal{R}(A)}\|v-y\|_{2}=A\left(A^{T} A\right)^{-1} A^{T} y \]

這個最后的方程應該看起來非常熟悉,因為它幾乎與我們在課程中(我們將很快再次得出)得到的公式:用于參數的最小二乘估計一樣。 看一下投影的定義,顯而易見,這實際上是我們在最小二乘問題中最小化的目標(除了范數的平方這里有點不一樣,這不會影響找到最優解),所以這些問題自然是非常相關的。

\(A\)只包含一列時,\(a \in \mathbb{R}^{m}\),這給出了向量投影到一條線上的特殊情況:

\[\operatorname{Proj}(y ; a)=\frac{a a^{T}}{a^{T} a} y \]

一個矩陣\(A\in \mathbb{R}^{m \times n}\)的零空間 \(\mathcal{N}(A)\) 是所有乘以\(A\)時等于0向量的集合,即:

\[\mathcal{N}(A)=\left\{x \in \mathbb{R}^{n} : A x=0\right\} \]

注意,\(\mathcal{R}(A)\)中的向量的大小為\(m\),而 \(\mathcal{N}(A)\) 中的向量的大小為\(n\),因此\(\mathcal{R}(A^T)\)\(\mathcal{N}(A)\) 中的向量的大小均為\(\mathbb{R}^{n}\)。 事實上,還有很多例子。 證明:

\[\left\{w : w=u+v, u \in \mathcal{R}\left(A^{T}\right), v \in \mathcal{N}(A)\right\}=\mathbb{R}^{n} \text { and } \mathcal{R}\left(A^{T}\right) \cap \mathcal{N}(A)=\{\mathbf{0}\} \]

換句話說,\(\mathcal{R}(A^T)\)\(\mathcal{N}(A)\) 是不相交的子集,它們一起跨越\(\mathbb{R}^{n}\)的整個空間。 這種類型的集合稱為正交補,我們用\(\mathcal{R}(A^T)= \mathcal{N}(A)^{\perp}\)表示。

3.10 行列式

一個方陣\(A \in \mathbb{R}^{n \times n}\)的行列式是函數\(\text {det}\):$\mathbb{R}^{n \times n} \rightarrow \mathbb{R}^{n} \(,并且表示為\)\left| A \right|\(。 或者\)\text{det} A\((有點像跡運算符,我們通常省略括號)。 從代數的角度來說,我們可以寫出一個關于\)A$行列式的顯式公式。 因此,我們首先提供行列式的幾何解釋,然后探討它的一些特定的代數性質。

給定一個矩陣:

\[\left[\begin{array}{cccc}{-} & {a_{1}^{T}} & {-} \\ {-} & {a_{2}^{T}} & {-} \\ {} & {\vdots} & {} \\ {-} & {a_{n}^{T}} & {-}\end{array}\right] \]

考慮通過采用\(A\)行向量\(a_{1}, \ldots a_{n}\in \mathbb{R}^{n}\)的所有可能線性組合形成的點\(S \subset \mathbb{R}^{n}\)的集合,其中線性組合的系數都在0和1之間; 也就是說,集合\(S\)\(\text{span}(\{a_{1}, \ldots a_{n}\})\)受到系數\(a_{1}, \ldots a_{n}\)的限制的線性組合,\(\alpha_1, \cdots ,\alpha_n\)滿足\(0 \leq \alpha_{i} \leq 1, i=1, \ldots, n\)。從形式上看,

\[S=\left\{v \in \mathbb{R}^{n} : v=\sum_{i=1}^{n} \alpha_{i} a_{i} \text { where } 0 \leq \alpha_{i} \leq 1, i=1, \ldots, n\right\} \]

事實證明,\(A\)的行列式的絕對值是對集合\(S\)的“體積”的度量。

比方說:一個\(2 \times2\)的矩陣(4):

\[A=\left[\begin{array}{ll}{1} & {3} \\ {3} & {2}\end{array}\right] \]

它的矩陣的行是:

\[a_{1}=\left[\begin{array}{l}{1} \\ {3}\end{array}\right] \quad a_{2}=\left[\begin{array}{l}{3} \\ {2}\end{array}\right] \]

對應于這些行對應的集合\(S\)如圖1所示。對于二維矩陣,\(S\)通常具有平行四邊形的形狀。 在我們的例子中,行列式的值是\(\left| A \right| = -7\)(可以使用本節后面顯示的公式計算),因此平行四邊形的面積為7。(請自己驗證!)

在三維中,集合\(S\)對應于一個稱為平行六面體的對象(一個有傾斜邊的三維框,這樣每個面都有一個平行四邊形)。行定義\(S\)\(3×3\)矩陣S的行列式的絕對值給出了平行六面體的三維體積。在更高的維度中,集合\(S\)是一個稱為\(n\)維平行切的對象。

圖1:(4)中給出的\(2×2\)矩陣\(A\)的行列式的圖示。 這里,\(a_1\)\(a_2\)是對應于\(A\)行的向量,并且集合\(S\)對應于陰影區域(即,平行四邊形)。 這個行列式的絕對值,\(\left| \text{det} A \right| = 7\),即平行四邊形的面積。

在代數上,行列式滿足以下三個屬性(所有其他屬性都遵循這些屬性,包括通用公式):

  1. 恒等式的行列式為1, \(\left| I \right|= 1\)(幾何上,單位超立方體的體積為1)。

  2. 給定一個矩陣 \(A \in \mathbb{R}^{n \times n}\), 如果我們將\(A\)中的一行乘上一個標量\(t \in \mathbb{R}\),那么新矩陣的行列式是\(t\left| A \right|\)

\[\left|\left[\begin{array}{ccc}{-} & {t a_{1}^{T}} & {-} \\ {-} & {a_{2}^{T}} & {-} \\ {} & {\vdots} & {} \\ {} & {a_{m}^{T}} & {-}\end{array}\right]\right|=t|A| \]

幾何上,將集合\(S\)的一個邊乘以系數\(t\),體積也會增加一個系數\(t\)

  1. 如果我們交換任意兩行在\(a_i^T\)\(a_j^T\),那么新矩陣的行列式是\(-\left| A \right|\),例如:
\[\left|\left[\begin{array}{ccc}{-} & {a_{2}^{T}} & {-} \\ {-} & {a_{1}^{T}} & {-} \\ {} & {\vdots} & {} \\ {-} & {a_{m}^{T}} & {-}\end{array}\right]\right|=-|A| \]

你一定很奇怪,滿足上述三個屬性的函數的存在并不多。事實上,這樣的函數確實存在,而且是唯一的(我們在這里不再證明了)。

從上述三個屬性中得出的幾個屬性包括:

  • 對于 \(A \in \mathbb{R}^{n \times n}\), \(\left| A \right| = \left| A^T \right|\)
  • 對于 \(A,B \in \mathbb{R}^{n \times n}\), \(\left| AB \right|= \left| A \right|\left| B \right|\)
  • 對于 \(A \in \mathbb{R}^{n \times n}\), 有且只有當\(A\)是奇異的(比如不可逆) ,則:\(\left| A \right|= 0\)
  • 對于 \(A \in \mathbb{R}^{n \times n}\) 同時,\(A\)為非奇異的,則:\(\left| A ^{?1}\right| = 1/\left| A \right|\)

在給出行列式的一般定義之前,我們定義,對于\(A \in \mathbb{R}^{n \times n}\)\(A_{\backslash i, \backslash j}\in \mathbb{R}^{(n-1) \times (n-1)}\)是由于刪除第\(i\)行和第\(j\)列而產生的矩陣。 行列式的一般(遞歸)公式是:

\[\begin{aligned}|A| &=\sum_{i=1}^{n}(-1)^{i+j} a_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } j \in 1, \ldots, n) \\ &=\sum_{j=1}^{n}(-1)^{i+j} a_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } i \in 1, \ldots, n) \end{aligned} \]

對于 \(A \in \mathbb{R}^{1 \times 1}\),初始情況為\(\left| A \right|= a_{11}\)。如果我們把這個公式完全展開為 \(A \in \mathbb{R}^{n \times n}\),就等于\(n!\)(\(n\)階乘)不同的項。因此,對于大于\(3×3\)的矩陣,我們幾乎沒有明確地寫出完整的行列式方程。然而,\(3×3\)大小的矩陣的行列式方程是相當常見的,建議好好地了解它們:

\[\left|\left[a_{11}\right]\right|=a_{11} \]
\[\left|\left[\begin{array}{ll}{a_{11}} & {a_{12}} \\ {a_{21}} & {a_{22}}\end{array}\right]\right|=a_{11} a_{22}-a_{12} a_{21} \]
\[\left|\left[\begin{array}{l}{a_{11}} & {a_{12}} & {a_{13}} \\ {a_{21}} & {a_{22}} & {a_{23}} \\ {a_{31}} & {a_{32}} & {a_{33}}\end{array}\right]\right|=\quad \begin{array}{c}{a_{11} a_{22} a_{33}+a_{12} a_{23} a_{31}+a_{13} a_{21} a_{32}} \\\quad \quad {-a_{11} a_{23} a_{32}-a_{12} a_{21} a_{33}-a_{13} a_{22} a_{31}} \\ {}\end{array} \]

矩陣\(A \in \mathbb{R}^{n \times n}\)的經典伴隨矩陣(通常稱為伴隨矩陣)表示為\(\operatorname{adj}(A)\),并定義為:

\[\operatorname{adj}(A) \in \mathbb{R}^{n \times n}, \quad(\operatorname{adj}(A))_{i j}=(-1)^{i+j}\left|A_{\backslash j, \backslash i}\right| \]

(注意索引\(A_{\backslash j, \backslash i}\)中的變化)。可以看出,對于任何非奇異\(A \in \mathbb{R}^{n \times n}\)

\[A^{-1}=\frac{1}{|A|} \operatorname{adj}(A) \]

雖然這是一個很好的“顯式”的逆矩陣公式,但我們應該注意,從數字上講,有很多更有效的方法來計算逆矩陣。

3.11 二次型和半正定矩陣

給定方矩陣\(A \in \mathbb{R}^{n \times n}\)和向量\(x \in \mathbb{R}^{n}\),標量值\(x^T Ax\)被稱為二次型。 寫得清楚些,我們可以看到:

\[x^{T} A x=\sum_{i=1}^{n} x_{i}(A x)_{i}=\sum_{i=1}^{n} x_{i}\left(\sum_{j=1}^{n} A_{i j} x_{j}\right)=\sum_{i=1}^{n} \sum_{j=1}^{n} A_{i j} x_{i} x_{j} \]

注意:

\[x^{T} A x=\left(x^{T} A x\right)^{T}=x^{T} A^{T} x=x^{T}\left(\frac{1}{2} A+\frac{1}{2} A^{T}\right) x \]

第一個等號的是因為是標量的轉置與自身相等,而第二個等號是因為是我們平均兩個本身相等的量。 由此,我們可以得出結論,只有\(A\)的對稱部分有助于形成二次型。 出于這個原因,我們經常隱含地假設以二次型出現的矩陣是對稱陣。
我們給出以下定義:

  • 對于所有非零向量\(x \in \mathbb{R}^n\)\(x^TAx>0\),對稱陣\(A \in \mathbb{S}^n\)正定(positive definite,PD)。這通常表示為\(A\succ0\)(或\(A>0\)),并且通常將所有正定矩陣的集合表示為\(\mathbb{S}_{++}^n\)

  • 對于所有向量\(x^TAx\geq 0\),對稱矩陣\(A \in \mathbb{S}^n\)半正定(positive semidefinite ,PSD)。 這寫為(或\(A \succeq 0\)\(A≥0\)),并且所有半正定矩陣的集合通常表示為\(\mathbb{S}_+^n\)

  • 同樣,對稱矩陣\(A \in \mathbb{S}^n\)負定(negative definite,ND),如果對于所有非零\(x \in \mathbb{R}^n\),則\(x^TAx <0\)表示為\(A\prec0\)(或\(A <0\))。

  • 類似地,對稱矩陣\(A \in \mathbb{S}^n\)半負定(negative semidefinite,NSD),如果對于所有\(x \in \mathbb{R}^n\),則\(x^TAx \leq 0\)表示為\(A\preceq 0\)(或\(A≤0\))。

  • 最后,對稱矩陣\(A \in \mathbb{S}^n\)不定的,如果它既不是正半定也不是負半定,即,如果存在\(x_1,x_2 \in \mathbb{R}^n\),那么\(x_1^TAx_1>0\)\(x_2^TAx_2<0\)

很明顯,如果\(A\)是正定的,那么\(?A\)是負定的,反之亦然。同樣,如果\(A\)是半正定的,那么\(?A\)是是半負定的,反之亦然。如果果\(A\)是不定的,那么\(?A\)是也是不定的。

正定矩陣和負定矩陣的一個重要性質是它們總是滿秩,因此是可逆的。為了了解這是為什么,假設某個矩陣\(A \in \mathbb{S}^n\)不是滿秩。然后,假設\(A\)的第\(j\)列可以表示為其他\(n-1\)列的線性組合:

\[a_{j}=\sum_{i \neq j} x_{i} a_{i} \]

對于某些\(x_1,\cdots x_{j-1},x_{j + 1} ,\cdots ,x_n\in \mathbb{R}\)。設\(x_j = -1\),則:

\[Ax=\sum_{i \neq j} x_{i} a_{i}=0 \]

但這意味著對于某些非零向量\(x\)\(x^T Ax = 0\),因此\(A\)必須既不是正定也不是負定。如果\(A\)是正定或負定,則必須是滿秩。
最后,有一種類型的正定矩陣經常出現,因此值得特別提及。 給定矩陣\(A \in \mathbb{R}^{m \times n}\)(不一定是對稱或偶數平方),矩陣\(G = A^T A\)(有時稱為Gram矩陣)總是半正定的。 此外,如果\(m\geq n\)(同時為了方便起見,我們假設\(A\)是滿秩),則\(G = A^T A\)是正定的。

3.12 特征值和特征向量

給定一個方陣\(A \in\mathbb{R}^{n\times n}\),我們認為在以下條件下,\(\lambda \in\mathbb{C}\)\(A\)特征值\(x\in\mathbb{C}^n\)是相應的特征向量

\[Ax=\lambda x,x \ne 0 \]

直觀地說,這個定義意味著將\(A\)乘以向量\(x\)會得到一個新的向量,該向量指向與\(x\)相同的方向,但按系數\(\lambda\)縮放。值得注意的是,對于任何特征向量\(x\in\mathbb{C}^n\)和標量\(t\in\mathbb{C}\)\(A(cx)=cAx=c\lambda x=\lambda(cx)\)\(cx\)也是一個特征向量。因此,當我們討論與\(\lambda\)相關的特征向量時,我們通常假設特征向量被標準化為長度為1(這仍然會造成一些歧義,因為\(x\)\(?x\)都是特征向量,但我們必須接受這一點)。

我們可以重寫上面的等式來說明\((\lambda,x)\)\(A\)的特征值和特征向量的組合:

\[(\lambda I-A)x=0,x \ne 0 \]

但是\((\lambda I-A)x=0\)只有當\((\lambda I-A)\)有一個非空零空間時,同時\((\lambda I-A)\)是奇異的,\(x\)才具有非零解,即:

\[|(\lambda I-A)|=0 \]

現在,我們可以使用行列式的先前定義將表達式\(|(\lambda I-A)|\)擴展為\(\lambda\)中的(非常大的)多項式,其中,\(\lambda\)的度為\(n\)。它通常被稱為矩陣\(A\)的特征多項式。

然后我們找到這個特征多項式的\(n\)(可能是復數)根,并用\(\lambda_1,\cdots,\lambda_n\)表示。這些都是矩陣\(A\)的特征值,但我們注意到它們可能不明顯。為了找到特征值\(\lambda_i\)對應的特征向量,我們只需解線性方程\((\lambda I-A)x=0\),因為\((\lambda I-A)\)是奇異的,所以保證有一個非零解(但也可能有多個或無窮多個解)。

應該注意的是,這不是實際用于數值計算特征值和特征向量的方法(記住行列式的完全展開式有\(n!\)項),這是一個數學上的爭議。

以下是特征值和特征向量的屬性(所有假設在\(A \in\mathbb{R}^{n\times n}\)具有特征值\(\lambda_1,\cdots,\lambda_n\)的前提下):

  • \(A\)的跡等于其特征值之和

    \[\operatorname{tr} A=\sum_{i=1}^{n} \lambda_{i} \]
  • \(A\)的行列式等于其特征值的乘積

    \[|A|=\prod_{i=1}^{n} \lambda_{i} \]
  • \(A\)的秩等于\(A\)的非零特征值的個數

  • 假設\(A\)非奇異,其特征值為\(\lambda\)和特征向量為\(x\)。那么\(1/\lambda\)是具有相關特征向量\(x\)\(A^{-1}\)的特征值,即\(A^{-1}x=(1/\lambda)x\)。(要證明這一點,取特征向量方程,\(Ax=\lambda x\),兩邊都左乘\(A^{-1}\))

  • 對角陣的特征值\(d=diag(d_1,\cdots,d_n)\)實際上就是對角元素\(d_1,\cdots,d_n\)

3.13 對稱矩陣的特征值和特征向量

通常情況下,一般的方陣的特征值和特征向量的結構可以很細微地表示出來。
值得慶幸的是,在機器學習的大多數場景下,處理對稱實矩陣就足夠了,其處理的對稱實矩陣的特征值和特征向量具有顯著的特性。

在本節中,我們假設\(A\)是實對稱矩陣, 具有以下屬性:

  1. \(A\)的所有特征值都是實數。 我們用用\(\lambda_1,\cdots,\lambda_n\)表示。

  2. 存在一組特征向量\(u_1,\cdots u_n\),對于所有\(i\)\(u_i\)是具有特征值\(\lambda_{i}\)\(b\)的特征向量。\(u_1,\cdots u_n\)是單位向量并且彼此正交。

\(U\)是包含\(u_i\)作為列的正交矩陣:

\[U=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {u_{1}} & {u_{2}} & {\cdots} & {u_{n}} \\ { |} & { |} & {} & { |}\end{array}\right] \]

\(\Lambda= diag(\lambda_1,\cdots,\lambda_n)\)是包含\(\lambda_1,\cdots,\lambda_n\)作為對角線上的元素的對角矩陣。 使用2.3節的方程(2)中的矩陣 - 矩陣向量乘法的方法,我們可以驗證:

\[A U=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {A u_{1}} & {A u_{2}} & {\cdots} & {A u_{n}} \\ { |} & { |} & {} & { |}\end{array}\right]=\left[\begin{array}{ccc}{ |} & { |} & { |} & { |}\\ {\lambda_{1} u_{1}} & {\lambda_{2} u_{2}} & {\cdots} & {\lambda_{n} u_{n}} \\ { |} & { |} & {|} & { |}\end{array}\right]=U \operatorname{diag}\left(\lambda_{1}, \ldots, \lambda_{n}\right)=U \Lambda \]

考慮到正交矩陣\(U\)滿足\(UU^T=I\),利用上面的方程,我們得到:

\[A=AUU^T=U\Lambda U^T \]

這種\(A\)的新的表示形式為\(U\Lambda U^T\),通常稱為矩陣\(A\)的對角化。術語對角化是這樣來的:通過這種表示,我們通常可以有效地將對稱矩陣\(A\)視為對角矩陣 , 這更容易理解。關于由特征向量\(U\)定義的基礎, 我們將通過幾個例子詳細說明。

背景知識:代表另一個基的向量。

任何正交矩陣\(U=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {u_{1}} & {u_{2}} & {\cdots} & {u_{n}} \\ { |} & { |} & {} & { |}\end{array}\right]\)定義了一個新的屬于\(\mathbb {R}^{n}\)的基(坐標系),意義如下:對于任何向量\(x \in\mathbb{R}^{n}\)都可以表示為\(u_1,\cdots u_n\)的線性組合,其系數為\(x_1,\cdots x_n\)

\[x=\hat x_1u_1+\cdots +\cdots \hat x_nu_n=U\hat x \]

在第二個等式中,我們使用矩陣和向量相乘的方法。 實際上,這種\(\hat x\)是唯一存在的:

\[x=U \hat{x} \Leftrightarrow U^{T} x=\hat{x} \]

換句話說,向量\(\hat x=U^Tx\)可以作為向量\(x\)的另一種表示,與\(U\)定義的基有關。

“對角化”矩陣向量乘法。 通過上面的設置,我們將看到左乘矩陣\(A\)可以被視為左乘以對角矩陣關于特征向量的基。 假設\(x\)是一個向量,\(\hat x\)表示\(U\)的基。設\(z=Ax\)為矩陣向量積。現在讓我們計算關于\(U\)的基\(z\)
然后,再利用\(UU^T=U^T=I\)和方程\(A=AUU^T=U\Lambda U^T\),我們得到:

\[\hat{z}=U^{T} z=U^{T} A x=U^{T} U \Lambda U^{T} x=\Lambda \hat{x}=\left[\begin{array}{c}{\lambda_{1} \hat{x}_{1}} \\ {\lambda_{2} \hat{x}_{2}} \\ {\vdots} \\ {\lambda_{n} \hat{x}_{n}}\end{array}\right] \]

我們可以看到,原始空間中的左乘矩陣\(A\)等于左乘對角矩陣\(\Lambda\)相對于新的基,即僅將每個坐標縮放相應的特征值。
在新的基上,矩陣多次相乘也變得簡單多了。例如,假設\(q=AAAx\)。根據\(A\)的元素導出\(q\)的分析形式,使用原始的基可能是一場噩夢,但使用新的基就容易多了:

\[\hat{q}=U^{T} q=U^{T} AAA x=U^{T} U \Lambda U^{T} U \Lambda U^{T} U \Lambda U^{T} x=\Lambda^{3} \hat{x}=\left[\begin{array}{c}{\lambda_{1}^{3} \hat{x}_{1}} \\ {\lambda_{2}^{3} \hat{x}_{2}} \\ {\vdots} \\ {\lambda_{n}^{3} \hat{x}_{n}}\end{array}\right] \]

“對角化”二次型。作為直接的推論,二次型\(x^TAx\)也可以在新的基上簡化。

\[x^{T} A x=x^{T} U \Lambda U^{T} x=\hat{x} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \]

(回想一下,在舊的表示法中,\(x^{T} A x=\sum_{i=1, j=1}^{n} x_{i} x_{j} A_{i j}\)涉及一個\(n^2\)項的和,而不是上面等式中的\(n\)項。)利用這個觀點,我們還可以證明矩陣\(A\)的正定性完全取決于其特征值的符號:

  1. 如果所有的\(\lambda_i>0\),則矩陣\(A\)正定的,因為對于任意的\(\hat x \ne 0\),\(x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}>0\)
  2. 如果所有的\(\lambda_i\geq 0\),則矩陣\(A\)是為正半定,因為對于任意的$\hat x \(,\)x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \geq 0$
  3. 同樣,如果所有\(\lambda_i<0\)\(\lambda_i\leq 0\),則矩陣\(A\)分別為負定或半負定。
  4. 最后,如果\(A\)同時具有正特征值和負特征值,比如λ\(\lambda_i>0\)\(\lambda_j<0\),那么它是不定的。這是因為如果我們讓\(\hat x\)滿足\(\hat x_i=1\)\(\hat x_k=0\),同時所有的\(k\ne i\),那么\(x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}>0\) ,我們讓\(\hat x\)滿足\(\hat x_i=1\)\(\hat x_k=0\),同時所有的\(k\ne i\),那么\(x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}<0\)

特征值和特征向量經常出現的應用是最大化矩陣的某些函數。特別是對于矩陣\(A \in \mathbb{S}^{n}\),考慮以下最大化問題:

\[\max _{x \in \mathbb{R}^{n}} \ x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \quad \text { subject to }\|x\|_{2}^{2}=1 \]

也就是說,我們要找到(范數1)的向量,它使二次型最大化。假設特征值的階數為\(\lambda_1 \geq \lambda _2 \geq \cdots \lambda_n\),此優化問題的最優值為\(\lambda_1\),且與\(\lambda_1\)對應的任何特征向量\(u_1\)都是最大值之一。(如果\(\lambda_1 > \lambda_2\),那么有一個與特征值\(\lambda_1\)對應的唯一特征向量,它是上面那個優化問題的唯一最大值。)
我們可以通過使用對角化技術來證明這一點:注意,通過公式\(\|U x\|_{2}=\|x\|_{2}\)推出\(\|x\|_{2}=\|\hat{x}\|_{2}\),并利用公式:

\(x^{T} A x=x^{T} U \Lambda U^{T} x=\hat{x} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}\),我們可以將上面那個優化問題改寫為:

\[\max _{\hat{x} \in \mathbb{R}^{n}}\ \hat{x}^{T} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \quad \text { subject to }\|\hat{x}\|_{2}^{2}=1 \]

然后,我們得到目標的上界為\(\lambda_1\)

\[\hat{x}^{T} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \leq \sum_{i=1}^{n} \lambda_{1} \hat{x}_{i}^{2}=\lambda_{1} \]

此外,設置\(\hat{x}=\left[\begin{array}{c}{1} \\ {0} \\ {\vdots} \\ {0}\end{array}\right]\)可讓上述等式成立,這與設置\(x=u_1\)相對應。

4.矩陣微積分

雖然前面章節中的主題通常包含在線性代數的標準課程中,但似乎很少涉及(我們將廣泛使用)的一個主題是微積分擴展到向量設置展。盡管我們使用的所有實際微積分都是相對微不足道的,但是符號通常會使事情看起來比實際困難得多。 在本節中,我們將介紹矩陣微積分的一些基本定義,并提供一些示例。

4.1 梯度

假設\(f: \mathbb{R}^{m \times n} \rightarrow \mathbb{R}\)是將維度為\(m \times n\)的矩陣\(A\in \mathbb{R}^{m \times n}\)作為輸入并返回實數值的函數。 然后\(f\)的梯度(相對于\(A\in \mathbb{R}^{m \times n}\))是偏導數矩陣,定義如下:

\[\nabla_{A} f(A) \in \mathbb{R}^{m \times n}=\left[\begin{array}{cccc}{\frac{\partial f(A)}{\partial A_{11}}} & {\frac{\partial f(A)}{\partial A_{12}}} & {\cdots} & {\frac{\partial f(A)}{\partial A_{1n}}} \\ {\frac{\partial f(A)}{\partial A_{21}}} & {\frac{\partial f(A)}{\partial A_{22}}} & {\cdots} & {\frac{\partial f(A)}{\partial A_{2 n}}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {\frac{\partial f(A)}{\partial A_{m 1}}} & {\frac{\partial f(A)}{\partial A_{m 2}}} & {\cdots} & {\frac{\partial f(A)}{\partial A_{m n}}}\end{array}\right] \]

即,\(m \times n\)矩陣:

\[\left(\nabla_{A} f(A)\right)_{i j}=\frac{\partial f(A)}{\partial A_{i j}} \]

請注意,$\nabla_{A} f(A) \(的維度始終與\)A\(的維度相同。特殊情況,如果\)A\(只是向量\)A\in \mathbb{R}^{n}$,則

\[\nabla_{x} f(x)=\left[\begin{array}{c}{\frac{\partial f(x)}{\partial x_{1}}} \\ {\frac{\partial f(x)}{\partial x_{2}}} \\ {\vdots} \\ {\frac{\partial f(x)}{\partial x_{n}}}\end{array}\right] \]

重要的是要記住,只有當函數是實值時,即如果函數返回標量值,才定義函數的梯度。例如,\(A\in \mathbb{R}^{m \times n}\)相對于\(x\),我們不能取\(Ax\)的梯度,因為這個量是向量值。
它直接從偏導數的等價性質得出:

  • \(\nabla_{x}(f(x)+g(x))=\nabla_{x} f(x)+\nabla_{x} g(x)\)

  • 對于\(t \in \mathbb{R}\)\(\nabla_{x}(t f(x))=t \nabla_{x} f(x)\)

原則上,梯度是偏導數對多變量函數的自然延伸。然而,在實踐中,由于符號的原因,使用梯度有時是很困難的。例如,假設\(A\in \mathbb{R}^{m \times n}\)是一個固定系數矩陣,假設\(b\in \mathbb{R}^{m}\)是一個固定系數向量。設\(f: \mathbb{R}^{m \times n} \rightarrow \mathbb{R}\)\(f(z)=z^Tz\)定義的函數,因此\(\nabla_{z}f(z)=2z\)。但現在考慮表達式,

\[\nabla f(Ax) \]

該表達式應該如何解釋? 至少有兩種可能性:
1.在第一個解釋中,回想起\(\nabla_{z}f(z)=2z\)。 在這里,我們將\(\nabla f(Ax)\)解釋為評估點\(Ax\)處的梯度,因此:

\[\nabla f(A x)=2(A x)=2 A x \in \mathbb{R}^{m} \]

2.在第二種解釋中,我們將數量\(f(Ax)\)視為輸入變量\(x\)的函數。 更正式地說,設\(g(x) =f(Ax)\)。 然后在這個解釋中:

\[\nabla f(A x)=\nabla_{x} g(x) \in \mathbb{R}^{n} \]

在這里,我們可以看到這兩種解釋確實不同。 一種解釋產生\(m\)維向量作為結果,而另一種解釋產生\(n\)維向量作為結果! 我們怎么解決這個問題?

這里,關鍵是要明確我們要區分的變量。
在第一種情況下,我們將函數\(f\)與其參數\(z\)進行區分,然后替換參數\(Ax\)
在第二種情況下,我們將復合函數\(g(x)=f(Ax)\)直接與\(x\)進行微分。

我們將第一種情況表示為\(\nabla zf(Ax)\),第二種情況表示為\(\nabla xf(Ax)\)

保持符號清晰是非常重要的,以后完成課程作業時候你就會發現。

4.2 黑塞矩陣

假設\(f: \mathbb{R}^{n} \rightarrow \mathbb{R}\)是一個函數,它接受\(\mathbb{R}^{n}\)中的向量并返回實數。那么關于\(x\)黑塞矩陣(也有翻譯作海森矩陣),寫做:\(\nabla_x ^2 f(A x)\),或者簡單地說,\(H\)\(n \times n\)矩陣的偏導數:

\[\nabla_{x}^{2} f(x) \in \mathbb{R}^{n \times n}=\left[\begin{array}{cccc}{\frac{\partial^{2} f(x)}{\partial x_{1}^{2}}} & {\frac{\partial^{2} f(x)}{\partial x_{1} \partial x_{2}}} & {\cdots} & {\frac{\partial^{2} f(x)}{\partial x_{1} \partial x_{n}}} \\ {\frac{\partial^{2} f(x)}{\partial x_{2} \partial x_{1}}} & {\frac{\partial^{2} f(x)}{\partial x_{2}^{2}}} & {\cdots} & {\frac{\partial^{2} f(x)}{\partial x_{2} \partial x_{n}}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {\frac{\partial^{2} f(x)}{\partial x_{n} \partial x_{1}}} & {\frac{\partial^{2} f(x)}{\partial x_{n} \partial x_{2}}} & {\cdots} & {\frac{\partial^{2} f(x)}{\partial x_{n}^{2}}}\end{array}\right] \]

換句話說,\(\nabla_{x}^{2} f(x) \in \mathbb{R}^{n \times n}\),其:

\[\left(\nabla_{x}^{2} f(x)\right)_{i j}=\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{j}} \]

注意:黑塞矩陣通常是對稱陣:

\[\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{j}}=\frac{\partial^{2} f(x)}{\partial x_{j} \partial x_{i}} \]

與梯度相似,只有當\(f(x)\)為實值時才定義黑塞矩陣。

很自然地認為梯度與向量函數的一階導數的相似,而黑塞矩陣與二階導數的相似(我們使用的符號也暗示了這種關系)。 這種直覺通常是正確的,但需要記住以下幾個注意事項。
首先,對于一個變量\(f: \mathbb{R} \rightarrow \mathbb{R}\)的實值函數,它的基本定義:二階導數是一階導數的導數,即:

\[\frac{\partial^{2} f(x)}{\partial x^{2}}=\frac{\partial}{\partial x} \frac{\partial}{\partial x} f(x) \]

然而,對于向量的函數,函數的梯度是一個向量,我們不能取向量的梯度,即:

\[\nabla_{x} \nabla_{x} f(x)=\nabla_{x}\left[\begin{array}{c}{\frac{\partial f(x)}{\partial x_{1}}} \\ {\frac{\partial f(x)}{\partial x_{2}}} \\ {\vdots} \\ {\frac{\partial f(x)}{\partial x_{n}}}\end{array}\right] \]

上面這個表達式沒有意義。 因此,黑塞矩陣不是梯度的梯度。 然而,下面這種情況卻這幾乎是正確的:如果我們看一下梯度\(\left(\nabla_{x} f(x)\right)_{i}=\partial f(x) / \partial x_{i}\)的第\(i\)個元素,并取關于于\(x\)的梯度我們得到:

\[\nabla_{x} \frac{\partial f(x)}{\partial x_{i}}=\left[\begin{array}{c}{\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{1}}} \\ {\frac{\partial^{2} f(x)}{\partial x_{2} \partial x_{2}}} \\ {\vdots} \\ {\frac{\partial f(x)}{\partial x_{i} \partial x_{n}}}\end{array}\right] \]

這是黑塞矩陣第\(i\)行(列),所以:

\[\nabla_{x}^{2} f(x)=\left[\nabla_{x}\left(\nabla_{x} f(x)\right)_{1} \quad \nabla_{x}\left(\nabla_{x} f(x)\right)_{2} \quad \cdots \quad \nabla_{x}\left(\nabla_{x} f(x)\right)_{n}\right] \]

簡單地說:我們可以說由于:\(\nabla_{x}^{2} f(x)=\nabla_{x}\left(\nabla_{x} f(x)\right)^{T}\),只要我們理解,這實際上是取\(\nabla_{x} f(x)\)的每個元素的梯度,而不是整個向量的梯度。

最后,請注意,雖然我們可以對矩陣\(A\in \mathbb{R}^{n}\)取梯度,但對于這門課,我們只考慮對向量\(x \in \mathbb{R}^{n}\)取黑塞矩陣。
這會方便很多(事實上,我們所做的任何計算都不要求我們找到關于矩陣的黑森方程),因為關于矩陣的黑塞方程就必須對矩陣所有元素求偏導數\(\partial^{2} f(A) /\left(\partial A_{i j} \partial A_{k \ell}\right)\),將其表示為矩陣相當麻煩。

4.3 二次函數和線性函數的梯度和黑塞矩陣

現在讓我們嘗試確定幾個簡單函數的梯度和黑塞矩陣。 應該注意的是,這里給出的所有梯度都是CS229講義中給出的梯度的特殊情況。

對于\(x \in \mathbb{R}^{n}\), 設\(f(x)=b^Tx\) 的某些已知向量\(b \in \mathbb{R}^{n}\) ,則:

\[f(x)=\sum_{i=1}^{n} b_{i} x_{i} \]

所以:

\[\frac{\partial f(x)}{\partial x_{k}}=\frac{\partial}{\partial x_{k}} \sum_{i=1}^{n} b_{i} x_{i}=b_{k} \]

由此我們可以很容易地看出\(\nabla_{x} b^{T} x=b\)。 這應該與單變量微積分中的類似情況進行比較,其中\(\partial /(\partial x) a x=a\)
現在考慮\(A\in \mathbb{S}^{n}\)的二次函數\(f(x)=x^TAx\)。 記住這一點:

\[f(x)=\sum_{i=1}^{n} \sum_{j=1}^{n} A_{i j} x_{i} x_{j} \]

為了取偏導數,我們將分別考慮包括\(x_k\)\(x_2^k\)因子的項:

\[\begin{aligned} \frac{\partial f(x)}{\partial x_{k}} &=\frac{\partial}{\partial x_{k}} \sum_{i=1}^{n} \sum_{j=1}^{n} A_{i j} x_{i} x_{j} \\ &=\frac{\partial}{\partial x_{k}}\left[\sum_{i \neq k} \sum_{j \neq k} A_{i j} x_{i} x_{j}+\sum_{i \neq k} A_{i k} x_{i} x_{k}+\sum_{j \neq k} A_{k j} x_{k} x_{j}+A_{k k} x_{k}^{2}\right] \\ &=\sum_{i \neq k} A_{i k} x_{i}+\sum_{j \neq k} A_{k j} x_{j}+2 A_{k k} x_{k} \\ &=\sum_{i=1}^{n} A_{i k} x_{i}+\sum_{j=1}^{n} A_{k j} x_{j}=2 \sum_{i=1}^{n} A_{k i} x_{i} \end{aligned} \]

最后一個等式,是因為\(A\)是對稱的(我們可以安全地假設,因為它以二次形式出現)。 注意,\(\nabla_{x} f(x)\)的第\(k\)個元素是\(A\)\(x\)的第\(k\)行的內積。 因此,\(\nabla_{x} x^{T} A x=2 A x\)。 同樣,這應該提醒你單變量微積分中的類似事實,即\(\partial /(\partial x) a x^{2}=2 a x\)

最后,讓我們來看看二次函數\(f(x)=x^TAx\)黑塞矩陣(顯然,線性函數\(b^Tx\)的黑塞矩陣為零)。在這種情況下:

\[\frac{\partial^{2} f(x)}{\partial x_{k} \partial x_{\ell}}=\frac{\partial}{\partial x_{k}}\left[\frac{\partial f(x)}{\partial x_{\ell}}\right]=\frac{\partial}{\partial x_{k}}\left[2 \sum_{i=1}^{n} A_{\ell i} x_{i}\right]=2 A_{\ell k}=2 A_{k \ell} \]

因此,應該很清楚\(\nabla_{x}^2 x^{T} A x=2 A\),這應該是完全可以理解的(同樣類似于\(\partial^2 /(\partial x^2) a x^{2}=2a\)的單變量事實)。

簡要概括起來:

  • \(\nabla_{x} b^{T} x=b\)

  • \(\nabla_{x} x^{T} A x=2 A x\) (如果\(A\)是對稱陣)

  • $\nabla_{x}^2 x^{T} A x=2 A $ (如果\(A\)是對稱陣)

4.4 最小二乘法

讓我們應用上一節中得到的方程來推導最小二乘方程。假設我們得到矩陣\(A\in \mathbb{R}^{m \times n}\)(為了簡單起見,我們假設\(A\)是滿秩)和向量\(b\in \mathbb{R}^{m}\),從而使\(b \notin \mathcal{R}(A)\)。在這種情況下,我們將無法找到向量\(x\in \mathbb{R}^{n}\),由于\(Ax = b\),因此我們想要找到一個向量\(x\),使得\(Ax\)盡可能接近 \(b\),用歐幾里德范數的平方$|A x-b|_{2}^{2} $來衡量。

使用公式\(\|x\|^{2}=x^Tx\),我們可以得到:

\[\begin{aligned}\|A x-b\|_{2}^{2} &=(A x-b)^{T}(A x-b) \\ &=x^{T} A^{T} A x-2 b^{T} A x+b^{T} b \end{aligned} \]

根據\(x\)的梯度,并利用上一節中推導的性質:

\[\begin{aligned} \nabla_{x}\left(x^{T} A^{T} A x-2 b^{T} A x+b^{T} b\right) &=\nabla_{x} x^{T} A^{T} A x-\nabla_{x} 2 b^{T} A x+\nabla_{x} b^{T} b \\ &=2 A^{T} A x-2 A^{T} b \end{aligned} \]

將最后一個表達式設置為零,然后解出\(x\),得到了正規方程:

\[x = (A^TA)^{-1}A^Tb \]

這和我們在課堂上得到的相同。

4.5 行列式的梯度

現在讓我們考慮一種情況,我們找到一個函數相對于矩陣的梯度,也就是說,對于\(A\in \mathbb{R}^{n \times n}\),我們要找到\(\nabla_{A}|A|\)。回想一下我們對行列式的討論:

\[|A|=\sum_{i=1}^{n}(-1)^{i+j} A_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } j \in 1, \ldots, n) \]

所以:

\[\frac{\partial}{\partial A_{k \ell}}|A|=\frac{\partial}{\partial A_{k \ell}} \sum_{i=1}^{n}(-1)^{i+j} A_{i j}\left|A_{\backslash i, \backslash j}\right|=(-1)^{k+\ell}\left|A_{\backslash k,\backslash \ell}\right|=(\operatorname{adj}(A))_{\ell k} \]

從這里可以知道,它直接從伴隨矩陣的性質得出:

\[\nabla_{A}|A|=(\operatorname{adj}(A))^{T}=|A| A^{-T} \]

現在我們來考慮函數\(f : \mathbb{S}_{++}^{n} \rightarrow \mathbb{R}\)\(f(A)=\log |A|\)。注意,我們必須將\(f\)的域限制為正定矩陣,因為這確保了\(|A|>0\),因此\(|A|\)的對數是實數。在這種情況下,我們可以使用鏈式法則(沒什么奇怪的,只是單變量演算中的普通鏈式法則)來看看:

\[\frac{\partial \log |A|}{\partial A_{i j}}=\frac{\partial \log |A|}{\partial|A|} \frac{\partial|A|}{\partial A_{i j}}=\frac{1}{|A|} \frac{\partial|A|}{\partial A_{i j}} \]

從這一點可以明顯看出:

\[\nabla_{A} \log |A|=\frac{1}{|A|} \nabla_{A}|A|=A^{-1} \]

我們可以在最后一個表達式中刪除轉置,因為\(A\)是對稱的。注意與單值情況的相似性,其中\(\partial /(\partial x) \log x=1 / x\)

4.6 特征值優化

最后,我們使用矩陣演算以直接導致特征值/特征向量分析的方式求解優化問題。 考慮以下等式約束優化問題:

\[\max _{x \in \mathbb{R}^{n}} x^{T} A x \quad \text { subject to }\|x\|_{2}^{2}=1 \]

對于對稱矩陣\(A\in \mathbb{S}^{n}\)。求解等式約束優化問題的標準方法是采用拉格朗日形式,一種包含等式約束的目標函數,在這種情況下,拉格朗日函數可由以下公式給出:

\[\mathcal{L}(x, \lambda)=x^{T} A x-\lambda x^{T} x \]

其中,$\lambda \(被稱為與等式約束關聯的拉格朗日乘子。可以確定,要使\)x*$成為問題的最佳點,拉格朗日的梯度必須在$x*$處為零(這不是唯一的條件,但它是必需的)。也就是說,

\[\nabla_{x} \mathcal{L}(x, \lambda)=\nabla_{x}\left(x^{T} A x-\lambda x^{T} x\right)=2 A^{T} x-2 \lambda x=0 \]

請注意,這只是線性方程\(Ax =\lambda x\)。 這表明假設\(x^T x = 1\),可能最大化(或最小化)\(x^T Ax\)的唯一點是\(A\)的特征向量。

線性代數和概率論都已經翻譯完畢,請關注github的更新,若有修改將在github上更新

歡迎大家提交PR,對語言進行潤色。

翻譯:黃海廣

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40264.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40264.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40264.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

簡述 TCP 和 UDP 的區別以及優缺點和使用場景?

一、TCP與UDP區別總結&#xff1a; 1、TCP面向連接&#xff08;如打電話要先撥號建立連接&#xff09;;UDP是無連接的&#xff0c;即發送數據之前不需要建立連接 2、TCP提供可靠的服務。也就是說&#xff0c;通過TCP連接傳送的數據&#xff0c;無差錯&#xff0c;不丟失&…

SQL Injection

SQL Injection 就是通過把惡意的sql命令插入web表單遞交給服務器&#xff0c;或者輸入域名或頁面請求的查詢字符串遞交到服務器&#xff0c;達到欺騙服務器&#xff0c;讓服務器執行這些惡意的sql命令&#xff0c;從而讓攻擊者&#xff0c;可以繞過一些機制&#xff0c;達到直…

Vue使用element-ui

main.js配置 //引入Vue import Vue from vue //引入App import App from ./App.vue//完整引入 //引入ElementUI組件庫 // import ElementUI from element-ui; //引入ElementUI全部樣式 // import element-ui/lib/theme-chalk/index.css;//按需引入 import { Button,Row,DatePi…

記一次前端直接上傳圖片到oss報錯

前端直接上傳圖片到阿里云oss,相關過程官網和網上資料已經很詳細&#xff0c;不做贅述。 但這個過程比較復雜&#xff0c;前后端對接過程中很容易出現報錯&#xff0c;這里遇到了以下報錯&#xff0c;不容易排查。 請求顯示net::ERR_NAME_NOT_RESOLVED錯誤&#xff0c;catch輸…

如何在windows電腦安裝多個tomcat服務器和亂碼問題

前提條件安裝jdk 以17版本為例&#xff0c;將jdk8卸載干凈 1.首先進入tomcat官網下載 tomcat網址 這里下載tomcat10為例子 1.1 這里選擇方式一 下載解壓版 2.解壓后拷貝三份 分別命名為 8081、 8082、 8083 3.分別對每個tomcat執行以下操作 3.1 找到tomcat所在webapps文…

Flask框架-配置日志(1):flask使用日志

一、項目結構 study_flask --| apps/ --| __init__.py --| base/ --| logger.py --| __init__.py --| app.py 二、配置日志功能 1、base/logger.py import os import logging from datetime import datetime,date,timedelta from logging.handlers import RotatingFileHandl…

python 開啟5個進程處理list數據

要在 Python 中開啟多個進程來處理列表數據&#xff0c;你可以使用 multiprocessing 模塊。下面是一個開啟5個進程處理列表數據的示例代碼&#xff1a; python import multiprocessingdef process_item(item):# 在這里處理每個列表項的邏輯print(f"Processing item: {ite…

LeetCode[56]合并區間

難度&#xff1a;Medium 題目&#xff1a; 以數組 intervals 表示若干個區間的集合&#xff0c;其中單個區間為 intervals[i] [starti, endi] 。請你合并所有重疊的區間&#xff0c;并返回 一個不重疊的區間數組&#xff0c;該數組需恰好覆蓋輸入中的所有區間 。 示例 1&…

Android Studio Giraffe控制臺亂碼

這幾天在使用Android Studio Giraffe進行一個App的開發&#xff0c;在項目構建的時候&#xff0c;控制臺輸出中文都是亂碼&#xff0c;看著很不爽&#xff0c;進行了兩項配置&#xff0c;中文就可以正常輸出了&#xff0c;看起來就爽多了。 第一個配置&#xff1a;點擊Help菜單…

Redis對象和五種常用數據類型

Redisobject 對象 對象分為鍵對象和值對象 鍵對象一般是string類型 值對象可以是string&#xff0c;list&#xff0c;set,zset,hash q&#xff1a;redisobj的結構 typedef struct redisObject { //類型 unsigned type:4; //編碼 unsigned encoding:4; //指向底層實現…

webrtc Thread 和 TaskQueue 的 應用和思考

webrtc Thread 和 TaskQueue 的 應用和思考 Thread #include "rtc_base/thread.h"void FunctionToRunOnThread() {// Your threaded logic here.printf("Function running on the thread!\n"); }int main() {rtc::Thread* thread rtc::Thread::Create()…

WebService—XFire配置筆記

在學習之前,一直以為WebService就是一個工具,在兩個服務器之間建立一個通信,幫我們把需要傳輸的數據組織成規范的XML數據并發送到目的地,實際情況也確實是這樣的,不過更高級一點的是,XFire不但可以幫我們生成XML發送,而且可以在接收了xml之后還可以直接返回對象給我們用…

iptabels路由轉發

要配置iptables進行路由轉發&#xff0c;需要執行以下步驟&#xff1a; 確保系統已經開啟了IP轉發功能。可以通過執行以下命令來檢查&#xff1a; sysctl net.ipv4.ip_forward如果返回的值為1&#xff0c;表示已經開啟了IP轉發功能。如果返回的值為0&#xff0c;可以通過執行…

神經網絡基礎-神經網絡補充概念-29-為什么使用深層表示

概念 深層表示&#xff08;Deep Representation&#xff09;是指在深度神經網絡的多個隱藏層中逐層提取和學習數據的特征表示。 使用深層表示的原因 高維特征提取&#xff1a;深層神經網絡可以從原始數據中自動學習高維抽象特征。每個隱藏層都對數據進行一些變換&#xff0c…

“深入探索JVM內部機制:解密Java虛擬機的奧秘“

標題&#xff1a;深入探索JVM內部機制&#xff1a;解密Java虛擬機的奧秘 摘要&#xff1a;本文將深入探索Java虛擬機&#xff08;JVM&#xff09;的內部機制&#xff0c;介紹JVM的基本原理、運行時數據區域以及垃圾回收機制&#xff0c;并通過示例代碼解釋這些概念。 正文&am…

PG-DBA培訓14:PostgreSQL數據庫升級與遷移

一、風哥PG-DBA培訓14&#xff1a;PostgreSQL數據庫升級與遷移 課程目標&#xff1a; 本課程由風哥發布的基于PostgreSQL數據庫的系列課程&#xff0c;本課程屬于PostgreSQL備份恢復與遷移升級階段之PostgreSQL數據庫升級與遷移&#xff0c;學完本課程可以PostgreSQL數據庫升…

炒股票怎么加杠桿_融資融券賬戶怎么開通

炒股票作為一種投資方式&#xff0c;可以帶來不錯的回報。然而&#xff0c;對于那些希望以較小的資金獲得更高收益的投資者來說&#xff0c;加杠桿炒股票是一個值得考慮的選擇。本文將為您介紹加杠桿炒股票的意義&#xff0c;以及如何開通融資融券賬戶。 加杠桿炒股票的意義&a…

Centos8安裝docker并配置Kali Linux圖形化界面

鑒于目前網上沒有完整的好用的docker安裝kali桌面連接的教程&#xff0c;所以我想做一個。 準備工作 麻了&#xff0c;這服務器供應商提供的鏡像是真的純凈&#xff0c;純凈到啥都沒有。 問題一&#xff1a;Centos8源有問題 Error: Failed to download metadata for repo ap…

vue入門(增查改!)

<template><div><!-- 搜索欄 --><el-card id"search"><el-row><el-col :span"20"><el-input v-model"searchModel.name" placeholder"根據名字查詢"></el-input><el-input v-mode…

STM32 FLASH 讀寫數據

1. 《STM32 中文參考手冊》&#xff0c;需要查看芯片數據手冊&#xff0c;代碼起始地址一般都是0x8000 0000&#xff0c;這是存放整個項目代碼的起始地址 2. 編譯信息查看代碼大小&#xff0c;修改代碼后第一次編譯后會有這個提示信息 2.1 修改代碼后編譯&#xff0c;會有提示…