CS229 斯坦福大學機器學習複習材料(數學基礎) – 線性代數

CS229 斯坦福大學機器學習複習材料(數學基礎) – 線性代數

線性代數回顧與參考

1 基本概念和符號

線性代數提供了一種緊湊地表示和運算「線性方程組」的方法。例如,考慮以下方程組:

4x15x2=132x1+3x2=9.4x_{\scriptscriptstyle 1} – 5x_{\scriptscriptstyle 2} = -13\\
-2x_{\scriptscriptstyle 1} + 3x_{\scriptscriptstyle 2} = 9.

這是兩個方程和兩個變量,正如你從高中代數中所知,你可以找到

x1x_1

x2x_2

的唯一解(除非方程以某種方式退化,例如,如果第二個方程只是第一個的倍數,但在上面的情況下,實際上只有一個唯一解)。 在矩陣表示法中,我們可以更緊湊地表達:

Ax=bAx= b

其中

A=[4523],b=[139].A=\begin{bmatrix}
4 & -5 \\
-2 & 3
\end{bmatrix},
b=\begin{bmatrix}
-13 \\
9
\end{bmatrix}.

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

1.1 基本符號

我們使用以下符號:

  • ARm×nA \in \Bbb{R}^{m \times n}

    表示一個

    mm

    nn

    列的矩陣,其中

    AA

    的各項都是實數。

  • xRn\boldsymbol{x} \in \Bbb{R}^{n}

    表示具有

    nn

    個元素的向量。按照慣例,

    nn

    維向量。通常被認為是

    nn

    11

    列的矩陣,稱為列向量。如果我們想表示一個行向量: 具有

    11

    行和

    nn

    列的矩陣 – 我們通常寫

    xT\boldsymbol{x}^T

    (這裡

    xT\boldsymbol{x}^T

    表示

    x\boldsymbol{x}

    的轉置,我們稍後將定義它)。

  • xix_i

    表示向量

    x\boldsymbol{x}

    的第

    ii

    個元素:

    x=[x1x2xn].\boldsymbol{x}=\begin{bmatrix}
    x_1 \\
    x_2 \\
    \vdots \\
    x_n
    \end{bmatrix}.

  • 我們用符號

    aija_{\scriptscriptstyle ij}

    (or

    AijA_{ij}

    ,

    Ai,jA_{i,j}

    )表示

    AA

    的第

    ii

    行第

    jj

    列元素:

    A=[a11a12a1na21a22a2nam1am2amn].A=\begin{bmatrix}
    a_{11} & a_{12} & \cdots & a_{1n} \\
    a_{21} & a_{22} & \cdots & a_{2n} \\
    \vdots & \vdots & \ddots & \vdots \\
    a_{m1} & a_{m2} & \cdots & a_{mn}
    \end{bmatrix}.

  • 我們將

    AA

    的第

    jj

    列表示為

    aja^j

    or

    A:,jA_{:,j}

    A=[|||a1a2an|||].A = \begin{bmatrix}
    \text{\textbar} & \text{\textbar} & & \text{\textbar} \\
    a^1 & a^2 & \cdots & a^n \\
    \text{\textbar} & \text{\textbar} & & \text{\textbar}
    \end{bmatrix}.

  • 我們將

    AA

    的第

    ii

    行表示為

    aiTa_i^T

    or

    Ai,:A_{i,:}

    A=[a1Ta2TamT].A = \begin{bmatrix}
    \text{\textemdash} & a_1^T & \text{\textemdash} \\
    \text{\textemdash} & a_2^T & \text{\textemdash} \\
    & \vdots & \\
    \text{\textemdash} & a_m^T & \text{\textemdash} \\
    \end{bmatrix}.

  • 在許多情況下,將矩陣視為列向量或行向量的集合是非常重要和方便的。一般來說,在數學上(和概念上)向量級別上的操作比標量級別上的操作會更簡潔。表示矩陣的列或行沒有通用約定,因此你可以使用任何符號明確定義它。

2 矩陣乘法

矩陣

ARm×nA \in \Bbb{R}^{m \times n}

和矩陣

BRn×pB \in \Bbb{R}^{n \times p}

的乘積仍然是一個矩陣

C=ABRm×pC = AB \in \Bbb{R}^{m \times p}

,其中

Cij=k=1nAikBkjC_{ij} = \displaystyle\sum_{k=1}^n {A_{ik}B_{kj}}

.
請注意,為了使矩陣乘積存在,

AA

中的列數必須等於

BB

中的行數。有很多方法可以查看矩陣乘法,我們將從檢查一些特殊情況開始。

2.1 向量-向量乘法

給兩個向量

x,yRn\boldsymbol{x},\boldsymbol{y} \in \Bbb{R}^n

,

xTy\boldsymbol{x}^T \boldsymbol{y}

通常稱為向量的內積或者點積,結果是個實數:

xTyR=[x1x2xn][y1y2yn]=i=1nxiyi\boldsymbol{x}^T \boldsymbol{y} \in \Bbb{R} =
\begin{bmatrix}x_1 & x_2 & \cdots & x_n\end{bmatrix}
\begin{bmatrix}y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix}
= \sum_{i=1}^n{x_iy_i}

請注意,內積實際上只是矩陣乘法的特例。

xTy=yTx\boldsymbol{x}^T \boldsymbol{y} = \boldsymbol{y}^T \boldsymbol{x}

始終成立。
給定向量

xRm,yRn\boldsymbol{x} \in \Bbb{R}^m , \boldsymbol{y} \in \Bbb{R}^n

(

mm

不一定等於

nn

),

xyTRm×n\boldsymbol{x} \boldsymbol{y}^T \in \Bbb{R}^{m \times n}

叫向量外積,它是一個矩陣,由

(xyT)ij=xiyj(\boldsymbol{x} \boldsymbol{y}^T)_{ij} = x_iy_j

組成,也就是(i.e.):

xyTRm×n=[x1x2xm][y1y2yn]=[x1y1x1y2x1ynx2y1x2y2x2ynxmy1xmy2xmyn]\boldsymbol{x} \boldsymbol{y}^T \in \Bbb{R}^{m \times n}=
\begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_m \end{bmatrix}
\begin{bmatrix}y_1 & y_2 & \cdots & y_n\end{bmatrix}=
\begin{bmatrix}
x_1y_1 & x_1y_2 & \cdots & x_1y_n \\
x_2y_1 & x_2y_2 & \cdots & x_2y_n \\
\vdots & \vdots & \ddots & \vdots \\
x_my_1 & x_my_2 & \cdots & x_my_n
\end{bmatrix}

舉一個外積如何使用的一個例子:讓

1Rn\boldsymbol{1}\in \Bbb{R}^{n}

表示一個

nn

維向量,其元素都等於 1,此外,考慮矩陣

ARm×nA \in \Bbb{R}^{m \times n}

,其列全部是某個向量

xRm\boldsymbol{x} \in R^{m}

。 我們可以使用外積緊湊地表示矩陣

AA

:

A=[|||xxx|||]=[x1x1x1x2x2x2xmxmxm]=[x1x2xm][111]=x1TA=\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
x & x & \cdots & x \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}=
\begin{bmatrix}
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{bmatrix}=
\begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_m \end{bmatrix}
\begin{bmatrix}1 & 1 & \cdots & 1\end{bmatrix}=\boldsymbol{x}\boldsymbol{1}^T

2.2 矩陣-向量乘法

給定矩陣

ARm×nA \in \mathbb{R}^{m \times n}

,向量

xRn\boldsymbol{x} \in \mathbb{R}^{n}

, 它們的積是一個向量

y=AxRm\boldsymbol{y} = A\boldsymbol{x} \in \mathbb{R}^{m}

。 有幾種方法可以查看矩陣向量乘法。

如果我們按行寫

AA

,那麼我們可以表示

AxA\boldsymbol{x}

為:

y=Ax=[a1Ta2TamT]x=[a1Txa2TxamTx]\boldsymbol{y} = A\boldsymbol{x} =
\begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}\boldsymbol{x}=
\begin{bmatrix} a_1^T\boldsymbol{x} \\ a_2^T\boldsymbol{x} \\ \vdots \\ a_m^T\boldsymbol{x} \end{bmatrix}

換句話說,第

ii

yy

的元素是

AA

的第

ii

行和

x\boldsymbol{x}

的內積,即:

yi=aiTxy_i=a_{i}^{T} \boldsymbol{x}

同樣的, 可以把

AA

寫成列的方式,如下:

y=Ax=[|||a1a2an|||][x1x2xn]=[a1]x1+[a2]x2++[an]xn(1)\boldsymbol{y} = A\boldsymbol{x} =
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
a^1 & a^2 & \cdots & a^n \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}
\begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix}=
[a^1]x_1 + [a^2]x_2 + \cdots +[a^n]x_n
\label{1}\tag{1}

換句話說,

y\boldsymbol{y}

AA

的列的線性組合,其中線性組合的係數由

x\boldsymbol{x}

的元素給出。

到目前為止,我們一直是矩陣右乘一個列向量,但也可以是矩陣左乘一個行向量。如這樣表示:

yT=xTA\boldsymbol{y}^T = \boldsymbol{x}^TA

其中

ARm×nA \in \mathbb{R}^{m \times n}

xRm\boldsymbol{x} \in \mathbb{R}^{m}

yRn\boldsymbol{y} \in \mathbb{R}^{n}

。 和以前一樣,我們可以用兩種可行的方式表達

yT\boldsymbol{y}^T

,這取決於我們是否根據行或列表達

AA

.

首先,我們把

AA

用列表示:

yT=xTA=xT[|||a1a2an|||]=[xTa1xTa2xTan]\boldsymbol{y}^T = \boldsymbol{x}^TA = \boldsymbol{x}^T
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
a^1 & a^2 & \cdots & a^n \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}=
\begin{bmatrix}\boldsymbol{x}^Ta^1 & \boldsymbol{x}^Ta^2 & \cdots & \boldsymbol{x}^Ta^n \end{bmatrix}

這表明

yT\boldsymbol{y}^T

的第

ii

個元素等於

x\boldsymbol{x}

AA

的第

ii

列的內積。

最後,根據行表示

AA

,我們得到了向量-矩陣乘積的最終表示:

yT=xTA=[x1x2xn][a1Ta2TamT]=x1[a1T]+x2[a2T]++xn[anT]\begin{aligned}
\boldsymbol{y}^T &= \boldsymbol{x}^TA \\&=
\begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix}
\begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}\\&=
x_1\begin{bmatrix}\text{\textemdash} & a_1^T & \text{\textemdash}\end{bmatrix}+
x_2\begin{bmatrix}\text{\textemdash} & a_2^T & \text{\textemdash}\end{bmatrix}+ \cdots +
x_n\begin{bmatrix}\text{\textemdash} & a_n^T & \text{\textemdash}\end{bmatrix}
\end{aligned}

所以我們看到

yT\boldsymbol{y}^T

AA

的行的線性組合,其中線性組合的係數由

x\boldsymbol{x}

的元素給出。

2.3 矩陣-矩陣乘法

有了這些知識,我們現在可以看看四種不同的(當然是等價的)查看矩陣與矩陣乘法

C=ABC = AB

的方法。

首先,我們可以將矩陣-矩陣乘法視為一組向量-向量乘積。 從定義中可以得出:最明顯的觀點是

CC

的(

i,ji,j

)元素等於

AA

的第

ii

行和

BB

的的

jj

列的內積。如下所示:

C=AB=[a1Ta2TamT][|||b1b2bp|||]=[a1b1a1b2a1bpa2b1a2b2a2bpamb1amb2ambp]C = AB =
\begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
b^1 & b^2 & \cdots & b^p \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}=
\begin{bmatrix}
a_1b_1 & a_1b_2 & \cdots & a_1b_p \\
a_2b_1 & a_2b_2 & \cdots & a_2b_p \\
\vdots & \vdots & \ddots & \vdots \\
a_mb_1 & a_mb_2 & \cdots & a_mb_p
\end{bmatrix}

這裡的矩陣

ARm×n,BRn×pA \in \Bbb{R}^{m \times n} , B \in \Bbb{R}^{n \times p}

, 向量

aiRn,bjRna_i \in \Bbb{R}^n , b^j \in \Bbb{R}^n

,所以它們可以計算內積。當我們用行表示

AA

和用列表示

BB

時,這是最「自然」的表示。
另外,我們可以用列表示

AA

,用行表示

BB

。這種表示導致將

ABAB

解釋為外積之和,這種表示則複雜得多。象徵性地,

C=AB=[|||a1a2an|||][b1Tb2TbnT]=i=1naibiTC = AB =
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
a^1 & a^2 & \cdots & a^n \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}
\begin{bmatrix}
\text{\textemdash} & b_1^T & \text{\textemdash} \\
\text{\textemdash} & b_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & b_n^T & \text{\textemdash} \\
\end{bmatrix}=
\sum_{i=1}^n{a^ib_i^T}

換句話說,

ABAB

等於所有的

AA

的第

ii

列和

BB

ii

行的外積的和。因此,在這種情況下,

aiRma^i \in \mathbb{R}^ m

biRpb_i \in \mathbb{R}^p

, 外積

aibiTa^ib_i^T

的維度是

m×pm×p

,與

CC

的維度一致。

其次,我們還可以將矩陣-矩陣乘法視為一組矩陣-向量乘法。如果我們把

BB

用列表示,我們可以將

CC

的列視為

AA

BB

的列(矩陣-向量)的乘積。如下所示:

C=AB=A[|||b1b2bp|||]=[|||Ab1Ab2Abp|||](2)C = AB = A
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
b^1 & b^2 & \cdots & b^p \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}=
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
Ab^1 & Ab^2 & \cdots & Ab^p \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}
\label{2}\tag{2}

這裡

CC

的第

ii

列由矩陣-向量乘積給出,右邊的向量為

ci=Abic_i = Ab_i

最後,我們有類似的觀點,我們用行表示

AA

,並將

CC

的行視為

AA

的行和

BB

之間的矩陣-向量乘積。如下所示:

C=AB=[a1Ta2TamT]B=[a1TBa2TBamTB]C = AB =
\begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}B=
\begin{bmatrix}
\text{\textemdash} & a_1^TB & \text{\textemdash} \\
\text{\textemdash} & a_2^TB & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^TB & \text{\textemdash} \\
\end{bmatrix}

這裡

CC

的第

ii

行由矩陣-向量乘積給出:

ciT=aiTBc_i^T = a_i^T B

將矩陣乘法剖析到如此大的程度似乎有點矯枉過正,特別是當所有這些觀點都緊跟在我們在本節開頭給出的初始定義(

C=ABC=AB

)之後。

這些不同方法的直接優勢在於它們允許您在向量的級別/單位而不是標量上進行操作。 為了完全理解線性代數而不會迷失在複雜的索引操作中,關鍵是操作儘可能大(向量而不是標量)的概念。[1]

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

除此之外,你還應該了解一些更高級別的矩陣乘法的基本性質:

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

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

  • 矩陣乘法一般是不可交換的; 也就是說,通常
    ABBAAB \ne BA

    。 (例如,假設

    ARm×nA \in \mathbb{R}^ {m \times n},

    BRn×pB \in \mathbb{R}^ {n \times p}

    ,如果

    mm

    qq

    不相等,矩陣乘積

    BABA

    甚至不存在!)

如果您不熟悉這些性質,請花點時間自己驗證它們。 例如,為了檢查矩陣乘法的結合性,假設

ARm×nA \in \mathbb{R}^ {m \times n},

BRn×pB \in \mathbb{R}^ {n \times p}

CRp×qC \in \mathbb{R}^ {p \times q}

。 注意

ABRm×pAB \in \mathbb{R}^ {m \times p}

,所以

(AB)CRm×q(AB)C \in \mathbb{R}^ {m \times q}

。 類似地,

BCRn×qBC \in \mathbb{R}^ {n \times q}

,所以

A(BC)Rm×qA(BC) \in \mathbb{R}^ {m \times q}

。 因此,所得矩陣的維度一致。 為了驗證矩陣乘法的結合性,檢查

(AB)C(AB)C

的(

i,ji,j

)元素是否等於

A(BC)A(BC)

的(

i,ji,j

)元素。 我們可以使用矩陣乘法的定義直接驗證這一點:

((AB)C)ij=k=1p(AB)ikCkj=k=1p(l=1nAilBlk)Ckj=k=1p(l=1nAilBlkCkj)=l=1n(k=1pAilBlkCkj)=l=1nAil(k=1pBlkCkj)=l=1nAil(BC)lj=(A(BC))ij\begin{aligned} % aligned &= 等號對齊
((A B) C)_{ij} &= \sum_{k=1}^p{(AB)_{ik}C_{kj}} = \sum_{k=1}^p \Bigg( \sum_{l=1}^n{A_{il}B_{lk}} \Bigg) C_{kj} \\
&=\sum_{k=1}^p \Bigg( \sum_{l=1}^n{A_{il}B_{lk}C_{kj}}\Bigg) = \sum_{l=1}^n \Bigg( \sum_{k=1}^p{A_{il}B_{lk}C_{kj}}\Bigg)\\
&=\sum_{l=1}^nA_{il}\Bigg(\sum_{k=1}^p{B_{lk}C_{kj}}\Bigg) = \sum_{l=1}^n{A_{il}(BC)_{lj}} = (A(BC))_{ij}
\end{aligned}

這裡,第一個和最後兩個等式簡單地使用了矩陣乘法的定義,第三個和第五個等式使用了標量乘法對加法的分配性質,第四個等式使用了標量加法的交換性和結合性。 這種通過簡化為簡單標量性質來證明矩陣性質的技術會經常出現,因此請確保您熟悉它。

3 操作及其性質

在本節中,我們將介紹矩陣和向量的幾種操作和性質。 希望其中的大部分內容都可以幫您複習,此筆記可以作為參考。

3.1 單位矩陣和對角矩陣

單位矩陣

IRn×nI \in \Bbb{R}^{n \times n}

表示,它是一個方陣,對角線的元素是 1,其餘元素都是 0。可以這樣表示:

Iij={1i=j0ij.I_{ij} =
\begin{cases}
1 & i=j \\
0 & i \neq j
\end{cases}.

對於所有矩陣

ARm×nA \in \mathbb{R}^ {m \times n}

,有:

AI=A=IAAI=A=IA


注意,在某種意義上,上面單位矩陣的表示法是不明確的,因為它沒有指定

II

的維數。通常,

II

的維數是從上下文推斷出來的,以便使矩陣乘法成為可能。 例如,在上面的等式中,

AI=AAI = A

中的

II

n×nn\times n

矩陣,而

A=IAA = IA

中的

II

m×mm\times m

矩陣。

對角矩陣的非對角元素全為 0。對角陣通常表示為:

D=diag(d1,d2,,dn)D=diag(d_1, d_2,\cdots, d_n)

,其中:

Dij={dii=j0ij.D_{ij} =
\begin{cases}
d_i & i=j \\
0 & i \neq j
\end{cases}.

很明顯,單位矩陣

I=diag(1,1,,1)I= diag(1, 1, \cdots , 1)

3.2 轉置

矩陣的轉置是指翻轉矩陣的行和列。給定一個矩陣

ARm×nA \in \Bbb{R}^{m \times n}

,它的轉置

ATRn×mA^T \in \Bbb{R}^{n \times m}

,其中的元素為:

(AT)ij=Aji.(A^T)_{ij} = A_{ji}.

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

轉置有以下性質,且很容易驗證:


  • (AT)T=A(A^T)^T = A


  • (AB)T=BTAT(AB)^T = B^TA^T


  • (A+B)T=AT+BT(A+B)^T = A^T + B^T

3.3 對稱矩陣

如果

A=ATA = A^T

,那麼方陣

ARn×nA \in \Bbb{R}^{n \times n}

對稱的。

  • 元素滿足
    aij=aji,i,ja_{ij} = a_{ji} , \forall i,j


  • A=ATA = A^T

  • 對於任意方陣
    AA

    A+ATA + A^T

    是對稱的

  • 對角矩陣都是對稱矩陣

如果

A=ATA = -A^T

,那麼它就是反對稱的。

  • 元素滿足
    aij=aji,i,ja_{ij} = -a_{ji} , \forall i,j

    ,所以當

    i=ji=j

    時,

    aij=0a_{ij} = 0


  • A,BA,B

    都為反對稱矩陣,則

    A±BA \plusmn B

    仍為反對稱矩陣[2]


  • AA

    為反對稱矩陣,

    BB

    為對稱矩陣,則

    ABBAAB-BA

    為對稱矩陣[3]

很容易證明,對於任何矩陣

ARn×nA \in \mathbb{R}^ {n \times n}

,矩陣

A+ATA + A^ T

是對稱的,矩陣

AATA -A^T

是反對稱的[2:1]

由此得出,任意方矩陣

ARn×nA \in \mathbb{R}^ {n \times n}

可以表示為對稱矩陣和反對稱矩陣的和,所以:

A=12(A+AT)+12(AAT)A=\frac{1}{2}(A+A^T)+\frac{1}{2}(A-A^T)

事實證明,對稱矩陣在實踐中用到很多,它們有很多很好的性質,我們很快就會看到它們。
通常將大小為

nn

的所有對稱矩陣的集合表示為

Sn\mathbb{S}^n

,因此

ASnA \in \mathbb{S}^n

意味着

AA

是對稱的

n×nn\times n

矩陣。

3.4 矩陣的跡

方矩陣

ARn×nA \in \mathbb{R}^ {n \times n}

,表示為

tr(A)\operatorname{tr} (A)

(或者

trA\operatorname{tr} A

,括號顯然是隱含的),是矩陣中對角元素的總和:

trA=i=1nAii\operatorname{tr} A=\sum_{i=1}^{n} A_{i i}

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

  • 對於矩陣
    ARn×nA \in \mathbb{R}^ {n \times n}

    ,則:

    trA=trAT\operatorname{tr}A =\operatorname{tr}A^T

  • 對於矩陣
    A,BRn×nA,B \in \mathbb{R}^ {n \times n}

    ,則:

    tr(A+B)=trA+trB\operatorname{tr}(A + B) = \operatorname{tr}A + \operatorname{tr}B

  • 對於矩陣
    ARn×nA \in \mathbb{R}^ {n \times n}

    tRt \in \mathbb{R}

    ,則:

    tr(tA)=ttrA\operatorname{tr}(tA) = t\operatorname{tr}A

    .

  • 對於矩陣
    AA

    ,

    BB

    ABAB

    為方陣, 則:

    trAB=trBA\operatorname{tr}AB = \operatorname{tr}BA

  • 對於矩陣
    AA

    ,

    BB

    ,

    CC

    ,

    ABCABC

    為方陣(包含 1*1 的矩陣-標量), 則:

    trABC=trBCA=trCAB\operatorname{tr}ABC = \operatorname{tr}BCA=\operatorname{tr}CAB

    , 同理,更多矩陣的積也是有這個性質。

我們給出第四個性質的證明。假設

ARm×nA \in \mathbb{R}^ {m \times n}

BRn×mB \in \mathbb{R}^ {n \times m}

(因此

ABRm×mAB \in \mathbb{R}^ {m \times m}

是方陣)。 觀察到

BARn×nBA \in \mathbb{R}^ {n \times n}

也是一個方陣,因此對它們進行跡的運算是有意義的。 要證明

trAB=trBA\operatorname{tr}AB = \operatorname{tr}BA

,注意:

trAB=i=1m(AB)ii=i=1m(j=1nAijBji)=i=1mj=1nAijBji=j=1ni=1mBjiAij=j=1n(i=1mBjiAij)=j=1n(BA)jj=trBA\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\|x\|

是非正式度量的向量的「長度」 。 例如,我們有常用的歐幾里德或

2\ell_{2}

範數,

x2=i=1nxi2\|x\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}

注意:

x22=xTx\|x\|_{2}^{2}=x^{T} x

更正式地,範數是滿足 4 個性質的函數(

f:RnRf : \mathbb{R}^{n} \rightarrow \mathbb{R}

):

  1. 對於所有的
    xRnx \in \mathbb{R}^ {n}

    ,

    f(x)0f(x) \geq 0

    (非負性).

  2. 當且僅當
    x=0x = 0

    時,

    f(x)=0f(x) = 0

    (確定性).

  3. 對於所有
    xRnx \in \mathbb{R}^ {n}

    ,

    tRt\in \mathbb{R}

    ,則

    f(tx)=tf(x)f(tx) = \left| t \right|f(x)

    (正齊次性).

  4. 對於所有
    x,yRnx,y \in \mathbb{R}^ {n}

    ,

    f(x+y)f(x)+f(y)f(x + y) \leq f(x) + f(y)

    (三角不等式)

其他範數的例子,如:

1\ell_1

範數:

x1=i=1nxi\|x\|_{1}=\sum_{i=1}^{n}|x_{i}|

\ell_{\infty }

範數:

x=maxixi\|x\|_{\infty}=\max_{i}\left|x_{i}\right|

事實上,到目前為止所提出的所有三個範數都是

p\ell_p

範數族的例子,它們由實數

p1p \geq 1

參數化,並定義為:

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

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

AF=i=1mj=1nAij2=tr(ATA)\|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 線性相關性和秩

一個向量集合

{x1,x2,xn}Rm\{ x_1,x_2, \cdots x_n \} \subset \mathbb{R}^m

, 如果沒有向量可以表示為其餘向量的線性組合,則稱稱該向量是線性無關的。 相反,如果屬於該組的一個向量可以表示為其餘向量的線性組合,則稱該向量是線性相關的。 也就是說,如果:

xj=i=1,ijnαixix_{j}=\sum_{i=1,i \neq j}^{n} \alpha_{i} x_{i}

存在

α1,αnR\alpha_1,\cdots \alpha_{n} \in \mathbb{R}

,那麼向量

x1,x2,xnx_1,x_2, \cdots x_n

是線性相關的; 否則,向量是線性無關的。
另一種線性相關的描述(存在不全為零的數

αi\alpha_{i}

,使得等式成立):

i=1nαixi=0,αi0\sum_{i=1}^{n} \alpha_{i} x_{i} = 0,\exists \alpha_i \neq 0

例如,向量:

x1=[123]x2=[415]x3=[231]x_{1}=
\begin{bmatrix}
1 \\
2 \\
3
\end{bmatrix} \quad
x_{2}=
\begin{bmatrix}
4 \\
1 \\
5
\end{bmatrix} \quad
x_{3}=
\begin{bmatrix}
2 \\
-3 \\
-1
\end{bmatrix}

是線性相關的,因為:

x3=2x1+x2x_3=-2x_1+x_2

矩陣

ARm×nA \in \mathbb{R}^{m \times n}

列秩是構成線性無關集合的

AA

的最大列子集的大小。 由於術語的多樣性,這通常簡稱為

AA

的線性無關列的數量。同樣,行秩是構成線性無關集合的

AA

的最大行數。
對於任何矩陣

ARm×nA \in \mathbb{R}^{m \times n}

,事實證明

AA

的列秩等於

AA

的行秩(儘管我們不會證明這一點),因此兩個量統稱為

AA

,用

rank(A)\text{rank}(A)

表示。 以下是秩的一些基本性質:

  • 對於
    ARm×nA \in \mathbb{R}^{m \times n}

    rank(A)min(m,n)\text{rank}(A) \leq min(m, n)

    ,如果

    (A)=min(m,n)\text(A) = \text{min} (m, n)

    ,則:

    AA

    被稱作滿秩

  • 對於
    ARm×nA \in \mathbb{R}^{m \times n}

    rank(A)=rank(AT)\text{rank}(A) = \text{rank}(A^T)

  • 對於
    ARm×nA \in \mathbb{R}^{m \times n}

    ,

    BRn×pB \in \mathbb{R}^{n \times p}

    ,

    rank(AB)min(rank(A),rank(B))\text{rank}(AB) \leq \text{min} ( \text{rank}(A), \text{rank}(B))

  • 對於
    A,BRm×nA,B \in \mathbb{R}^{m \times n}

    rank(A+B)rank(A)+rank(B)\text{rank}(A + B) \leq \text{rank}(A) + \text{rank}(B)

3.7 方陣的逆

方陣

ARn×nA \in \mathbb{R}^{n \times n}

表示為

A1A^{-1}

,並且是這樣的唯一矩陣:

A1A=I=AA1A^{-1}A=I=AA^{-1}

請注意,並非所有矩陣都具有逆。 例如,非方形矩陣根據定義沒有逆(存在偽逆[4])。 然而,對於一些方形矩陣

AA

A1A^{-1}

也可能不存在。 特別是,如果

A1A^{-1}

存在,我們說

AA

可逆的或非奇異的,否則就是不可逆奇異[5]

為了使方陣 A 具有逆

A1A^{-1}

,則

AA

必須是滿秩。 我們很快就會發現,除了滿秩之外,還有許多其它的充分必要條件。
以下是逆的性質; 假設

A,BRn×nA,B \in \mathbb{R}^{n \times n}

,而且是非奇異的:


  • (A1)1=A(A^{-1})^{-1} = A


  • (AB)1=B1A1(AB)^{-1} = B^{-1}A^{-1}


  • (A1)T=(AT)1(A^{-1})^{T} =(A^{T})^{-1}

    因此,該矩陣通常表示為

    ATA^{-T}

作為如何使用逆的示例,考慮線性方程組,

Ax=bAx = b

,其中

ARn×nA \in \mathbb{R}^{n \times n}

x,bRx,b\in \mathbb{R}

, 如果

AA

是非奇異的(即可逆的),那麼

x=A1bx = A^{-1}b

。 (如果

ARm×nA \in \mathbb{R}^{m \times n}

,不是方陣,這公式還有用嗎? – 偽逆[4:1]

3.8 正交矩陣

如果

xTy=0x^Ty=0

,則兩個向量

x,yRnx,y\in \mathbb{R}^{n}

正交的。如果

x2=1\|x\|_2=1

,則向量

xRnx\in \mathbb{R}^{n}

歸一化。如果一個方陣

URn×nU\in \mathbb{R}^{n \times n}

的所有列彼此正交並被歸一化,則方陣

UU

正交矩陣(注意在討論向量與矩陣時的意義不一樣,兩個向量正交只需要內積為 0,正交矩陣是各列相互正交並且被歸一化)。

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

UTU=I=UUTU^ TU = I = U U^T

換句話說,正交矩陣的逆是其轉置。 注意,如果

UU

不是方陣, 即,

URm×n,n<mU\in \mathbb{R}^{m \times n}, n < m

,但其列仍然是正交的,則

UTU=IU^TU = I

,但是

UUTIUU^T \neq I

。所以正交矩陣一定是方陣

正交矩陣的另一個好的特性是在具有正交矩陣的向量上操作不會改變其歐幾里德範數,即(i.e.):

Ux2=x2(3)\|U x\|_{2}=\|x\|_{2}
\label{3}\tag{3}

對於任何

xRnx\in \mathbb{R}^n

,

URn×nU\in \mathbb{R}^{n \times n}

是正交矩陣。

3.9 矩陣的值域和零空間

張成一個向量集合

{x1,x2,xn}\{ x_1,x_2, \cdots x_n \}

可以表示為一個向量集合

{x1,xn}\{ x_1, \cdots x_n \}

的所以線性組合:

span({x1,xn})={v:v=i=1nαixi,αiR}\operatorname{span}(\{x_1, \cdots x_n \}) = \Bigg\{v:v=\sum_{i=1}^n{\alpha_i x_i}, \alpha_i \in \Bbb{R} \Bigg\}

可以看到,如果

{x1,xn}\{x_{1}, \cdots x_{n}\}

是一組

nn

個線性無關的向量,其中每個

xiRnx_i \in \mathbb{R}^{n}

,則

span({x1,xn})=Rn\text{span}(\{x_{1}, \ldots x_{n}\})=\mathbb{R}^{n}

。 換句話說,任何向量

vRnv\in \mathbb{R}^{n}

都可以寫成

x1x_1

xnx_n

的線性組合。
向量

yRmy\in \mathbb{R}^{m}

投影

{x1,xn}\{x_{1}, \ldots x_{n}\}

所張成的空間(這裡我們假設

xiRmx_i \in \mathbb{R}^{m}

)得到向量

vspan({x1,,xn})v \in \operatorname{span}(\{x_{1}, \ldots, x_{n}\})

,由歐幾里德範數

vy2\|v – y\|_2

可以得知,這樣

vv

儘可能接近

yy

我們將投影表示為

Proj(y;{x1,xn})\operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right)

,並且可以將其正式定義為:

Proj(y;{x1,xn})=argminvspan({x1,,xn})yv2\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}

矩陣

ARm×nA\in \mathbb{R}^{m \times n}

值域(有時也稱為列空間),表示為

R(A)\mathcal{R}(A)

,是

AA

的列所張成的空間。換句話說,

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

做一些技術性的假設(即

AA

是滿秩且

n<mn <m

),向量

yRmy \in \mathbb{R}^{m}

AA

的值域的投影由下式給出:

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

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

AA

只包含一列時,

aRma \in \mathbb{R}^{m}

,這給出了向量投影到一條線上的特殊情況:

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

一個矩陣

ARm×nA\in \mathbb{R}^{m \times n}

零空間

N(A)\mathcal{N}(A)

是所有乘以

AA

時等於 0 向量的集合,即:

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

注意,

R(A)\mathcal{R}(A)

中的向量的大小為

mm

,而

N(A)\mathcal{N}(A)

中的向量的大小為

nn

,因此

R(AT)\mathcal{R}(A^T)

N(A)\mathcal{N}(A)

中的向量的大小均為

Rn\mathbb{R}^{n}

。 事實上,還有很多例子。 證明:

{w:w=u+v,uR(AT),vN(A)}=Rn and R(AT)N(A)={0}\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}\}

換句話說,

R(AT)\mathcal{R}(A^T)

N(A)\mathcal{N}(A)

是不相交的子集,它們一起跨越

Rn\mathbb{R}^{n}

的整個空間。 這種類型的集合稱為正交補,我們用

R(AT)=N(A)\mathcal{R}(A^T)= \mathcal{N}(A)^{\perp}

表示。

3.10 行列式

一個方陣

ARn×nA \in \mathbb{R}^{n \times n}

行列式是函數

det\text {det}

Rn×nRn\mathbb{R}^{n \times n} \rightarrow \mathbb{R}^{n}

,並且表示為

A\left| A \right|

或者

detA\text{det} A

(有點像跡運算符,我們通常省略括號)。在代數上,我們可以寫出 A 的行列式的明確公式,但不幸的是,這並不能直觀地理解它的含義。 相反,我們將從提供行列式的幾何解釋開始,然後訪問其一些特定的代數性質。

給定一個矩陣:

[a1Ta2TanT]\begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_n^T & \text{\textemdash} \\
\end{bmatrix}

考慮通過採用

AA

行向量

a1,anRna_{1}, \ldots a_{n}\in \mathbb{R}^{n}

的所有可能線性組合形成的點

SRnS \subset \mathbb{R}^{n}

的集合,其中線性組合的係數都在 0 和 1 之間; 也就是說,集合

SS

span({a1,an})\text{span}(\{a_{1}, \ldots a_{n}\})

受到係數

α1,αn\alpha_{1}, \ldots \alpha_{n}

的限制的線性組合,

α1,,αn\alpha_1, \cdots ,\alpha_n

滿足

0αi1,i=1,,n0 \leq \alpha_{i} \leq 1, i=1, \ldots, n

。從形式上看,

S={vRn:v=i=1nαiai where 0αi1,i=1,,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\}

事實證明,

AA

的行列式的絕對值是對集合

SS

的「體積」的度量[6]

比方說:一個

2×22 \times2

的矩陣(4):

A=[1332](4)A=
\begin{bmatrix}
1 & 3 \\
3 & 2
\end{bmatrix}
\label{4}\tag{4}

它的矩陣的行是:

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

對應於這些行對應的集合

SS

如圖 1 所示。對於二維矩陣,

SS

通常具有平行四邊形的形狀。 在我們的例子中,行列式的值是

A=7\left| A \right| = -7

(可以使用本節後面顯示的公式計算),因此平行四邊形的面積為 7。(請自己驗證!)

在三維中,集合

SS

對應於一個稱為平行六面體的對象(一個有傾斜邊的三維框,這樣每個面都有一個平行四邊形)。行定義

SS

3×33×3

矩陣 S 的行列式的絕對值給出了平行六面體的三維體積。在更高的維度中,集合

SS

是一個稱為

nn

維平行體的對象。

(0, 0)

(0, 0)

a1

a1

(1, 3)

(1, 3)

a2

a2

(3, 2)

(3, 2)

(4, 5)

(4, 5)Viewer does not support full SVG 1.1

圖 1:(4)中給出的

2×22×2

矩陣

AA

的行列式的圖示。 這裡,

a1a_1

a2a_2

是對應於

AA

行的向量,並且集合

SS

對應於平行四邊形區域。 這個行列式的絕對值,

detA=7\left| \text{det} A \right| = 7

,即平行四邊形的面積。

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

  1. 單位陣的行列式為 1,

    I=1\left| I \right|= 1

    (幾何上,單位超立方體的體積為 1)。

  2. 給定一個矩陣

    ARn×nA \in \mathbb{R}^{n \times n}

    , 如果我們將

    AA

    中的一行乘上一個標量

    tRt \in \mathbb{R}

    ,那麼新矩陣的行列式是

    tAt\left| A \right|

    [ta1Ta2TamT]=tA\left|\begin{bmatrix}
    \text{\textemdash} & t a_1^T & \text{\textemdash} \\
    \text{\textemdash} & a_2^T & \text{\textemdash} \\
    & \vdots & \\
    \text{\textemdash} & a_m^T & \text{\textemdash} \\
    \end{bmatrix}\right| = t|A|

    幾何上,將集合

    SS

    的一個邊乘以係數

    tt

    ,體積也會增加一個係數

    tt

  3. 如果我們交換任意兩行在

    aiTa_i^T

    ajTa_j^T

    ,那麼新矩陣的行列式是

    A-\left| A \right|

    ,例如:

    [a2Ta1TamT]=A\left|\begin{bmatrix}
    \text{\textemdash} & a_2^T & \text{\textemdash} \\
    \text{\textemdash} & a_1^T & \text{\textemdash} \\
    & \vdots & \\
    \text{\textemdash} & a_m^T & \text{\textemdash} \\
    \end{bmatrix}\right| = -|A|


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

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

  • 對於
    ARn×nA \in \mathbb{R}^{n \times n}

    ,

    A=AT\left| A \right| = \left| A^T \right|

  • 對於
    A,BRn×nA,B \in \mathbb{R}^{n \times n}

    ,

    AB=AB\left| AB \right|= \left| A \right|\left| B \right|

  • 對於
    ARn×nA \in \mathbb{R}^{n \times n}

    ,如果

    A=0\left| A \right|= 0

    有且只有當

    AA

    是奇異的(即不可逆)(如果

    AA

    是奇異的,那麼它沒有滿秩,因此它的列是線性相關的。在這種情況下,集合

    SS

    對應於

    nn

    維空間中的「平面」,因此體積為零。)

  • 對於
    ARn×nA \in \mathbb{R}^{n \times n}

    同時,

    AA

    為非奇異的,則:

    A1=1/A\left| A ^{−1}\right| = 1/\left| A \right|

在給出行列式的一般定義之前,我們定義,對於

ARn×nA \in \mathbb{R}^{n \times n}

Ai,jR(n1)×(n1)A_{\bcancel i, \bcancel j}\in \mathbb{R}^{(n-1) \times (n-1)}

是由於刪除第

ii

行和第

jj

列而產生的矩陣。 行列式的一般(遞歸)公式是:

A=i=1n(1)i+jaijA\i,\j( for any j1,,n)=j=1n(1)i+jaijA\i,\j( for any i1,,n)\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}

對於

AR1×1A \in \mathbb{R}^{1 \times 1}

,初始情況為

A=a11\left| A \right|= a_{11}

。如果我們把這個公式完全展開為

ARn×nA \in \mathbb{R}^{n \times n}

,就等於

n!n!

nn

階乘)不同的項。因此,對於大於

3×33×3

的矩陣,我們幾乎沒有明確地寫出完整的行列式方程。然而,

3×33×3

大小的矩陣的行列式方程是相當常見的,建議好好地了解它們:

[a11]=a11[a11a12a21a22]=a11a22a12a21[a11a12a13a21a22a23a31a32a33]=a11a22a33+a12a23a31+a13a21a32a11a23a32a12a21a33a13a22a31\begin{aligned}
\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| &=
\begin{array}{c}{a_{11} a_{22} a_{33}+a_{12} a_{23} a_{31}+a_{13} a_{21} a_{32}} \\ {-a_{11} a_{23} a_{32}-a_{12} a_{21} a_{33}-a_{13} a_{22} a_{31}} \end{array}
\end{aligned}

矩陣

ARn×nA \in \mathbb{R}^{n \times n}

經典伴隨矩陣(通常稱為伴隨矩陣[7])表示為

adj(A)\operatorname{adj}(A)

,並定義為:

adj(A)Rn×n,(adj(A))ij=(1)i+jA\j,\i\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\j,\iA_{\backslash j, \backslash i}

中的變化)。可以看出,對於任何非奇異

ARn×nA \in \mathbb{R}^{n \times n}

A1=1Aadj(A)A^{-1}=\frac{1}{|A|} \operatorname{adj}(A)

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

3.11 二次型和半正定矩陣

給定方矩陣

ARn×nA \in \mathbb{R}^{n \times n}

和向量

xRnx \in \mathbb{R}^{n}

,標量

xTAxx^T Ax

被稱為二次型。 寫得清楚些,我們可以看到:

xTAx=i=1nxi(Ax)i=i=1nxi(j=1nAijxj)=i=1nj=1nAijxixjx^{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}

注意:

xTAx=(xTAx)T=xTATx=xT(12A+12AT)xx^{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=A+AT2+AAT2,xTAx=xTA+AT2x+xTAAT2x=xTA+AT2x+0A = \frac{A+A^T}{2} + \frac{A-A^T}{2}\\,
\\
x^{T} A x = x^{T}\frac{A+A^T}{2}x + x^{T}\frac{A-A^T}{2}x = x^{T}\frac{A+A^T}{2}x +0

第一個等號的是因為是標量的轉置與自身相等,而第二個等號是因為是我們平均兩個本身相等的量。 由此,我們可以得出結論,只有

AA

的對稱部分有助於形成二次型(

A+ATA+A^T

對稱的)。 出於這個原因,我們經常隱含地假設以二次型出現的矩陣是對稱陣。
我們給出以下定義:

  • 對於所有非零向量

    xRnx \in \mathbb{R}^n

    xTAx>0x^TAx>0

    ,對稱陣

    ASnA \in \mathbb{S}^n

    正定(PD)。這通常表示為

    A0A\succ0

    (或

    A>0A>0

    ),並且通常將所有正定矩陣的集合表示為

    S++n\mathbb{S}_{++}^n

  • 對於所有向量

    xTAx0x^TAx\geq 0

    ,對稱矩陣

    ASnA \in \mathbb{S}^n

    半正定(PSD)。 這寫為

    A0A \succeq 0

    (或

    A0A≥0

    ),並且所有半正定矩陣的集合通常表示為

    S+n\mathbb{S}_+^n

  • 同樣,對稱矩陣

    ASnA \in \mathbb{S}^n

    負定(ND),如果對於所有非零

    xRnx \in \mathbb{R}^n

    ,則

    xTAx<0x^TAx <0

    表示為

    A0A\prec0

    (或

    A<0A <0

    )。

  • 類似地,對稱矩陣

    ASnA \in \mathbb{S}^n

    半負定(NSD),如果對於所有

    xRnx \in \mathbb{R}^n

    ,則

    xTAx0x^TAx \leq 0

    表示為

    A0A\preceq 0

    (或

    A0A≤0

    )。

  • 最後,對稱矩陣

    ASnA \in \mathbb{S}^n

    不定的,如果它既不是正半定也不是負半定,即,如果存在

    x1,x2Rnx_1,x_2 \in \mathbb{R}^n

    ,那麼

    x1TAx1>0x_1^TAx_1>0

    x2TAx2<0x_2^TAx_2<0

很明顯,如果

AA

是正定的,那麼

A−A

是負定的,反之亦然。同樣,如果

AA

是半正定的,那麼

A−A

是是半負定的,反之亦然。如果果

AA

是不定的,那麼

A−A

是也是不定的。

正定矩陣和負定矩陣的一個重要性質是它們總是滿秩,因此是可逆的。為了了解這是為什麼,假設某個矩陣

ASnA \in \mathbb{S}^n

不是滿秩。然後,假設

AA

的第

jj

列可以表示為其他

n1n-1

列的線性組合:

aj=ijxiaia_{j}=\sum_{i \neq j} x_{i} a_{i}

對於某些

x1,xj1,xj+1,,xnRx_1,\cdots x_{j-1},x_{j + 1} ,\cdots ,x_n\in \mathbb{R}

。設

xj=1x_j = -1

,則:

Ax=i=1nxiai=0Ax=\sum_{i =1}^n x_{i} a_{i}=0

但這意味着對於某些非零向量

xx

xTAx=0x^T Ax = 0

,因此

AA

必須既不是正定也不是負定。如果

AA

是正定或負定,則必須是滿秩。
最後,有一種類型的正定矩陣經常出現,因此值得特別提及。 給定矩陣

ARm×nA \in \mathbb{R}^{m \times n}

(不一定是對稱或偶數平方),矩陣

G=ATARn×nG = A^T A \in \Bbb{R}^{n \times n}

(有時稱為Gram 矩陣)總是半正定的。 此外,如果

mnm\geq n

(同時為了方便起見,我們假設

AA

是滿秩,即

rank(A)=n\operatorname{rank}(A) = n

,則

G=ATAG = A^T A

是正定的。

AATAA^T

(即 Gram 矩陣)是半正定矩陣;協方差矩陣要是半正定矩陣
正定矩陣的所有特徵值為正實數
半正定矩陣的所有特徵值為非負實數
負定矩陣的所有特徵值為負實數
半負定矩陣的所有特徵值為非正實數
不定矩陣的特徵值既有正數也有負數

3.12 特徵值和特徵向量

給定一個方陣

ARn×nA \in\mathbb{R}^{n\times n}

,我們認為在以下條件下,

λC\lambda \in\mathbb{C}

AA

特徵值

xCnx\in\mathbb{C}^n

是相應的特徵向量[8]

Ax=λx,x0Ax=\lambda x,x \ne 0

直觀地說,這個定義意味着將

AA

乘以向量

xx

會得到一個新的向量,該向量指向與

xx

相同的方向,但按係數

λ\lambda

縮放。
值得注意的是,對於任何特徵向量

xCnx\in\mathbb{C}^n

和標量

cCc\in\mathbb{C}

A(cx)=cAx=cλx=λ(cx)A(cx)=cAx=c\lambda x=\lambda(cx)

cxcx

也是一個特徵向量。因此,當我們討論與

λ\lambda

相關的特徵向量時,我們通常假設特徵向量被標準化為長度為 1(這仍然會造成一些歧義,因為

xx

x−x

都是特徵向量,但我們必須接受這一點)。

我們可以重寫上面的等式來說明

(λ,x)(\lambda,x)

AA

的特徵值-特徵向量對:

(λIA)x=0,x0(\lambda I-A)x=0,x \ne 0

但是

(λIA)x=0(\lambda I-A)x=0

只有當

(λIA)(\lambda I-A)

有一個非空零空間時,同時

(λIA)(\lambda I-A)

是奇異的,

xx

才具有非零解,即:

(λIA)=0|(\lambda I-A)|=0

我們現在可以使用之前的行列式定義來展開這個表達式式

(λIA)|(\lambda I-A)|

λ\lambda

的(非常大的)多項式,其中,

λ\lambda

的次數為

nn

。它通常被稱為矩陣

AA

的特徵多項式。

然後我們找到這個特徵多項式的

nn

個根(可能是複數),並用

λ1,,λn\lambda_1,\cdots,\lambda_n

表示。這些都是矩陣

AA

的特徵值,但我們注意到它們可能不明顯。為了找到特徵值

λi\lambda_i

對應的特徵向量,我們只需解線性方程

(λIA)x=0(\lambda I-A)x=0

,因為

(λIA)(\lambda I-A)

是奇異的,所以保證有一個非零解(但也可能有多個或無窮多個解)。

應該注意的是,這不是實際用於數值計算特徵值和特徵向量的方法(記住行列式的完全展開式有

n!n!

項),這是一個數學論證。

以下是特徵值和特徵向量的性質(所有假設在

ARn×nA \in\mathbb{R}^{n\times n}

具有特徵值

λ1,,λn\lambda_1,\cdots,\lambda_n

的前提下):

  • AA

    的跡等於其特徵值之和,也等於對角元素之和(跡的定義)

    trA=i=1nλi=i=1nAii\operatorname{tr} A=\sum_{i=1}^{n} \lambda_{i} =\sum_{i=1}^{n} A_{ii}

  • AA

    的行列式等於其特徵值的乘積

    A=i=1nλi|A|=\prod_{i=1}^{n} \lambda_{i}

  • AA

    的秩等於

    AA

    的非零特徵值的個數

  • 假設

    AA

    非奇異,其特徵值為

    λ\lambda

    和特徵向量為

    xx

    。那麼

    1/λ1/\lambda

    是具有相關特徵向量

    xx

    A1A^{-1}

    的特徵值,即

    A1x=(1/λ)xA^{-1}x=(1/\lambda)x

    。(要證明這一點,取特徵向量方程,

    Ax=λxAx=\lambda x

    ,兩邊都左乘

    A1A^{-1}

  • 對角陣的特徵值

    D=diag(d1,dn)D=\operatorname{diag}(d_1,\cdots d_n)

    實際上就是對角元素

    d1,dnd_1,\cdots d_n

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

一般而言,一般方陣的特徵值和特徵向量的結構很難表徵。 幸運的是,在機器學習的大多數情況下,處理對稱實矩陣就足夠了,其特徵值和特徵向量具有顯着的性質。

在本節中,我們假設

AA

是實對稱矩陣, 具有以下性質:

  1. AA

    的所有特徵值都是實數。 我們用

    λ1,,λn\lambda_1,\cdots,\lambda_n

    表示。

  2. 存在一組特徵向量

    u1,,unu_1,\cdots,u_n

    ,對於所有

    ii

    uiu_i

    是特徵值

    λi\lambda_{i}

    對應的特徵向量。以及

    u1,,unu_1,\cdots,u_n

    是單位向量並且彼此正交[9]

UU

是包含

uiu_i

作為列的正交矩陣[10]

U=[u1u2un](5)U=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {u_{1}} & {u_{2}} & {\cdots} & {u_{n}} \\ { |} & { |} & {} & { |}\end{array}\right]
\label{5}\tag{5}

Λ=diag(λ1,,λn)\Lambda= \operatorname{diag}(\lambda_1,\cdots,\lambda_n)

是包含

λ1,,λn\lambda_1,\cdots,\lambda_n

作為對角線上的元素的對角矩陣。 使用 2.3 節的方程

(2)\eqref{2}

中的矩陣 – 矩陣向量乘法的方法,我們可以驗證:

AU=[Au1Au2Aun]=[λ1u1λ2u2λnun]=Udiag(λ1,,λn)=UΛ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

考慮到正交矩陣

UU

滿足

UUT=IUU^T=I

,利用上面的方程,我們得到:

A=AUUT=UΛUT(6)A=AUU^T=U\Lambda U^T
\label{6}\tag{6}

這種

AA

的新的表示形式為

UΛUTU\Lambda U^T

,通常稱為矩陣

AA

對角化。術語對角化是這樣來的:通過這種表示,我們通常可以有效地將對稱矩陣

AA

視為對角矩陣–這更容易理解–關於由特徵向量

UU

定義的基礎, 我們將通過幾個例子詳細說明。

背景知識:關於另一個基的向量

任何正交矩陣

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

定義了一個新的屬於

Rn\mathbb {R}^{n}

的基(坐標系),意義如下:對於任何向量

xRnx \in\mathbb{R}^{n}

都可以表示為

u1,,unu_1,\cdots,u_n

的線性組合,其係數為

x^1,,x^n\hat x_1,\cdots,\hat x_n

x=x^1u1++x^nun=Ux^x=\hat x_1u_1+\cdots + \hat x_nu_n=U\hat x

在第二個等式中,我們使用矩陣和向量相乘的方法,查看式

(1)\eqref{1}

。 實際上,這種

x^\hat x

是唯一存在的:

x=Ux^UTx=x^x=U \hat{x} \Leftrightarrow U^{T} x=\hat{x}

換句話說,向量

x^=UTx\hat x=U^Tx

可以作為向量

xx

的另一種表示,與

UU

定義的基有關。

「對角化」矩陣向量乘法。 通過上面的設置,我們將看到左乘矩陣

AA

可以被視為左乘對角矩陣,也就是特徵向量組成的基。 假設

xx

是一個向量,

x^\hat x

是以

UU

為基

xx

的表示。設

z=Axz=Ax

為矩陣向量積。現在讓我們計算以

UU

為基來表示

zz


然後,再利用

UUT=UTU=IUU^T=U^TU=I

A=AUUT=UΛUTA=AUU^T=U\Lambda U^T

,也就是式

(6)\eqref{6}

,我們得到:

z^=UTz=UTAx=UTUΛUTx=Λx^=[λ1x^1λ2x^2λnx^n]\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]

我們可以看到,原始空間中的左乘矩陣

AA

等於左乘對角矩陣

Λ\Lambda

相對於新的基,即僅將每個坐標縮放相應的特徵值。
在新的基上,矩陣多次相乘也變得簡單多了。例如,假設

q=AAAxq=AAAx

。根據

AA

的元素導出

qq

的分析形式,使用原始的基可能是一場噩ڊ#x68A6;,但使用新的基就容易多了:

q^=UTq=UTAAAx=UTUΛUTUΛUTUΛUTx=Λ3x^=[λ13x^1λ23x^2λn3x^n](7)\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]
\label{7}\tag{7}

「對角化」二次型。作為直接推論,二次型

xTAxx^TAx

也可以在新的基上簡化。

xTAx=xTUΛUTx=x^TΛx^=i=1nλix^i2(8)x^{T} A x=x^{T} U \Lambda U^{T} x=\hat{x}^T \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}
\label{8}\tag{8}

(回想一下,在舊的表示法中,

xTAx=i=1,j=1nxixjAijx^{T} A x=\sum_{i=1, j=1}^{n} x_{i} x_{j} A_{i j}

涉及一個

n2n^2

項的和,而不是上面等式中的

nn

項。)利用這個觀點,我們還可以證明矩陣

AA

的正定性完全取決於其特徵值的符號:

  1. 如果所有的

    λi>0\lambda_i>0

    ,則矩陣

    AA

    正定的,因為對於任意的

    x^0\hat x \ne 0

    ,

    xTAx=i=1nλix^i2>0x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}>0

    [11]

  2. 如果所有的

    λi0\lambda_i\geq 0

    ,則矩陣

    AA

    是為正半定,因為對於任意的

    x^\hat x

    ,

    xTAx=i=1nλix^_i20x^{T} A x=\sum*{i=1}^{n} \lambda*{i} \hat{x}\_{i}^{2} \geq 0

  3. 同樣,如果所有

    λi<0\lambda_i<0

    λi0\lambda_i\leq 0

    ,則矩陣

    AA

    分別為負定或半負定。

  4. 最後,如果

    AA

    同時具有正特徵值和負特徵值,比如

    λi>0\lambda_i>0

    λj<0\lambda_j<0

    ,那麼它是不定的。這是因為如果我們讓

    x^\hat x

    滿足

    x^i=1 and x^k=0,ki\hat x_i=1 \text{ and } \hat x_k=0, \forall k\ne i

    ,那麼

    xTAx=i=1nλix^i2>0x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}>0

    ,同樣的我們讓

    x^\hat x

    滿足

    x^j=1 and x^k=0,kj\hat x_j=1 \text{ and } \hat x_k=0,\forall k\ne j

    ,那麼

    xTAx=i=1nλix^i2<0x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}<0

    [12]

特徵值和特徵向量經常出現的應用是最大化矩陣的某些函數。特別是對於矩陣

ASnA \in \mathbb{S}^{n}

,考慮以下最大化問題:

maxxRn xTAx=i=1nλix^i2 subject to x22=1(9)\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
\label{9}\tag{9}

也就是說,我們要找到(範數 1)的向量,它使二次型最大化。假設特徵值的階數為

λ1λ2λn\lambda_1 \geq \lambda _2 \geq \cdots \lambda_n

,此優化問題的最優值為

λ1\lambda_1

,且與

λ1\lambda_1

對應的任何特徵向量

u1u_1

都是最大值之一。(如果

λ1>λ2\lambda_1 > \lambda_2

,那麼有一個與特徵值

λ1\lambda_1

對應的唯一特徵向量,它是上面那個優化問題

(9)\eqref{9}

的唯一最大值。)

我們可以通過使用對角化技術來證明這一點:注意,通過公式

Ux2=(3)x2\|U x\|_{2}\overset{\eqref{3}}{=}\|x\|_{2}

推出

x2=x^2\|x\|_{2}=\|\hat{x}\|_{2}

,並利用公式

xTAx=xTUΛUTx=x^TΛx^=i=1nλix^_i2,也就是式(8)x^{T} A x=x^{T} U \Lambda U^{T} x=\hat{x}^T \Lambda \hat{x}=\sum*{i=1}^{n} \lambda*{i} \hat{x}\_{i}^{2} ,\text{也就是式}\eqref{8}

,我們可以將上面那個優化問題改寫為:

maxx^Rn x^TΛx^=i=1nλix^i2 subject to x^22=1\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

然後,我們得到目標的上界為

λ1\lambda_1

x^TΛx^=i=1nλix^i2i=1nλ1x^i2=λ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}

此外,設置

x^=[100]\hat{x}=\left[\begin{array}{c}{1} \\ {0} \\ {\vdots} \\ {0}\end{array}\right]

可讓上述等式成立,這與設置

x=u1x=u_1

相對應。

4.矩陣微積分

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

4.1 梯度

假設

f:Rm×nRf: \mathbb{R}^{m \times n} \rightarrow \mathbb{R}

是將維度為

m×nm \times n

的矩陣

ARm×nA\in \mathbb{R}^{m \times n}

作為輸入並返回實數值的函數。 然後

ff

梯度(相對於

ARm×nA\in \mathbb{R}^{m \times n}

)是偏導數矩陣,定義如下:

Af(A)Rm×n=[f(A)A11f(A)A12f(A)A1nf(A)A21f(A)A22f(A)A2nf(A)Am1f(A)Am2f(A)Amn]\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×nm \times n

矩陣:

(Af(A))ij=f(A)Aij\left(\nabla_{A} f(A)\right)_{i j}=\frac{\partial f(A)}{\partial A_{i j}}

請注意

Af(A)\nabla_{A} f(A)

的維度始終與

AA

的維度相同。特殊情況,如果

AA

只是向量

ARnA\in \mathbb{R}^{n}

,則

xf(x)=[f(x)x1f(x)x2f(x)xn]\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]

重要的是要記住,只有當函數是實值時,即如果函數返回標量值,才定義函數的梯度。例如,

ARm×nA\in \mathbb{R}^{m \times n}

相對於

xx

,我們不能取

AxAx

的梯度,因為這個量(輸出)是向量值。

直接從偏導數的等價性質得出:

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

  • For tR,x(tf(x))=txf(x)\text{For }t \in \mathbb{R},\nabla_{x}(t f(x))=t \nabla_{x} f(x)

原則上,梯度是偏導數對多維變量函數的自然延伸。然而,在實踐中,由於符號的原因,使用梯度有時是很棘手的。例如,假設

ARm×nA\in \mathbb{R}^{m \times n}

是一個固定係數矩陣,假設

bRmb\in \mathbb{R}^{m}

是一個固定係數向量。設

f:RmRf: \mathbb{R}^{m} \rightarrow \mathbb{R}

f(z)=zTzf(z)=z^Tz

定義的函數,因此

zf(z)=2z\nabla_{z}f(z)=2z

。但現在考慮表達式,

f(Ax)\nabla f(Ax)

該表達式應該如何解釋? 至少有兩種可能性:

  1. 在第一個解釋中,回想起
    zf(z)=2z\nabla_{z}f(z)=2z

    。 在這裡,我們將

    f(Ax)\nabla f(Ax)

    解釋為評估點

    AxAx

    處的梯度,因此:

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

  1. 在第二種解釋中,我們將數量
    f(Ax)f(Ax)

    視為輸入變量

    xx

    的函數。 更正式地說,設

    g(x)=f(Ax)g(x) =f(Ax)

    。 然後在這個解釋中:

f(Ax)=xg(x)Rn\nabla f(A x)=\nabla_{x} g(x) \in \mathbb{R}^{n}

在這裡,我們可以看到這兩種解釋確實不同。 一種解釋產生

mm

維向量作為結果,而另一種解釋產生

nn

維向量作為結果(

xx

的維度是

nn

,所以

xg(x)\nabla_{x} g(x)

也是

nn

,上面有講到)! 我們怎麼解決這個問題?

這裡,關鍵是要明確我們要區分的變量。
在第一種情況下,我們將函數

ff

與其參數

zz

進行區分,然後替換參數

AxAx


在第二種情況下,我們將複合函數

g(x)=f(Ax)g(x)=f(Ax)

直接與

xx

進行微分。

我們將第一種情況表示為

zf(Ax)\nabla zf(Ax)

,第二種情況表示為

xf(Ax)\nabla xf(Ax)

[13]

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

4.2 黑塞矩陣

假設

f:RnRf: \mathbb{R}^{n} \rightarrow \mathbb{R}

是一個函數,它接受

Rn\mathbb{R}^{n}

中的向量並返回實數。那麼關於

xx

黑塞矩陣(也有翻譯作海森矩陣),寫做:

x2f(Ax)\nabla_x ^2 f(A x)

,或者簡單地說,

HH

n×nn \times n

的偏導數矩陣:

x2f(x)Rn×n=[2f(x)x122f(x)x1x22f(x)x1xn2f(x)x2x12f(x)x222f(x)x2xn2f(x)xnx12f(x)xnx22f(x)xn2]\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]

換句話說,

x2f(x)Rn×n\nabla_{x}^{2} f(x) \in \mathbb{R}^{n \times n}

,其:

(x2f(x))ij=2f(x)xixj\left(\nabla_{x}^{2} f(x)\right)_{i j}=\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{j}}

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

2f(x)xixj=2f(x)xjxi\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(x)

為實值時黑塞矩陣才有定義。

很自然地認為梯度與向量函數的一階導數的相似,而黑塞矩陣與二階導數的相似(我們使用的符號也暗示了這種關係)。 這種直覺通常是正確的,但需要記住以下幾個注意事項。
首先,對於一個變量

f:RRf: \mathbb{R} \rightarrow \mathbb{R}

的實值函數,它的基本定義:二階導數是一階導數的導數,即:

2f(x)x2=xxf(x)\frac{\partial^{2} f(x)}{\partial x^{2}}=\frac{\partial}{\partial x} \frac{\partial}{\partial x} f(x)

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

xxf(x)=x[f(x)x1f(x)x2f(x)xn]\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]

上面這個表達式沒有意義。 因此,黑塞矩陣不是梯度的梯度。 然而,下面這種情況卻這幾乎是正確的:如果我們看一下梯度

(xf(x))i=f(x)/xi\left(\nabla_{x} f(x)\right)_{i}=\partial f(x) / \partial x_{i}

的第

ii

個元素,並取關於於

xx

的梯度我們得到:

xf(x)xi=[2f(x)xix12f(x)x2x2f(x)xixn]\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]

這是黑塞矩陣第

ii

行(列),所以:

x2f(x)=[x(xf(x))1x(xf(x))2x(xf(x))n]\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]

簡單地說:我們可以說由於:

x2f(x)=x(xf(x))T\nabla_{x}^{2} f(x)=\nabla_{x}\left(\nabla_{x} f(x)\right)^{T}

,只要我們理解,這實際上是取

xf(x)\nabla_{x} f(x)

的每個元素的梯度,而不是整個向量的梯度。

最後,請注意,雖然我們可以對矩陣

ARnA\in \mathbb{R}^{n}

取梯度,但對於這門課,我們只考慮對向量

xRnx \in \mathbb{R}^{n}

取黑塞矩陣。
這會方便很多(事實上,我們所做的任何計算都不要求我們找到關於矩陣的黑森方程),因為關於矩陣的黑塞方程就必須對矩陣所有元素求偏導數

2f(A)/(AijAk)\partial^{2} f(A) /\left(\partial A_{i j} \partial A_{k \ell}\right)

,將其表示為矩陣相當麻煩。

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

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

對於

xRnx \in \mathbb{R}^{n}

, 設

f(x)=bTxf(x)=b^Tx

的某些已知向量

bRnb \in \mathbb{R}^{n}

,則:

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

所以:

f(x)xk=xki=1nbixi=bk\frac{\partial f(x)}{\partial x_{k}}=\frac{\partial}{\partial x_{k}} \sum_{i=1}^{n} b_{i} x_{i}=b_{k}

由此我們可以很容易地看出

xbTx=b\nabla_{x} b^{T} x=b

。 這應該與單變量微積分中的類似情況進行比較,其中

/(x)ax=a\partial /(\partial x) a x=a


現在考慮

ASnA\in \mathbb{S}^{n}

的二次函數

f(x)=xTAxf(x)=x^TAx

。 記住這一點:

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

為了取偏導數,我們將分別考慮包括

xkx_k

x2kx_2^k

因子的項:

f(x)xk=xki=1nj=1nAijxixj=xk[ikjkAijxixj+ikAikxixk+jkAkjxkxj+Akkxk2]=ikAikxi+jkAkjxj+2Akkxk=i=1nAikxi+j=1nAkjxj=2i=1nAkixi\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}

最後一個等式,是因為

AA

是對稱的(我們可以安全地假設,因為它以二次形式出現)。 注意,

xf(x)\nabla_{x} f(x)

的第

kk

個元素是

AA

xx

的第

kk

行的內積。 因此,

xxTAx=2Ax\nabla_{x} x^{T} A x=2 A x

。 同樣,這應該提醒你單變量微積分中的類似事實,即

/(x)ax2=2ax\partial /(\partial x) a x^{2}=2 a x

最後,讓我們來看看二次函數

f(x)=xTAxf(x)=x^TAx

黑塞矩陣(顯然,線性函數

bTxb^Tx

的黑塞矩陣為零)。在這種情況下:

2f(x)xkx=xk[f(x)x]=xk[2i=1nAixi]=2Ak=2Ak\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}

因此,應該很清楚

x2xTAx=2A\nabla_{x}^2 x^{T} A x=2 A

,這應該是完全可以理解的(同樣類似於

2/(x2)ax2=2a\partial^2 /(\partial x^2) a x^{2}=2a

的單變量事實)。

簡要概括起來:

  • xbTx=b\nabla_{x} b^{T} x=b

  • xxTAx=2Ax\nabla_{x} x^{T} A x=2 A x

    (如果

    AA

    是對稱陣)

  • x2xTAx=2A\nabla_{x}^2 x^{T} A x=2 A

    (如果

    AA

    是對稱陣)

4.4 最小二乘法

讓我們應用上一節中得到的方程來推導最小二乘方程。假設我們得到矩陣

ARm×nA\in \mathbb{R}^{m \times n}

(為了簡單起見,我們假設

AA

是滿秩)和向量

bRmb\in \mathbb{R}^{m}

,從而使

bR(A)b \notin \mathcal{R}(A)

。在這種情況下,我們將無法找到向量

xRnx\in \mathbb{R}^{n}

,由於

Ax=bAx = b

,因此我們想要找到一個向量

xx

,使得

AxAx

儘可能接近

bb

,用歐幾里德範數的平方

Axb_22\|A x-b\|\_{2}^{2}

來衡量。

使用公式

x2=xTx\|x\|^{2}=x^Tx

,我們可以得到:

Axb22=(Axb)T(Axb)=xTATAx2bTAx+bTb\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}

根據

xx

的梯度,並利用上一節中推導的性質:

x(xTATAx2bTAx+bTb)=xxTATAxx2bTAx+xbTb=2ATAx2ATb\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}

將最後一個表達式設置為零,然後解出

xx

,得到了正規方程:

x=(ATA)1ATbx = (A^TA)^{-1}A^Tb

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

4.5 行列式的梯度

現在讓我們考慮一種情況,我們找到一個函數相對於矩陣的梯度,也就是說,對於

ARn×nA\in \mathbb{R}^{n \times n}

,我們要找到

AA\nabla_{A}|A|

。回想一下我們對行列式的討論:

A=i=1n(1)i+jAijA\i,\j( for any j1,,n)|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)

所以:

AkA=Aki=1n(1)i+jAijA\i,\j=(1)k+A\k,\=(adj(A))k\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}

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

AA=(adj(A))T=AAT\nabla_{A}|A|=(\operatorname{adj}(A))^{T}=|A| A^{-T}

現在我們來考慮函數

f:S++nRf : \mathbb{S}_{++}^{n} \rightarrow \mathbb{R}

f(A)=logAf(A)=\log |A|

。注意,我們必須將

ff

的域限制為正定矩陣,因為這確保了

A>0|A|>0

,因此

A|A|

的對數是實數。在這種情況下,我們可以使用鏈式法則(沒什麼奇怪的,只是單變量演算中的普通鏈式法則)來看看:

logAAij=logAAAAij=1AAAij\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}}

從這一點可以明顯看出:

AlogA=1AAA=A1\nabla_{A} \log |A|=\frac{1}{|A|} \nabla_{A}|A|=A^{-1}

我們可以在最後一個表達式中刪除轉置,因為

AA

是對稱的。注意與單值情況的相似性,其中

/(x)logx=1/x\partial /(\partial x) \log x=1 / x

4.6 特徵值優化

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

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

對於對稱矩陣

ASnA\in \mathbb{S}^{n}

。求解等式約束優化問題的標準方法是採用拉格朗日形式,一種包含等式約束的目標函數[14],在這種情況下,拉格朗日函數可由以下公式給出:

L(x,λ)=xTAxλxTx\mathcal{L}(x, \lambda)=x^{T} A x-\lambda x^{T} x

其中,

λ\lambda

被稱為與等式約束關聯的拉格朗日乘子。可以確定,要使

xx^{\star}

成為問題的最佳點,拉格朗日的梯度必須在

xx^\star

處為零(這不是唯一的條件,但它是必需的)。也就是說,

xL(x,λ)=x(xTAxλxTx)=2ATx2λx=0\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=λxAx =\lambda x

。 這表明假設

xTx=1x^T x = 1

,可能最大化(或最小化)

xTAxx^T Ax

的唯一點是

AA

的特徵向量。

名詞索引

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 拉格朗日


  1. E.g., 如果你可以用矩陣或向量來寫出你所有的數學推導,那會比用標量元素來寫要好。 ↩︎

  2. A,BA,B

    為反對稱矩陣,即有

    AT=A,BT=BA^T = -A , B^T=-B

    則:

    (A±B)T=AT±BT=(A)±(B)=(A±B)(A \plusmn B)^T = A^T \plusmn B^T = (-A) \plusmn (-B) = -(A \plusmn B)

    ↩︎ ↩︎

  3. AA

    為反對稱矩陣,

    BB

    為對稱矩陣,即有

    AT=A,BT=BA^T = -A , B^T=B

    則:

    (ABBA)T=(AB)T(BA)T=BTATATBT=BA+AB=(ABBA)(AB – BA)^T = (AB)^T – (BA)^T = B^TA^T – A^TB^T = -BA + AB =(AB – BA)

    ↩︎

  4. 參考Moore–Penrose inverse ↩︎ ↩︎

  5. 很容易混淆並認為非奇異意味着不可逆。 但實際上,意思正好相反! 小心! ↩︎

  6. 誠然,我們實際上並沒有定義我們在這裡所說的「體積」是什麼意思,但希望直覺應該足夠清楚。 當

    n=2n = 2

    時,我們的「體積」概念對應於笛卡爾平面中

    SS

    的面積。 當

    n=3n = 3

    時,「體積」對應於我們通常的三維物體體積概念。 ↩︎

  7. AijA_{ij}

    餘子式(餘子式其實是一個數)表示為

    Mij=A\i,\jM_{ij} = \left|A_{\backslash i, \backslash j}\right|

    ,就是刪除第 i 行和第 j 列而產生矩陣的行列式;

    AijA_{ij}

    代數餘子式(代數餘子式也是一個數)表示為

    Cij=(1)i+jMijC_{ij} = (-1)^{i+j}M_{ij}

    AA

    餘子矩陣(代數餘子式矩陣,記為 cof)是一個

    nn

    階矩陣

    CC

    ,使得其第

    ii

    行第

    jj

    列的元素是

    AA

    關於第

    ii

    行第

    jj

    列的代數餘子式。則伴隨矩陣的定義如下:

    A=adj(A)=CTRn×n,(adj(A))ij=(1)i+jA\j,\i=CjiA^* = \operatorname{adj}(A) = C^T \in \mathbb{R}^{n \times n}, \quad(\operatorname{adj}(A))_{i j}=(-1)^{i+j}\left|A_{\backslash j, \backslash i}\right| =C_{ji}

    伴隨矩陣的一些性質(這裡用

    AA^*

    表示

    adj(A)\operatorname{adj}(A)

    ):


    • AA

      可逆當且僅當

      AA^*

      可逆


    • AA

      可逆,則

      A=AA1A^* = |A|A^{-1}


    • A=An1|A^*|=|A|^{n-1}


    • (kA)=kn1A(kA)^*=k^{n-1}A^*


    • AA

      可逆,則

      (A1)=(A)1(A^{-1})^* = (A^*)^{-1}


    • (AT)=(A)T(A^T)^* = (A^*)^T


    • (AB)=BA(AB)^* = B^*A^*


    • rank(A)=n,rank(A)=nrank(A)=1,rank(A)=n1rank(A)=0,rank(A)<n1\operatorname{rank}(A^*) = n, \operatorname{rank}(A) = n\\\operatorname{rank}(A^*) = 1, \operatorname{rank}(A) = n-1\\\operatorname{rank}(A^*) = 0, \operatorname{rank}(A) < n-1

    ↩︎

  8. 請注意,

    λ\lambda

    xx

    的元素實際上在

    CC

    中,即複數集,而不僅僅是實數; 我們很快就會看到為什麼這是必要的。 現在不要擔心這個問題,你可以像實向量一樣思考復向量。 ↩︎

  9. 在數學上,我們有

    i,Aui=λiui,ui2=1,and ji,uiTuj=0\forall{i},Au_i = \lambda_iu_i, \|u_i\|_2 = 1, \text{and } \forall{j} \neq i, u_i^Tu_j = 0

    。此外,我們注意到任意矩陣 A(而這裡我們主要描述對稱矩陣)的特徵向量,並不是都滿足彼此正交,因為特徵值可以是重複的,特徵向量也是如此。 ↩︎

  10. 這裡為了符號的簡單性,我們偏離了前幾節中矩陣列的符號約定(本來是應該用

    uiu^i

    表示的,這裡我們用

    uiu_i

    來表示)。 ↩︎

  11. 注意

    x^0x0\hat x \ne 0 \hArr x \ne 0

    ↩︎

  12. 注意

    x=Ux^x=U \hat x

    ,因此構造

    x^\hat x

    給出來

    xx

    的隱式構造 ↩︎

  13. 我們必須接受這種符號的一個缺點是,在第一種情況下,

    zf(Ax)\nabla zf(Ax)

    似乎我們正在對一個變量進行微分,而這個變量甚至沒有出現在被微分的表達式中! 出於這個原因,第一種情況通常寫為

    f(Ax)\nabla f(Ax)

    ,並且可以理解我們對

    ff

    的參數進行微分這一事實。 然而,第二種情況總是寫成

    xf(Ax)\nabla xf(Ax)

    ↩︎

  14. 如果您以前沒有見過拉格朗日,請不要擔心,因為我們將在後面的 CS229 中更詳細地介紹它們。 ↩︎

翻譯不易,//github.com/openjw/open/blob/master/MachineLearning/cs229/cs229-linalg.md