CS229 斯坦福大學機器學習複習材料(數學基礎) - 線性代數
線性代數回顧與參考
1 基本概念和符號
線性代數提供了一種緊湊地表示和運算“線性方程組”的方法。例如,考慮以下方程組:
4x1−5x2=−13−2x1+3x2=9.4x_{\scriptscriptstyle 1} - 5x_{\scriptscriptstyle 2} = -13\\
-2x_{\scriptscriptstyle 1} + 3x_{\scriptscriptstyle 2} = 9.4x1−5x2=−13−2x1+3x2=9.
這是兩個方程和兩個變數,正如你從高中代數中所知,你可以找到 x1x_1x1 和 x2x_2x2 的唯一解(除非方程以某種方式退化,例如,如果第二個方程只是第一個的倍數,但在上面的情況下,實際上只有一個唯一解)。 在矩陣表示法中,我們可以更緊湊地表達:
Ax=bAx= bAx=b
其中
A=[4−5−23],b=[−139].A=\begin{bmatrix}
4 & -5 \\
-2 & 3
\end{bmatrix},
b=\begin{bmatrix}
-13 \\
9
\end{bmatrix}.A=[4−2−53],b=[−139].
我們可以看到,以這種形式分析線性方程有許多優點(包括明顯的節省空間)。
1.1 基本符號
我們使用以下符號:
用A∈Rm×nA \in \Bbb{R}^{m \times n}A∈Rm×n表示一個mmm行nnn列的矩陣,其中AAA的各項都是實數。
用x∈Rn\boldsymbol{x} \in \Bbb{R}^{n}x∈Rn表示具有nnn個元素的向量。按照慣例,nnn維向量。通常被認為是nnn行111列的矩陣,稱為列向量。如果我們想表示一個行向量: 具有 111 行和nnn列的矩陣 - 我們通常寫xT\boldsymbol{x}^TxT(這裡xT\boldsymbol{x}^TxT表示x\boldsymbol{x}x的轉置,我們稍後將定義它)。
用xix_ixi表示向量x\boldsymbol{x}x的第iii個元素:
x=[x1x2⋮xn].\boldsymbol{x}=\begin{bmatrix}
x_1 \\
x_2 \\
\vdots \\
x_n
\end{bmatrix}.x=⎣⎡x1x2⋮xn⎦⎤.我們用符號aija_{\scriptscriptstyle ij}aij(or AijA_{ij}Aij, Ai,jA_{i,j}Ai,j)表示AAA的第iii行第jjj列元素:
A=[a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn].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}.A=⎣⎡a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎦⎤.我們將AAA的第jjj列表示為aja^jaj or A:,jA_{:,j}A:,j :
A=[|||a1a2⋯an|||].A = \begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
a^1 & a^2 & \cdots & a^n \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}.A=⎣⎡|a1||a2|⋯|an|⎦⎤.我們將AAA的第iii行表示為aiTa_i^TaiT or Ai,:A_{i,:}Ai,: :
A=[—a1T——a2T—⋮—amT—].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}.A=⎣⎡———a1Ta2T⋮amT———⎦⎤.在許多情況下,將矩陣視為列向量或行向量的集合是非常重要和方便的。一般來說,在數學上(和概念上)向量級別上的操作比標量級別上的操作會更簡潔。表示矩陣的列或行沒有通用約定,因此你可以使用任何符號明確定義它。
2 矩陣乘法
矩陣A∈Rm×nA \in \Bbb{R}^{m \times n}A∈Rm×n和矩陣B∈Rn×pB \in \Bbb{R}^{n \times p}B∈Rn×p的乘積仍然是一個矩陣C=AB∈Rm×pC = AB \in \Bbb{R}^{m \times p}C=AB∈Rm×p,其中Cij=∑k=1nAikBkjC_{ij} = \displaystyle\sum_{k=1}^n {A_{ik}B_{kj}}Cij=k=1∑nAikBkj.
請注意,為了使矩陣乘積存在,AAA中的列數必須等於BBB中的行數。有很多方法可以檢視矩陣乘法,我們將從檢查一些特殊情況開始。
2.1 向量-向量乘法
給兩個向量x,y∈Rn\boldsymbol{x},\boldsymbol{y} \in \Bbb{R}^nx,y∈Rn, xTy\boldsymbol{x}^T \boldsymbol{y}xTy通常稱為向量的內積或者點積,結果是個實數:
xTy∈R=[x1x2⋯xn][y1y2⋮yn]=∑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∈R=[x1x2⋯xn]⎣⎡y1y2⋮yn⎦⎤=i=1∑nxiyi
請注意,內積實際上只是矩陣乘法的特例。xTy=yTx\boldsymbol{x}^T \boldsymbol{y} = \boldsymbol{y}^T \boldsymbol{x}xTy=yTx 始終成立。
給定向量x∈Rm,y∈Rn\boldsymbol{x} \in \Bbb{R}^m , \boldsymbol{y} \in \Bbb{R}^nx∈Rm,y∈Rn(mmm不一定等於nnn), xyT∈Rm×n\boldsymbol{x} \boldsymbol{y}^T \in \Bbb{R}^{m \times n}xyT∈Rm×n叫向量外積,它是一個矩陣,由(xyT)ij=xiyj(\boldsymbol{x} \boldsymbol{y}^T)_{ij} = x_iy_j(xyT)ij=xiyj組成,也就是(i.e.):
xyT∈Rm×n=[x1x2⋮xm][y1y2⋯yn]=[x1y1x1y2⋯x1ynx2y1x2y2⋯x2yn⋮⋮⋱⋮xmy1xmy2⋯xmyn]\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}xyT∈Rm×n=⎣⎡x1x2⋮xm⎦⎤[y1y2⋯yn]=⎣⎡x1y1x2y1⋮xmy1x1y2x2y2⋮xmy2⋯⋯⋱⋯x1ynx2yn⋮xmyn⎦⎤
舉一個外積如何使用的一個例子:讓1∈Rn\boldsymbol{1}\in \Bbb{R}^{n}1∈Rn表示一個nnn維向量,其元素都等於 1,此外,考慮矩陣A∈Rm×nA \in \Bbb{R}^{m \times n}A∈Rm×n,其列全部是某個向量 x∈Rm\boldsymbol{x} \in R^{m}x∈Rm。 我們可以使用外積緊湊地表示矩陣 AAA:
A=[|||xx⋯x|||]=[x1x1⋯x1x2x2⋯x2⋮⋮⋱⋮xmxm⋯xm]=[x1x2⋮xm][11⋯1]=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}^TA=⎣⎡|x||x|⋯|x|⎦⎤=⎣⎡x1x2⋮xmx1x2⋮xm⋯⋯⋱⋯x1x2⋮xm⎦⎤=⎣⎡x1x2⋮xm⎦⎤[11⋯1]=x1T
2.2 矩陣-向量乘法
給定矩陣 A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n,向量 x∈Rn\boldsymbol{x} \in \mathbb{R}^{n}x∈Rn , 它們的積是一個向量 y=Ax∈Rm\boldsymbol{y} = A\boldsymbol{x} \in \mathbb{R}^{m}y=Ax∈Rm。 有幾種方法可以檢視矩陣向量乘法。
如果我們按行寫AAA,那麼我們可以表示AxA\boldsymbol{x}Ax為:
y=Ax=[—a1T——a2T—⋮—amT—]x=[a1Txa2Tx⋮amTx]\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}y=Ax=⎣⎡———a1Ta2T⋮amT———⎦⎤x=⎣⎡a1Txa2Tx⋮amTx⎦⎤
換句話說,第iii個yyy的元素是AAA的第iii行和x\boldsymbol{x}x的內積,即:yi=aiTxy_i=a_{i}^{T} \boldsymbol{x}yi=aiTx。
同樣的, 可以把 AAA 寫成列的方式,如下:
y=Ax=[|||a1a2⋯an|||][x1x2⋮xn]=[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=Ax=⎣⎡|a1||a2|⋯|an|⎦⎤⎣⎡x1x2⋮xn⎦⎤=[a1]x1+[a2]x2+⋯+[an]xn(1)
換句話說,y\boldsymbol{y}y是AAA的列的線性組合,其中線性組合的係數由x\boldsymbol{x}x的元素給出。
到目前為止,我們一直是矩陣右乘一個列向量,但也可以是矩陣左乘一個行向量。如這樣表示:yT=xTA\boldsymbol{y}^T = \boldsymbol{x}^TAyT=xTA 其中A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n,x∈Rm\boldsymbol{x} \in \mathbb{R}^{m}x∈Rm,y∈Rn\boldsymbol{y} \in \mathbb{R}^{n}y∈Rn。 和以前一樣,我們可以用兩種可行的方式表達yT\boldsymbol{y}^TyT,這取決於我們是否根據行或列表達AAA.
首先,我們把AAA用列表示:
yT=xTA=xT[|||a1a2⋯an|||]=[xTa1xTa2⋯xTan]\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=xTA=xT⎣⎡|a1||a2|⋯|an|⎦⎤=[xTa1xTa2⋯xTan]
這表明yT\boldsymbol{y}^TyT的第iii個元素等於x\boldsymbol{x}x和AAA的第iii列的內積。
最後,根據行表示AAA,我們得到了向量-矩陣乘積的最終表示:
yT=xTA=[x1x2⋯xn][—a1T——a2T—⋮—amT—]=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=xTA=[x1x2⋯xn]⎣⎡———a1Ta2T⋮amT———⎦⎤=x1[—a1T—]+x2[—a2T—]+⋯+xn[—anT—]
所以我們看到yT\boldsymbol{y}^TyT是AAA的行的線性組合,其中線性組合的係數由x\boldsymbol{x}x的元素給出。
2.3 矩陣-矩陣乘法
有了這些知識,我們現在可以看看四種不同的(當然是等價的)檢視矩陣與矩陣乘法C=ABC = ABC=AB的方法。
首先,我們可以將矩陣-矩陣乘法視為一組向量-向量乘積。 從定義中可以得出:最明顯的觀點是CCC的(i,ji,ji,j)元素等於AAA的第iii行和BBB的的jjj列的內積。如下所示:
C=AB=[—a1T——a2T—⋮—amT—][|||b1b2⋯bp|||]=[a1b1a1b2⋯a1bpa2b1a2b2⋯a2bp⋮⋮⋱⋮amb1amb2⋯ambp]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}C=AB=⎣⎡———a1Ta2T⋮amT———⎦⎤⎣⎡|b1||b2|⋯|bp|⎦⎤=⎣⎡a1b1a2b1⋮amb1a1b2a2b2⋮amb2⋯⋯⋱⋯a1bpa2bp⋮ambp⎦⎤
這裡的矩陣A∈Rm×n,B∈Rn×pA \in \Bbb{R}^{m \times n} , B \in \Bbb{R}^{n \times p}A∈Rm×n,B∈Rn×p , 向量ai∈Rn,bj∈Rna_i \in \Bbb{R}^n , b^j \in \Bbb{R}^nai∈Rn,bj∈Rn ,所以它們可以計算內積。當我們用行表示 AAA 和用列表示 BBB 時,這是最“自然”的表示。
另外,我們可以用列表示 AAA,用行表示 BBB。這種表示導致將 ABABAB 解釋為外積之和,這種表示則複雜得多。象徵性地,
C=AB=[|||a1a2⋯an|||][—b1T——b2T—⋮—bnT—]=∑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}C=AB=⎣⎡|a1||a2|⋯|an|⎦⎤⎣⎡———b1Tb2T⋮bnT———⎦⎤=i=1∑naibiT
換句話說,ABABAB等於所有的AAA的第iii列和BBB第iii行的外積的和。因此,在這種情況下, ai∈Rma^i \in \mathbb{R}^ mai∈Rm和bi∈Rpb_i \in \mathbb{R}^pbi∈Rp, 外積aibiTa^ib_i^TaibiT的維度是m×pm×pm×p,與CCC的維度一致。
其次,我們還可以將矩陣-矩陣乘法視為一組矩陣-向量乘法。如果我們把BBB用列表示,我們可以將CCC的列視為AAA和BBB的列(矩陣-向量)的乘積。如下所示:
C=AB=A[|||b1b2⋯bp|||]=[|||Ab1Ab2⋯Abp|||](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}C=AB=A⎣⎡|b1||b2|⋯|bp|⎦⎤=⎣⎡|Ab1||Ab2|⋯|Abp|⎦⎤(2)
這裡CCC的第iii列由矩陣-向量乘積給出,右邊的向量為ci=Abic_i = Ab_ici=Abi。
最後,我們有類似的觀點,我們用行表示AAA,並將CCC的行視為AAA的行和BBB之間的矩陣-向量乘積。如下所示:
C=AB=[—a1T——a2T—⋮—amT—]B=[—a1TB——a2TB—⋮—amTB—]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}C=AB=⎣⎡———a1Ta2T⋮amT———⎦⎤B=⎣⎡———a1TBa2TB⋮amTB———⎦⎤
這裡CCC的第iii行由矩陣-向量乘積給出:ciT=aiTBc_i^T = a_i^T BciT=aiTB。
將矩陣乘法剖析到如此大的程度似乎有點矯枉過正,特別是當所有這些觀點都緊跟在我們在本節開頭給出的初始定義(C=ABC=ABC=AB)之後。
這些不同方法的直接優勢在於它們允許您在向量的級別/單位而不是標量上進行操作。 為了完全理解線性代數而不會迷失在複雜的索引操作中,關鍵是操作儘可能大(向量而不是標量)的概念。[1]
實際上所有的線性代數都是在處理某種矩陣乘法,多花一些時間對這裡提出的觀點進行直觀的理解是非常必要的。
除此之外,你還應該瞭解一些更高級別的矩陣乘法的基本性質:
- 矩陣乘法結合律: (AB)C=A(BC)(AB)C = A(BC)(AB)C=A(BC)
- 矩陣乘法分配律: A(B+C)=AB+ACA(B + C) = AB + ACA(B+C)=AB+AC
- 矩陣乘法一般是不可交換的; 也就是說,通常AB≠BAAB \ne BAAB=BA。 (例如,假設A∈Rm×n,A \in \mathbb{R}^ {m \times n},A∈Rm×n, B∈Rn×pB \in \mathbb{R}^ {n \times p}B∈Rn×p,如果mmm和qqq不相等,矩陣乘積BABABA甚至不存在!)
如果您不熟悉這些性質,請花點時間自己驗證它們。 例如,為了檢查矩陣乘法的結合性,假設A∈Rm×n,A \in \mathbb{R}^ {m \times n},A∈Rm×n, B∈Rn×pB \in \mathbb{R}^ {n \times p}B∈Rn×p,C∈Rp×qC \in \mathbb{R}^ {p \times q}C∈Rp×q。 注意AB∈Rm×pAB \in \mathbb{R}^ {m \times p}AB∈Rm×p,所以(AB)C∈Rm×q(AB)C \in \mathbb{R}^ {m \times q}(AB)C∈Rm×q。 類似地,BC∈Rn×qBC \in \mathbb{R}^ {n \times q}BC∈Rn×q,所以A(BC)∈Rm×qA(BC) \in \mathbb{R}^ {m \times q}A(BC)∈Rm×q。 因此,所得矩陣的維度一致。 為了驗證矩陣乘法的結合性,檢查(AB)C(AB)C(AB)C的(i,ji,ji,j)元素是否等於A(BC)A(BC)A(BC)的(i,ji,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}((AB)C)ij=k=1∑p(AB)ikCkj=k=1∑p(l=1∑nAilBlk)Ckj=k=1∑p(l=1∑nAilBlkCkj)=l=1∑n(k=1∑pAilBlkCkj)=l=1∑nAil(k=1∑pBlkCkj)=l=1∑nAil(BC)lj=(A(BC))ij
這裡,第一個和最後兩個等式簡單地使用了矩陣乘法的定義,第三個和第五個等式使用了標量乘法對加法的分配性質,第四個等式使用了標量加法的交換性和結合性。 這種通過簡化為簡單標量性質來證明矩陣性質的技術會經常出現,因此請確保您熟悉它。
3 操作及其性質
在本節中,我們將介紹矩陣和向量的幾種操作和性質。 希望其中的大部分內容都可以幫您複習,此筆記可以作為參考。
3.1 單位矩陣和對角矩陣
單位矩陣用I∈Rn×nI \in \Bbb{R}^{n \times n}I∈Rn×n表示,它是一個方陣,對角線的元素是 1,其餘元素都是 0。可以這樣表示:
Iij={1i=j0i≠j.I_{ij} =
\begin{cases}
1 & i=j \\
0 & i \neq j
\end{cases}.Iij={10i=ji=j.
對於所有矩陣A∈Rm×nA \in \mathbb{R}^ {m \times n}A∈Rm×n,有:
AI=A=IAAI=A=IAAI=A=IA
注意,在某種意義上,上面單位矩陣的表示法是不明確的,因為它沒有指定III的維數。通常,III的維數是從上下文推斷出來的,以便使矩陣乘法成為可能。 例如,在上面的等式中,AI=AAI = AAI=A中的III是n×nn\times nn×n矩陣,而A=IAA = IAA=IA中的III是m×mm\times mm×m矩陣。
對角矩陣的非對角元素全為 0。對角陣通常表示為:D=diag(d1,d2,⋯ ,dn)D=diag(d_1, d_2,\cdots, d_n)D=diag(d1,d2,⋯,dn),其中:
Dij={dii=j0i≠j.D_{ij} =
\begin{cases}
d_i & i=j \\
0 & i \neq j
\end{cases}.Dij={di0i=ji=j.
很明顯,單位矩陣I=diag(1,1,⋯ ,1)I= diag(1, 1, \cdots , 1)I=diag(1,1,⋯,1)。
3.2 轉置
矩陣的轉置是指翻轉矩陣的行和列。給定一個矩陣A∈Rm×nA \in \Bbb{R}^{m \times n}A∈Rm×n,它的轉置AT∈Rn×mA^T \in \Bbb{R}^{n \times m}AT∈Rn×m ,其中的元素為:
(AT)ij=Aji.(A^T)_{ij} = A_{ji}.(AT)ij=Aji.
事實上,我們在描述行向量時已經使用了轉置,因為列向量的轉置自然是行向量。
轉置有以下性質,且很容易驗證:
- (AT)T=A(A^T)^T = A(AT)T=A
- (AB)T=BTAT(AB)^T = B^TA^T(AB)T=BTAT
- (A+B)T=AT+BT(A+B)^T = A^T + B^T(A+B)T=AT+BT
3.3 對稱矩陣
如果A=ATA = A^TA=AT,那麼方陣A∈Rn×nA \in \Bbb{R}^{n \times n}A∈Rn×n是對稱的。
- 元素滿足aij=aji,∀i,ja_{ij} = a_{ji} , \forall i,jaij=aji,∀i,j
- A=ATA = A^TA=AT
- 對於任意方陣AAA,A+ATA + A^TA+AT是對稱的
- 對角矩陣都是對稱矩陣
如果A=−ATA = -A^TA=−AT,那麼它就是反對稱的。
- 元素滿足aij=−aji,∀i,ja_{ij} = -a_{ji} , \forall i,jaij=−aji,∀i,j,所以當i=ji=ji=j時,aij=0a_{ij} = 0aij=0
- A,BA,BA,B都為反對稱矩陣,則A±BA \plusmn BA±B仍為反對稱矩陣[2]
- 若AAA為反對稱矩陣,BBB為對稱矩陣,則AB−BAAB-BAAB−BA為對稱矩陣[3]
很容易證明,對於任何矩陣A∈Rn×nA \in \mathbb{R}^ {n \times n}A∈Rn×n,矩陣A+ATA + A^ TA+AT是對稱的,矩陣A−ATA -A^TA−AT是反對稱的[2:1]。
由此得出,任意方矩陣A∈Rn×nA \in \mathbb{R}^ {n \times n}A∈Rn×n可以表示為對稱矩陣和反對稱矩陣的和,所以:
A=12(A+AT)+12(A−AT)A=\frac{1}{2}(A+A^T)+\frac{1}{2}(A-A^T)A=21(A+AT)+21(A−AT)
事實證明,對稱矩陣在實踐中用到很多,它們有很多很好的性質,我們很快就會看到它們。
通常將大小為nnn的所有對稱矩陣的集合表示為Sn\mathbb{S}^nSn,因此A∈SnA \in \mathbb{S}^nA∈Sn意味著AAA是對稱的n×nn\times nn×n矩陣。
3.4 矩陣的跡
方矩陣A∈Rn×nA \in \mathbb{R}^ {n \times n}A∈Rn×n的跡,表示為tr(A)\operatorname{tr} (A)tr(A)(或者trA\operatorname{tr} AtrA,括號顯然是隱含的),是矩陣中對角元素的總和:
trA=∑i=1nAii\operatorname{tr} A=\sum_{i=1}^{n} A_{i i}trA=i=1∑nAii
如 CS229 講義中所述,跡具有以下性質(如下所示):
- 對於矩陣A∈Rn×nA \in \mathbb{R}^ {n \times n}A∈Rn×n,則:trA=trAT\operatorname{tr}A =\operatorname{tr}A^TtrA=trAT
- 對於矩陣A,B∈Rn×nA,B \in \mathbb{R}^ {n \times n}A,B∈Rn×n,則:tr(A+B)=trA+trB\operatorname{tr}(A + B) = \operatorname{tr}A + \operatorname{tr}Btr(A+B)=trA+trB
- 對於矩陣A∈Rn×nA \in \mathbb{R}^ {n \times n}A∈Rn×n,t∈Rt \in \mathbb{R}t∈R,則:tr(tA)=ttrA\operatorname{tr}(tA) = t\operatorname{tr}Atr(tA)=ttrA.
- 對於矩陣 AAA, BBB,ABABAB 為方陣, 則:trAB=trBA\operatorname{tr}AB = \operatorname{tr}BAtrAB=trBA
- 對於矩陣 AAA, BBB, CCC, ABCABCABC為方陣(包含 1*1 的矩陣-標量), 則:trABC=trBCA=trCAB\operatorname{tr}ABC = \operatorname{tr}BCA=\operatorname{tr}CABtrABC=trBCA=trCAB, 同理,更多矩陣的積也是有這個性質。
我們給出第四個性質的證明。假設A∈Rm×nA \in \mathbb{R}^ {m \times n}A∈Rm×n和B∈Rn×mB \in \mathbb{R}^ {n \times m}B∈Rn×m(因此AB∈Rm×mAB \in \mathbb{R}^ {m \times m}AB∈Rm×m是方陣)。 觀察到BA∈Rn×nBA \in \mathbb{R}^ {n \times n}BA∈Rn×n也是一個方陣,因此對它們進行跡的運算是有意義的。 要證明trAB=trBA\operatorname{tr}AB = \operatorname{tr}BAtrAB=trBA,注意:
trAB=∑i=1m(AB)ii=∑i=1m(∑j=1nAijBji)=∑i=1m∑j=1nAijBji=∑j=1n∑i=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}trAB=i=1∑m(AB)ii=i=1∑m(j=1∑nAijBji)=i=1∑mj=1∑nAijBji=j=1∑ni=1∑mBjiAij=j=1∑n(i=1∑mBjiAij)=j=1∑n(BA)jj=trBA
這裡,第一個和最後兩個等式使用了跡運算子和矩陣乘法的定義。 重點在第四個等式,使用標量乘法的交換性來反轉每個乘積中的項的順序,以及標量加法的交換性和結合性來重新排列求和的順序。
3.5 範數
向量的範數∥x∥\|x\|∥x∥是非正式度量的向量的“長度” 。 例如,我們有常用的歐幾里德或ℓ2\ell_{2}ℓ2範數,
∥x∥2=∑i=1nxi2\|x\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}∥x∥2=i=1∑nxi2
注意:∥x∥22=xTx\|x\|_{2}^{2}=x^{T} x∥x∥22=xTx
更正式地,範數是滿足 4 個性質的函式(f:Rn→Rf : \mathbb{R}^{n} \rightarrow \mathbb{R}f:Rn→R):
- 對於所有的 x∈Rnx \in \mathbb{R}^ {n}x∈Rn, f(x)≥0f(x) \geq 0f(x)≥0(非負性).
- 當且僅當x=0x = 0x=0 時,f(x)=0f(x) = 0f(x)=0 (確定性).
- 對於所有x∈Rnx \in \mathbb{R}^ {n}x∈Rn,t∈Rt\in \mathbb{R}t∈R,則 f(tx)=∣t∣f(x)f(tx) = \left| t \right|f(x)f(tx)=∣t∣f(x) (正齊次性).
- 對於所有 x,y∈Rnx,y \in \mathbb{R}^ {n}x,y∈Rn, f(x+y)≤f(x)+f(y)f(x + y) \leq f(x) + f(y)f(x+y)≤f(x)+f(y) (三角不等式)
其他範數的例子,如:ℓ1\ell_1ℓ1範數:
∥x∥1=∑i=1n∣xi∣\|x\|_{1}=\sum_{i=1}^{n}|x_{i}|∥x∥1=i=1∑n∣xi∣
和ℓ∞\ell_{\infty }ℓ∞範數:
∥x∥∞=maxi∣xi∣\|x\|_{\infty}=\max_{i}\left|x_{i}\right|∥x∥∞=imax∣xi∣
事實上,到目前為止所提出的所有三個範數都是ℓp\ell_pℓp範數族的例子,它們由實數p≥1p \geq 1p≥1引數化,並定義為:
∥x∥p=(∑i=1n∣xi∣p)1/p\|x\|_{p}=\left(\sum_{i=1}^{n}\left|x_{i}\right|^{p}\right)^{1 / p}∥x∥p=(i=1∑n∣xi∣p)1/p
也可以為矩陣定義範數,例如Frobenius範數:
∥A∥F=∑i=1m∑j=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)}∥A∥F=i=1∑mj=1∑nAij2=tr(ATA)
還有很多其他範數,但它們超出了這個複習材料的範圍。
3.6 線性相關性和秩
一個向量集合{x1,x2,⋯xn}⊂Rm\{ x_1,x_2, \cdots x_n \} \subset \mathbb{R}^m{x1,x2,⋯xn}⊂Rm, 如果沒有向量可以表示為其餘向量的線性組合,則稱稱該向量是線性無關的。 相反,如果屬於該組的一個向量可以表示為其餘向量的線性組合,則稱該向量是線性相關的。 也就是說,如果:
xj=∑i=1,i≠jnαixix_{j}=\sum_{i=1,i \neq j}^{n} \alpha_{i} x_{i}xj=i=1,i=j∑nαixi
存在α1,⋯αn∈R\alpha_1,\cdots \alpha_{n} \in \mathbb{R}α1,⋯αn∈R,那麼向量x1,x2,⋯xnx_1,x_2, \cdots x_nx1,x2,⋯xn是線性相關的; 否則,向量是線性無關的。
另一種線性相關的描述(存在不全為零的數αi\alpha_{i}αi,使得等式成立):
∑i=1nαixi=0,∃αi≠0\sum_{i=1}^{n} \alpha_{i} x_{i} = 0,\exists \alpha_i \neq 0i=1∑nαixi=0,∃αi=0
例如,向量:
x1=[123]x2=[415]x3=[2−3−1]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}x1=⎣⎡123⎦⎤x2=⎣⎡415⎦⎤x3=⎣⎡2−3−1⎦⎤
是線性相關的,因為:x3=−2x1+x2x_3=-2x_1+x_2x3=−2x1+x2。
矩陣A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n的列秩是構成線性無關集合的AAA的最大列子集的大小。 由於術語的多樣性,這通常簡稱為AAA的線性無關列的數量。同樣,行秩是構成線性無關集合的AAA的最大行數。
對於任何矩陣A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n,事實證明AAA的列秩等於AAA的行秩(儘管我們不會證明這一點),因此兩個量統稱為AAA的秩,用 rank(A)\text{rank}(A)rank(A)表示。 以下是秩的一些基本性質:
- 對於 A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n,rank(A)≤min(m,n)\text{rank}(A) \leq min(m, n)rank(A)≤min(m,n),如果(A)=min(m,n)\text(A) = \text{min} (m, n)(A)=min(m,n),則: AAA 被稱作滿秩。
- 對於 A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n, rank(A)=rank(AT)\text{rank}(A) = \text{rank}(A^T)rank(A)=rank(AT)
- 對於 A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n,B∈Rn×pB \in \mathbb{R}^{n \times p}B∈Rn×p ,rank(AB)≤min(rank(A),rank(B))\text{rank}(AB) \leq \text{min} ( \text{rank}(A), \text{rank}(B))rank(AB)≤min(rank(A),rank(B))
- 對於 A,B∈Rm×nA,B \in \mathbb{R}^{m \times n}A,B∈Rm×n,rank(A+B)≤rank(A)+rank(B)\text{rank}(A + B) \leq \text{rank}(A) + \text{rank}(B)rank(A+B)≤rank(A)+rank(B)
3.7 方陣的逆
方陣A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n的逆表示為A−1A^{-1}A−1,並且是這樣的唯一矩陣:
A−1A=I=AA−1A^{-1}A=I=AA^{-1}A−1A=I=AA−1
請注意,並非所有矩陣都具有逆。 例如,非方形矩陣根據定義沒有逆(存在偽逆[4])。 然而,對於一些方形矩陣AAA,A−1A^{-1}A−1也可能不存在。 特別是,如果A−1A^{-1}A−1存在,我們說AAA是可逆的或非奇異的,否則就是不可逆或奇異的[5]。
為了使方陣 A 具有逆A−1A^{-1}A−1,則AAA必須是滿秩。 我們很快就會發現,除了滿秩之外,還有許多其它的充分必要條件。
以下是逆的性質; 假設A,B∈Rn×nA,B \in \mathbb{R}^{n \times n}A,B∈Rn×n,而且是非奇異的:
- (A−1)−1=A(A^{-1})^{-1} = A(A−1)−1=A
- (AB)−1=B−1A−1(AB)^{-1} = B^{-1}A^{-1}(AB)−1=B−1A−1
- (A−1)T=(AT)−1(A^{-1})^{T} =(A^{T})^{-1}(A−1)T=(AT)−1因此,該矩陣通常表示為A−TA^{-T}A−T。
作為如何使用逆的示例,考慮線性方程組,Ax=bAx = bAx=b,其中A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n,x,b∈Rx,b\in \mathbb{R}x,b∈R, 如果AAA是非奇異的(即可逆的),那麼x=A−1bx = A^{-1}bx=A−1b。 (如果A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n,不是方陣,這公式還有用嗎? - 偽逆[4:1])
3.8 正交矩陣
如果 xTy=0x^Ty=0xTy=0,則兩個向量x,y∈Rnx,y\in \mathbb{R}^{n}x,y∈Rn 是正交的。如果∥x∥2=1\|x\|_2=1∥x∥2=1,則向量x∈Rnx\in \mathbb{R}^{n}x∈Rn 被歸一化。如果一個方陣U∈Rn×nU\in \mathbb{R}^{n \times n}U∈Rn×n的所有列彼此正交併被歸一化,則方陣UUU是正交矩陣(注意在討論向量與矩陣時的意義不一樣,兩個向量正交只需要內積為 0,正交矩陣是各列相互正交併且被歸一化)。
它可以從正交性和正態性的定義中得出:
UTU=I=UUTU^ TU = I = U U^TUTU=I=UUT
換句話說,正交矩陣的逆是其轉置。 注意,如果UUU不是方陣, 即,U∈Rm×n,n<mU\in \mathbb{R}^{m \times n}, n < mU∈Rm×n,n<m ,但其列仍然是正交的,則UTU=IU^TU = IUTU=I,但是UUT≠IUU^T \neq IUUT=I。所以正交矩陣一定是方陣。
正交矩陣的另一個好的特性是在具有正交矩陣的向量上操作不會改變其歐幾里德範數,即(i.e.):
∥Ux∥2=∥x∥2(3)\|U x\|_{2}=\|x\|_{2}
\label{3}\tag{3}∥Ux∥2=∥x∥2(3)
對於任何 x∈Rnx\in \mathbb{R}^nx∈Rn , U∈Rn×nU\in \mathbb{R}^{n \times n}U∈Rn×n是正交矩陣。
3.9 矩陣的值域和零空間
張成一個向量集合{x1,x2,⋯xn}\{ x_1,x_2, \cdots x_n \}{x1,x2,⋯xn}可以表示為一個向量集合{x1,⋯xn}\{ x_1, \cdots x_n \}{x1,⋯xn}的所以線性組合:
span({x1,⋯xn})={v:v=∑i=1nαixi,αi∈R}\operatorname{span}(\{x_1, \cdots x_n \}) = \Bigg\{v:v=\sum_{i=1}^n{\alpha_i x_i}, \alpha_i \in \Bbb{R} \Bigg\}span({x1,⋯xn})={v:v=i=1∑nαixi,αi∈R}
可以看到,如果{x1,⋯xn}\{x_{1}, \cdots x_{n}\}{x1,⋯xn}是一組nnn個線性無關的向量,其中每個xi∈Rnx_i \in \mathbb{R}^{n}xi∈Rn,則span({x1,…xn})=Rn\text{span}(\{x_{1}, \ldots x_{n}\})=\mathbb{R}^{n}span({x1,…xn})=Rn。 換句話說,任何向量v∈Rnv\in \mathbb{R}^{n}v∈Rn都可以寫成x1x_1x1到xnx_nxn的線性組合。
向量y∈Rmy\in \mathbb{R}^{m}y∈Rm投影到{x1,…xn}\{x_{1}, \ldots x_{n}\}{x1,…xn}所張成的空間(這裡我們假設xi∈Rmx_i \in \mathbb{R}^{m}xi∈Rm)得到向量v∈span({x1,…,xn})v \in \operatorname{span}(\{x_{1}, \ldots, x_{n}\})v∈span({x1,…,xn}),由歐幾里德範數∥v−y∥2\|v - y\|_2∥v−y∥2可以得知,這樣vvv儘可能接近yyy。
我們將投影表示為Proj(y;{x1,…xn})\operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right)Proj(y;{x1,…xn}),並且可以將其正式定義為:
Proj(y;{x1,…xn})=argminv∈span({x1,…,xn})∥y−v∥2\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}Proj(y;{x1,…xn})=argminv∈span({x1,…,xn})∥y−v∥2
矩陣A∈Rm×nA\in \mathbb{R}^{m \times n}A∈Rm×n的值域(有時也稱為列空間),表示為R(A)\mathcal{R}(A)R(A),是AAA的列所張成的空間。換句話說,
R(A)={v∈Rm:v=Ax,x∈Rn}\mathcal{R}(A)=\left\{v \in \mathbb{R}^{m} : v=A x, x \in \mathbb{R}^{n}\right\}R(A)={v∈Rm:v=Ax,x∈Rn}
做一些技術性的假設(即AAA是滿秩且n<mn <mn<m),向量y∈Rmy \in \mathbb{R}^{m}y∈Rm到AAA的值域的投影由下式給出:
Proj(y;A)=argminv∈R(A)∥v−y∥2=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} yProj(y;A)=argminv∈R(A)∥v−y∥2=A(ATA)−1ATy
這個最後的方程應該看起來非常熟悉,因為它幾乎與我們在課程中(我們將很快再次得出)得到的公式:與引數的最小二乘估計一樣。
看一下投影的定義,顯而易見,這實際上是我們在最小二乘問題中最小化的目標(除了範數的平方這裡有點不一樣,這不會影響找到最優解),所以這些問題自然是非常相關的。
當AAA只包含一列時,a∈Rma \in \mathbb{R}^{m}a∈Rm,這給出了向量投影到一條線上的特殊情況:
Proj(y;a)=aaTaTay\operatorname{Proj}(y ; a)=\frac{a a^{T}}{a^{T} a} yProj(y;a)=aTaaaTy
一個矩陣A∈Rm×nA\in \mathbb{R}^{m \times n}A∈Rm×n的零空間 N(A)\mathcal{N}(A)N(A) 是所有乘以AAA時等於 0 向量的集合,即:
N(A)={x∈Rn:Ax=0}\mathcal{N}(A)=\left\{x \in \mathbb{R}^{n} : A x=0\right\}N(A)={x∈Rn:Ax=0}
注意,R(A)\mathcal{R}(A)R(A)中的向量的大小為mmm,而 N(A)\mathcal{N}(A)N(A) 中的向量的大小為nnn,因此R(AT)\mathcal{R}(A^T)R(AT)和 N(A)\mathcal{N}(A)N(A) 中的向量的大小均為Rn\mathbb{R}^{n}Rn。 事實上,還有很多例子。 證明:
{w:w=u+v,u∈R(AT),v∈N(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}\}{w:w=u+v,u∈R(AT),v∈N(A)}=Rn and R(AT)∩N(A)={0}
換句話說,R(AT)\mathcal{R}(A^T)R(AT)和 N(A)\mathcal{N}(A)N(A) 是不相交的子集,它們一起跨越Rn\mathbb{R}^{n}Rn的整個空間。 這種型別的集合稱為正交補,我們用R(AT)=N(A)⊥\mathcal{R}(A^T)= \mathcal{N}(A)^{\perp}R(AT)=N(A)⊥表示。
3.10 行列式
一個方陣A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n的行列式是函式det\text {det}det:Rn×n→Rn\mathbb{R}^{n \times n} \rightarrow \mathbb{R}^{n}Rn×n→Rn,並且表示為∣A∣\left| A \right|∣A∣或者detA\text{det} AdetA(有點像跡運算子,我們通常省略括號)。在代數上,我們可以寫出 A 的行列式的明確公式,但不幸的是,這並不能直觀地理解它的含義。 相反,我們將從提供行列式的幾何解釋開始,然後訪問其一些特定的代數性質。
給定一個矩陣:
[—a1T——a2T—⋮—anT—]\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}⎣⎡———a1Ta2T⋮anT———⎦⎤
考慮通過採用AAA行向量a1,…an∈Rna_{1}, \ldots a_{n}\in \mathbb{R}^{n}a1,…an∈Rn的所有可能線性組合形成的點S⊂RnS \subset \mathbb{R}^{n}S⊂Rn的集合,其中線性組合的係數都在 0 和 1 之間; 也就是說,集合SSS是span({a1,…an})\text{span}(\{a_{1}, \ldots a_{n}\})span({a1,…an})受到係數α1,…αn\alpha_{1}, \ldots \alpha_{n}α1,…αn的限制的線性組合,α1,⋯ ,αn\alpha_1, \cdots ,\alpha_nα1,⋯,αn滿足0≤αi≤1,i=1,…,n0 \leq \alpha_{i} \leq 1, i=1, \ldots, n0≤αi≤1,i=1,…,n。從形式上看,
S={v∈Rn:v=∑i=1nαiai where 0≤αi≤1,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\}S={v∈Rn:v=i=1∑nαiai where 0≤αi≤1,i=1,…,n}
事實證明,AAA的行列式的絕對值是對集合SSS的“體積”的度量[6]。
比方說:一個2×22 \times22×2的矩陣(4):
A=[1332](4)A=
\begin{bmatrix}
1 & 3 \\
3 & 2
\end{bmatrix}
\label{4}\tag{4}A=[1332](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]a1=[13]a2=[32]
對應於這些行對應的集合SSS如圖 1 所示。對於二維矩陣,SSS通常具有平行四邊形的形狀。 在我們的例子中,行列式的值是∣A∣=−7\left| A \right| = -7∣A∣=−7(可以使用本節後面顯示的公式計算),因此平行四邊形的面積為 7。(請自己驗證!)
在三維中,集合SSS對應於一個稱為平行六面體的物件(一個有傾斜邊的三維框,這樣每個面都有一個平行四邊形)。行定義SSS的3×33×33×3矩陣 S 的行列式的絕對值給出了平行六面體的三維體積。在更高的維度中,集合SSS是一個稱為nnn維平行體的物件。
(0, 0)
a1
(1, 3)
a2
(3, 2)
(4, 5)Viewer does not support full SVG 1.1
圖 1:(4)中給出的2×22×22×2矩陣AAA的行列式的圖示。 這裡,a1a_1a1和a2a_2a2是對應於AAA行的向量,並且集合SSS對應於平行四邊形區域。 這個行列式的絕對值,∣detA∣=7\left| \text{det} A \right| = 7∣detA∣=7,即平行四邊形的面積。
在代數上,行列式滿足以下三個性質(所有其他性質都遵循這些性質,包括通用公式):
單位陣的行列式為 1, ∣I∣=1\left| I \right|= 1∣I∣=1(幾何上,單位超立方體的體積為 1)。
給定一個矩陣 A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n, 如果我們將AAA中的一行乘上一個標量t∈Rt \in \mathbb{R}t∈R,那麼新矩陣的行列式是t∣A∣t\left| A \right|t∣A∣
∣[—ta1T——a2T—⋮—amT—]∣=t∣A∣\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|∣∣⎣⎡———ta1Ta2T⋮amT———⎦⎤∣∣=t∣A∣幾何上,將集合SSS的一個邊乘以係數ttt,體積也會增加一個係數ttt。
如果我們交換任意兩行在aiTa_i^TaiT和ajTa_j^TajT,那麼新矩陣的行列式是−∣A∣-\left| A \right|−∣A∣,例如:
∣[—a2T——a1T—⋮—amT—]∣=−∣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|∣∣⎣⎡———a2Ta1T⋮amT———⎦⎤∣∣=−∣A∣
你一定很奇怪,滿足上述三個性質的函式的存在並不多。事實上,這樣的函式確實存在,而且是唯一的(我們在這裡不再證明了)。
從上述三個性質中得出的幾個性質包括:
- 對於 A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n, ∣A∣=∣AT∣\left| A \right| = \left| A^T \right|∣A∣=∣∣AT∣∣
- 對於 A,B∈Rn×nA,B \in \mathbb{R}^{n \times n}A,B∈Rn×n, ∣AB∣=∣A∣∣B∣\left| AB \right|= \left| A \right|\left| B \right|∣AB∣=∣A∣∣B∣
- 對於 A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n,如果∣A∣=0\left| A \right|= 0∣A∣=0 有且只有當AAA是奇異的(即不可逆)(如果 AAA 是奇異的,那麼它沒有滿秩,因此它的列是線性相關的。在這種情況下,集合 SSS 對應於 nnn 維空間中的“平面”,因此體積為零。)
- 對於 A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n 同時,AAA為非奇異的,則:∣A−1∣=1/∣A∣\left| A ^{−1}\right| = 1/\left| A \right|∣∣A−1∣∣=1/∣A∣
在給出行列式的一般定義之前,我們定義,對於A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n,Ai,j∈R(n−1)×(n−1)A_{\bcancel i, \bcancel j}\in \mathbb{R}^{(n-1) \times (n-1)}Ai,j∈R(n−1)×(n−1)是由於刪除第iii行和第jjj列而產生的矩陣。 行列式的一般(遞迴)公式是:
∣A∣=∑i=1n(−1)i+jaij∣A\i,\j∣( for any j∈1,…,n)=∑j=1n(−1)i+jaij∣A\i,\j∣( for any i∈1,…,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}∣A∣=i=1∑n(−1)i+jaij∣∣A\i,\j∣∣( for any j∈1,…,n)=j=1∑n(−1)i+jaij∣∣A\i,\j∣∣( for any i∈1,…,n)
對於 A∈R1×1A \in \mathbb{R}^{1 \times 1}A∈R1×1,初始情況為∣A∣=a11\left| A \right|= a_{11}∣A∣=a11。如果我們把這個公式完全展開為 A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n,就等於n!n!n!(nnn階乘)不同的項。因此,對於大於3×33×33×3的矩陣,我們幾乎沒有明確地寫出完整的行列式方程。然而,3×33×33×3大小的矩陣的行列式方程是相當常見的,建議好好地瞭解它們:
∣[a11]∣=a11∣[a11a12a21a22]∣=a11a22−a12a21∣[a11a12a13a21a22a23a31a32a33]∣=a11a22a33+a12a23a31+a13a21a32−a11a23a32−a12a21a33−a13a22a31\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}∣[a11]∣∣∣[a11a21a12a22]∣∣∣∣⎣⎡a11a21a31a12a22a32a13a23a33⎦⎤∣∣=a11=a11a22−a12a21=a11a22a33+a12a23a31+a13a21a32−a11a23a32−a12a21a33−a13a22a31
矩陣A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n的經典伴隨矩陣(通常稱為伴隨矩陣[7])表示為adj(A)\operatorname{adj}(A)adj(A),並定義為:
adj(A)∈Rn×n,(adj(A))ij=(−1)i+j∣A\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|adj(A)∈Rn×n,(adj(A))ij=(−1)i+j∣∣A\j,\i∣∣
(注意索引A\j,\iA_{\backslash j, \backslash i}A\j,\i中的變化)。可以看出,對於任何非奇異A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n,
A−1=1∣A∣adj(A)A^{-1}=\frac{1}{|A|} \operatorname{adj}(A)A−1=∣A∣1adj(A)
雖然這是一個很好的“顯式”的逆矩陣公式,但我們應該注意,從數字上講,有很多更有效的方法來計算逆矩陣。
3.11 二次型和半正定矩陣
給定方矩陣A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n和向量x∈Rnx \in \mathbb{R}^{n}x∈Rn,標量xTAxx^T AxxTAx被稱為二次型。 寫得清楚些,我們可以看到:
xTAx=∑i=1nxi(Ax)i=∑i=1nxi(∑j=1nAijxj)=∑i=1n∑j=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=i=1∑nxi(Ax)i=i=1∑nxi(j=1∑nAijxj)=i=1∑nj=1∑nAijxixj
注意:
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) xxTAx=(xTAx)T=xTATx=xT(21A+21AT)x
小技巧:
A=A+AT2+A−AT2,xTAx=xTA+AT2x+xTA−AT2x=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 +0A=2A+AT+2A−AT,xTAx=xT2A+ATx+xT2A−ATx=xT2A+ATx+0
第一個等號的是因為是標量的轉置與自身相等,而第二個等號是因為是我們平均兩個本身相等的量。 由此,我們可以得出結論,只有AAA的對稱部分有助於形成二次型(A+ATA+A^TA+AT是對稱的)。 出於這個原因,我們經常隱含地假設以二次型出現的矩陣是對稱陣。
我們給出以下定義:
對於所有非零向量x∈Rnx \in \mathbb{R}^nx∈Rn,xTAx>0x^TAx>0xTAx>0,對稱陣A∈SnA \in \mathbb{S}^nA∈Sn為正定(PD)。這通常表示為A≻0A\succ0A≻0(或A>0A>0A>0),並且通常將所有正定矩陣的集合表示為S++n\mathbb{S}_{++}^nS++n。
對於所有向量xTAx≥0x^TAx\geq 0xTAx≥0,對稱矩陣A∈SnA \in \mathbb{S}^nA∈Sn是半正定(PSD)。 這寫為A⪰0A \succeq 0A⪰0(或A≥0A≥0A≥0),並且所有半正定矩陣的集合通常表示為S+n\mathbb{S}_+^nS+n。
同樣,對稱矩陣A∈SnA \in \mathbb{S}^nA∈Sn是負定(ND),如果對於所有非零x∈Rnx \in \mathbb{R}^nx∈Rn,則xTAx<0x^TAx <0xTAx<0表示為A≺0A\prec0A≺0(或A<0A <0A<0)。
類似地,對稱矩陣A∈SnA \in \mathbb{S}^nA∈Sn是半負定(NSD),如果對於所有x∈Rnx \in \mathbb{R}^nx∈Rn,則xTAx≤0x^TAx \leq 0xTAx≤0表示為A⪯0A\preceq 0A⪯0(或A≤0A≤0A≤0)。
最後,對稱矩陣A∈SnA \in \mathbb{S}^nA∈Sn是不定的,如果它既不是正半定也不是負半定,即,如果存在x1,x2∈Rnx_1,x_2 \in \mathbb{R}^nx1,x2∈Rn,那麼x1TAx1>0x_1^TAx_1>0x1TAx1>0且x2TAx2<0x_2^TAx_2<0x2TAx2<0。
很明顯,如果AAA是正定的,那麼−A−A−A是負定的,反之亦然。同樣,如果AAA是半正定的,那麼−A−A−A是是半負定的,反之亦然。如果果AAA是不定的,那麼−A−A−A是也是不定的。
正定矩陣和負定矩陣的一個重要性質是它們總是滿秩,因此是可逆的。為了瞭解這是為什麼,假設某個矩陣A∈SnA \in \mathbb{S}^nA∈Sn不是滿秩。然後,假設AAA的第jjj列可以表示為其他n−1n-1n−1列的線性組合:
aj=∑i≠jxiaia_{j}=\sum_{i \neq j} x_{i} a_{i}aj=i=j∑xiai
對於某些x1,⋯xj−1,xj+1,⋯ ,xn∈Rx_1,\cdots x_{j-1},x_{j + 1} ,\cdots ,x_n\in \mathbb{R}x1,⋯xj−1,xj+1,⋯,xn∈R。設xj=−1x_j = -1xj=−1,則:
Ax=∑i=1nxiai=0Ax=\sum_{i =1}^n x_{i} a_{i}=0Ax=i=1∑nxiai=0
但這意味著對於某些非零向量xxx,xTAx=0x^T Ax = 0xTAx=0,因此AAA必須既不是正定也不是負定。如果AAA是正定或負定,則必須是滿秩。
最後,有一種型別的正定矩陣經常出現,因此值得特別提及。 給定矩陣A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n(不一定是對稱或偶數平方),矩陣G=ATA∈Rn×nG = A^T A \in \Bbb{R}^{n \times n}G=ATA∈Rn×n(有時稱為Gram 矩陣)總是半正定的。 此外,如果m≥nm\geq nm≥n(同時為了方便起見,我們假設AAA是滿秩,即rank(A)=n\operatorname{rank}(A) = nrank(A)=n,則G=ATAG = A^T AG=ATA是正定的。
AATAA^TAAT(即 Gram 矩陣)是半正定矩陣;協方差矩陣要是半正定矩陣
正定矩陣的所有特徵值為正實數
半正定矩陣的所有特徵值為非負實數
負定矩陣的所有特徵值為負實數
半負定矩陣的所有特徵值為非正實數
不定矩陣的特徵值既有正數也有負數
3.12 特徵值和特徵向量
給定一個方陣A∈Rn×nA \in\mathbb{R}^{n\times n}A∈Rn×n,我們認為在以下條件下,λ∈C\lambda \in\mathbb{C}λ∈C是AAA的特徵值,x∈Cnx\in\mathbb{C}^nx∈Cn是相應的特徵向量[8]:
Ax=λx,x≠0Ax=\lambda x,x \ne 0Ax=λx,x=0
直觀地說,這個定義意味著將AAA乘以向量xxx會得到一個新的向量,該向量指向與xxx相同的方向,但按係數λ\lambdaλ縮放。
值得注意的是,對於任何特徵向量x∈Cnx\in\mathbb{C}^nx∈Cn和標量c∈Cc\in\mathbb{C}c∈C,A(cx)=cAx=cλx=λ(cx)A(cx)=cAx=c\lambda x=\lambda(cx)A(cx)=cAx=cλx=λ(cx),cxcxcx也是一個特徵向量。因此,當我們討論與λ\lambdaλ相關的特徵向量時,我們通常假設特徵向量被標準化為長度為 1(這仍然會造成一些歧義,因為xxx和−x−x−x都是特徵向量,但我們必須接受這一點)。
我們可以重寫上面的等式來說明(λ,x)(\lambda,x)(λ,x)是AAA的特徵值-特徵向量對:
(λI−A)x=0,x≠0(\lambda I-A)x=0,x \ne 0(λI−A)x=0,x=0
但是(λI−A)x=0(\lambda I-A)x=0(λI−A)x=0只有當(λI−A)(\lambda I-A)(λI−A)有一個非空零空間時,同時(λI−A)(\lambda I-A)(λI−A)是奇異的,xxx才具有非零解,即:
∣(λI−A)∣=0|(\lambda I-A)|=0∣(λI−A)∣=0
我們現在可以使用之前的行列式定義來展開這個表示式式∣(λI−A)∣|(\lambda I-A)|∣(λI−A)∣為λ\lambdaλ的(非常大的)多項式,其中,λ\lambdaλ的次數為nnn。它通常被稱為矩陣AAA的特徵多項式。
然後我們找到這個特徵多項式的nnn個根(可能是複數),並用λ1,⋯ ,λn\lambda_1,\cdots,\lambda_nλ1,⋯,λn表示。這些都是矩陣AAA的特徵值,但我們注意到它們可能不明顯。為了找到特徵值λi\lambda_iλi對應的特徵向量,我們只需解線性方程(λI−A)x=0(\lambda I-A)x=0(λI−A)x=0,因為(λI−A)(\lambda I-A)(λI−A)是奇異的,所以保證有一個非零解(但也可能有多個或無窮多個解)。
應該注意的是,這不是實際用於數值計算特徵值和特徵向量的方法(記住行列式的完全展開式有n!n!n!項),這是一個數學論證。
以下是特徵值和特徵向量的性質(所有假設在A∈Rn×nA \in\mathbb{R}^{n\times n}A∈Rn×n具有特徵值λ1,⋯ ,λn\lambda_1,\cdots,\lambda_nλ1,⋯,λn的前提下):
AAA的跡等於其特徵值之和,也等於對角元素之和(跡的定義)
trA=∑i=1nλi=∑i=1nAii\operatorname{tr} A=\sum_{i=1}^{n} \lambda_{i} =\sum_{i=1}^{n} A_{ii}trA=i=1∑nλi=i=1∑nAii
AAA的行列式等於其特徵值的乘積
∣A∣=∏i=1nλi|A|=\prod_{i=1}^{n} \lambda_{i}∣A∣=i=1∏nλi
AAA的秩等於AAA的非零特徵值的個數
假設AAA非奇異,其特徵值為λ\lambdaλ和特徵向量為xxx。那麼1/λ1/\lambda1/λ是具有相關特徵向量xxx的A−1A^{-1}A−1的特徵值,即A−1x=(1/λ)xA^{-1}x=(1/\lambda)xA−1x=(1/λ)x。(要證明這一點,取特徵向量方程,Ax=λxAx=\lambda xAx=λx,兩邊都左乘A−1A^{-1}A−1)
對角陣的特徵值D=diag(d1,⋯dn)D=\operatorname{diag}(d_1,\cdots d_n)D=diag(d1,⋯dn)實際上就是對角元素d1,⋯dnd_1,\cdots d_nd1,⋯dn
3.13 對稱矩陣的特徵值和特徵向量
一般而言,一般方陣的特徵值和特徵向量的結構很難表徵。 幸運的是,在機器學習的大多數情況下,處理對稱實矩陣就足夠了,其特徵值和特徵向量具有顯著的性質。
在本節中,我們假設AAA是實對稱矩陣, 具有以下性質:
AAA的所有特徵值都是實數。 我們用λ1,⋯ ,λn\lambda_1,\cdots,\lambda_nλ1,⋯,λn表示。
存在一組特徵向量u1,⋯ ,unu_1,\cdots,u_nu1,⋯,un,對於所有iii,uiu_iui是特徵值λi\lambda_{i}λi對應的特徵向量。以及u1,⋯ ,unu_1,\cdots,u_nu1,⋯,un是單位向量並且彼此正交[9]。
設UUU是包含uiu_iui作為列的正交矩陣[10]:
U=[∣∣∣u1u2⋯un∣∣∣](5)U=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {u_{1}} & {u_{2}} & {\cdots} & {u_{n}} \\ { |} & { |} & {} & { |}\end{array}\right]
\label{5}\tag{5}U=⎣⎡∣u1∣∣u2∣⋯∣un∣⎦⎤(5)
設Λ=diag(λ1,⋯ ,λn)\Lambda= \operatorname{diag}(\lambda_1,\cdots,\lambda_n)Λ=diag(λ1,⋯,λn)是包含λ1,⋯ ,λn\lambda_1,\cdots,\lambda_nλ1,⋯,λn作為對角線上的元素的對角矩陣。 使用 2.3 節的方程(2)\eqref{2}(2)中的矩陣 - 矩陣向量乘法的方法,我們可以驗證:
AU=[∣∣∣Au1Au2⋯Aun∣∣∣]=[∣∣∣λ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 \LambdaAU=⎣⎡∣Au1∣∣Au2∣⋯∣Aun∣⎦⎤=⎣⎡∣λ1u1∣∣λ2u2∣⋯∣λnun∣⎦⎤=Udiag(λ1,…,λn)=UΛ
考慮到正交矩陣UUU滿足UUT=IUU^T=IUUT=I,利用上面的方程,我們得到:
A=AUUT=UΛUT(6)A=AUU^T=U\Lambda U^T
\label{6}\tag{6}A=AUUT=UΛUT(6)
這種AAA的新的表示形式為UΛUTU\Lambda U^TUΛUT,通常稱為矩陣AAA的對角化。術語對角化是這樣來的:通過這種表示,我們通常可以有效地將對稱矩陣AAA視為對角矩陣--這更容易理解--關於由特徵向量UUU定義的基礎, 我們將通過幾個例子詳細說明。
背景知識:關於另一個基的向量。
任何正交矩陣U=[∣∣∣u1u2⋯un∣∣∣]U=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {u_{1}} & {u_{2}} & {\cdots} & {u_{n}} \\ { |} & { |} & {} & { |}\end{array}\right]U=⎣⎡∣u1∣∣u2∣⋯∣un∣⎦⎤定義了一個新的屬於Rn\mathbb {R}^{n}Rn的基(座標系),意義如下:對於任何向量x∈Rnx \in\mathbb{R}^{n}x∈Rn都可以表示為u1,⋯ ,unu_1,\cdots,u_nu1,⋯,un的線性組合,其係數為x^1,⋯ ,x^n\hat x_1,\cdots,\hat x_nx^1,⋯,x^n:
x=x^1u1+⋯+x^nun=Ux^x=\hat x_1u_1+\cdots + \hat x_nu_n=U\hat xx=x^1u1+⋯+x^nun=Ux^
在第二個等式中,我們使用矩陣和向量相乘的方法,檢視式(1)\eqref{1}(1)。 實際上,這種x^\hat xx^是唯一存在的:
x=Ux^⇔UTx=x^x=U \hat{x} \Leftrightarrow U^{T} x=\hat{x}x=Ux^⇔UTx=x^
換句話說,向量x^=UTx\hat x=U^Txx^=UTx可以作為向量xxx的另一種表示,與UUU定義的基有關。
“對角化”矩陣向量乘法。 通過上面的設定,我們將看到左乘矩陣AAA可以被視為左乘對角矩陣,也就是特徵向量組成的基。 假設xxx是一個向量,x^\hat xx^是以UUU為基xxx的表示。設z=Axz=Axz=Ax為矩陣向量積。現在讓我們計算以UUU為基來表示zzz:
然後,再利用UUT=UTU=IUU^T=U^TU=IUUT=UTU=I和A=AUUT=UΛUTA=AUU^T=U\Lambda U^TA=AUUT=UΛUT,也就是式(6)\eqref{6}(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]z^=UTz=UTAx=UTUΛUTx=Λx^=⎣⎡λ1x^1λ2x^2⋮λnx^n⎦⎤
我們可以看到,原始空間中的左乘矩陣AAA等於左乘對角矩陣Λ\LambdaΛ相對於新的基,即僅將每個座標縮放相應的特徵值。
在新的基上,矩陣多次相乘也變得簡單多了。例如,假設q=AAAxq=AAAxq=AAAx。根據AAA的元素匯出qqq的分析形式,使用原始的基可能是一場噩ڊ#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}q^=UTq=UTAAAx=UTUΛUTUΛUTUΛUTx=Λ3x^=⎣⎡λ13x^1λ23x^2⋮λn3x^n⎦⎤(7)
“對角化”二次型。作為直接推論,二次型xTAxx^TAxxTAx也可以在新的基上簡化。
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=xTUΛUTx=x^TΛx^=i=1∑nλix^i2(8)
(回想一下,在舊的表示法中,xTAx=∑i=1,j=1nxixjAijx^{T} A x=\sum_{i=1, j=1}^{n} x_{i} x_{j} A_{i j}xTAx=∑i=1,j=1nxixjAij涉及一個n2n^2n2項的和,而不是上面等式中的nnn項。)利用這個觀點,我們還可以證明矩陣AAA的正定性完全取決於其特徵值的符號:
如果所有的λi>0\lambda_i>0λi>0,則矩陣AAA正定的,因為對於任意的x^≠0\hat x \ne 0x^=0,xTAx=∑i=1nλix^i2>0x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}>0xTAx=∑i=1nλix^i2>0[11]
如果所有的λi≥0\lambda_i\geq 0λi≥0,則矩陣AAA是為正半定,因為對於任意的x^\hat xx^,xTAx=∑∗i=1nλ∗ix^_i2≥0x^{T} A x=\sum*{i=1}^{n} \lambda*{i} \hat{x}\_{i}^{2} \geq 0xTAx=∑∗i=1nλ∗ix^_i2≥0
同樣,如果所有λi<0\lambda_i<0λi<0或λi≤0\lambda_i\leq 0λi≤0,則矩陣AAA分別為負定或半負定。
最後,如果AAA同時具有正特徵值和負特徵值,比如 λi>0\lambda_i>0λi>0和λj<0\lambda_j<0λj<0,那麼它是不定的。這是因為如果我們讓x^\hat xx^滿足x^i=1 and x^k=0,∀k≠i\hat x_i=1 \text{ and } \hat x_k=0, \forall k\ne ix^i=1 and x^k=0,∀k=i,那麼xTAx=∑i=1nλix^i2>0x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}>0xTAx=∑i=1nλix^i2>0 ,同樣的我們讓x^\hat xx^滿足x^j=1 and x^k=0,∀k≠j\hat x_j=1 \text{ and } \hat x_k=0,\forall k\ne jx^j=1 and x^k=0,∀k=j,那麼xTAx=∑i=1nλix^i2<0x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}<0xTAx=∑i=1nλix^i2<0[12]
特徵值和特徵向量經常出現的應用是最大化矩陣的某些函式。特別是對於矩陣A∈SnA \in \mathbb{S}^{n}A∈Sn,考慮以下最大化問題:
maxx∈Rn xTAx=∑i=1nλix^i2 subject to ∥x∥22=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}x∈Rnmax xTAx=i=1∑nλix^i2 subject to ∥x∥22=1(9)
也就是說,我們要找到(範數 1)的向量,它使二次型最大化。假設特徵值的階數為λ1≥λ2≥⋯λn\lambda_1 \geq \lambda _2 \geq \cdots \lambda_nλ1≥λ2≥⋯λn,此優化問題的最優值為λ1\lambda_1λ1,且與λ1\lambda_1λ1對應的任何特徵向量u1u_1u1都是最大值之一。(如果λ1>λ2\lambda_1 > \lambda_2λ1>λ2,那麼有一個與特徵值λ1\lambda_1λ1對應的唯一特徵向量,它是上面那個優化問題(9)\eqref{9}(9)的唯一最大值。)
我們可以通過使用對角化技術來證明這一點:注意,通過公式∥Ux∥2=(3)∥x∥2\|U x\|_{2}\overset{\eqref{3}}{=}\|x\|_{2}∥Ux∥2=(3)∥x∥2推出∥x∥2=∥x^∥2\|x\|_{2}=\|\hat{x}\|_{2}∥x∥2=∥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}xTAx=xTUΛUTx=x^TΛx^=∑∗i=1nλ∗ix^_i2,也就是式(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}=1x^∈Rnmax x^TΛx^=i=1∑nλix^i2 subject to ∥x^∥22=1
然後,我們得到目標的上界為λ1\lambda_1λ1:
x^TΛx^=∑i=1nλix^i2≤∑i=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^TΛx^=i=1∑nλix^i2≤i=1∑nλ1x^i2=λ1
此外,設定x^=[10⋮0]\hat{x}=\left[\begin{array}{c}{1} \\ {0} \\ {\vdots} \\ {0}\end{array}\right]x^=⎣⎡10⋮0⎦⎤可讓上述等式成立,這與設定x=u1x=u_1x=u1相對應。
4.矩陣微積分
雖然前幾節中的主題通常線上性代數的標準課程中涵蓋,但一個似乎不經常涉及(我們將廣泛使用)的主題是微積分對向量設定的擴充套件。 儘管我們使用的所有實際微積分都相對微不足道,但符號通常會使事情看起來比實際困難得多。 在本節中,我們將介紹矩陣微積分的一些基本定義並提供一些示例。
4.1 梯度
假設f:Rm×n→Rf: \mathbb{R}^{m \times n} \rightarrow \mathbb{R}f:Rm×n→R是將維度為m×nm \times nm×n的矩陣A∈Rm×nA\in \mathbb{R}^{m \times n}A∈Rm×n作為輸入並返回實數值的函式。 然後fff的梯度(相對於A∈Rm×nA\in \mathbb{R}^{m \times n}A∈Rm×n)是偏導數矩陣,定義如下:
∇Af(A)∈Rm×n=[∂f(A)∂A11∂f(A)∂A12⋯∂f(A)∂A1n∂f(A)∂A21∂f(A)∂A22⋯∂f(A)∂A2n⋮⋮⋱⋮∂f(A)∂Am1∂f(A)∂Am2⋯∂f(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]∇Af(A)∈Rm×n=⎣⎡∂A11∂f(A)∂A21∂f(A)⋮∂Am1∂f(A)∂A12∂f(A)∂A22∂f(A)⋮∂Am2∂f(A)⋯⋯⋱⋯∂A1n∂f(A)∂A2n∂f(A)⋮∂Amn∂f(A)⎦⎤
即,m×nm \times nm×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))ij=∂Aij∂f(A)
請注意,∇Af(A)\nabla_{A} f(A)∇Af(A)的維度始終與AAA的維度相同。特殊情況,如果AAA只是向量A∈RnA\in \mathbb{R}^{n}A∈Rn,則
∇xf(x)=[∂f(x)∂x1∂f(x)∂x2⋮∂f(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]∇xf(x)=⎣⎡∂x1∂f(x)∂x2∂f(x)⋮∂xn∂f(x)⎦⎤
重要的是要記住,只有當函式是實值時,即如果函式返回標量值,才定義函式的梯度。例如,A∈Rm×nA\in \mathbb{R}^{m \times n}A∈Rm×n相對於xxx,我們不能取AxAxAx的梯度,因為這個量(輸出)是向量值。
直接從偏導數的等價性質得出:
∇x(f(x)+g(x))=∇xf(x)+∇xg(x)\nabla_{x}(f(x)+g(x))=\nabla_{x} f(x)+\nabla_{x} g(x)∇x(f(x)+g(x))=∇xf(x)+∇xg(x)
For t∈R,∇x(tf(x))=t∇xf(x)\text{For }t \in \mathbb{R},\nabla_{x}(t f(x))=t \nabla_{x} f(x)For t∈R,∇x(tf(x))=t∇xf(x)
原則上,梯度是偏導數對多維變數函式的自然延伸。然而,在實踐中,由於符號的原因,使用梯度有時是很棘手的。例如,假設A∈Rm×nA\in \mathbb{R}^{m \times n}A∈Rm×n是一個固定係數矩陣,假設b∈Rmb\in \mathbb{R}^{m}b∈Rm是一個固定係數向量。設f:Rm→Rf: \mathbb{R}^{m} \rightarrow \mathbb{R}f:Rm→R為f(z)=zTzf(z)=z^Tzf(z)=zTz定義的函式,因此∇zf(z)=2z\nabla_{z}f(z)=2z∇zf(z)=2z。但現在考慮表示式,
∇f(Ax)\nabla f(Ax)∇f(Ax)
該表示式應該如何解釋? 至少有兩種可能性:
- 在第一個解釋中,回想起∇zf(z)=2z\nabla_{z}f(z)=2z∇zf(z)=2z。 在這裡,我們將∇f(Ax)\nabla f(Ax)∇f(Ax)解釋為評估點AxAxAx處的梯度,因此:
∇f(Ax)=2(Ax)=2Ax∈Rm\nabla f(A x)=2(A x)=2 A x \in \mathbb{R}^{m}∇f(Ax)=2(Ax)=2Ax∈Rm
- 在第二種解釋中,我們將數量f(Ax)f(Ax)f(Ax)視為輸入變數xxx的函式。 更正式地說,設g(x)=f(Ax)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}∇f(Ax)=∇xg(x)∈Rn
在這裡,我們可以看到這兩種解釋確實不同。 一種解釋產生mmm維向量作為結果,而另一種解釋產生nnn維向量作為結果(xxx的維度是nnn,所以∇xg(x)\nabla_{x} g(x)∇xg(x)也是nnn,上面有講到)! 我們怎麼解決這個問題?
這裡,關鍵是要明確我們要區分的變數。
在第一種情況下,我們將函式fff與其引數zzz進行區分,然後替換引數AxAxAx。
在第二種情況下,我們將複合函式g(x)=f(Ax)g(x)=f(Ax)g(x)=f(Ax)直接與xxx進行微分。
我們將第一種情況表示為∇zf(Ax)\nabla zf(Ax)∇zf(Ax),第二種情況表示為∇xf(Ax)\nabla xf(Ax)∇xf(Ax)[13]。
保持符號清晰是非常重要的,以後完成課程作業時候你就會發現。
4.2 黑塞矩陣
假設f:Rn→Rf: \mathbb{R}^{n} \rightarrow \mathbb{R}f:Rn→R是一個函式,它接受Rn\mathbb{R}^{n}Rn中的向量並返回實數。那麼關於xxx的黑塞矩陣(也有翻譯作海森矩陣),寫做:∇x2f(Ax)\nabla_x ^2 f(A x)∇x2f(Ax),或者簡單地說,HHH是n×nn \times nn×n的偏導數矩陣:
∇x2f(x)∈Rn×n=[∂2f(x)∂x12∂2f(x)∂x1∂x2⋯∂2f(x)∂x1∂xn∂2f(x)∂x2∂x1∂2f(x)∂x22⋯∂2f(x)∂x2∂xn⋮⋮⋱⋮∂2f(x)∂xn∂x1∂2f(x)∂xn∂x2⋯∂2f(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=⎣⎡∂x12∂2f(x)∂x2∂x1∂2f(x)⋮∂xn∂x1∂2f(x)∂x1∂x2∂2f(x)∂x22∂2f(x)⋮∂xn∂x2∂2f(x)⋯⋯⋱⋯∂x1∂xn∂2f(x)∂x2∂xn∂2f(x)⋮∂xn2∂2f(x)⎦⎤
換句話說,∇x2f(x)∈Rn×n\nabla_{x}^{2} f(x) \in \mathbb{R}^{n \times n}∇x2f(x)∈Rn×n,其:
(∇x2f(x))ij=∂2f(x)∂xi∂xj\left(\nabla_{x}^{2} f(x)\right)_{i j}=\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{j}}(∇x2f(x))ij=∂xi∂xj∂2f(x)
注意:黑塞矩陣通常是對稱陣:
∂2f(x)∂xi∂xj=∂2f(x)∂xj∂xi\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{j}}=\frac{\partial^{2} f(x)}{\partial x_{j} \partial x_{i}}∂xi∂xj∂2f(x)=∂xj∂xi∂2f(x)
與梯度相似,只有當f(x)f(x)f(x)為實值時黑塞矩陣才有定義。
很自然地認為梯度與向量函式的一階導數的相似,而黑塞矩陣與二階導數的相似(我們使用的符號也暗示了這種關係)。 這種直覺通常是正確的,但需要記住以下幾個注意事項。
首先,對於一個變數f:R→Rf: \mathbb{R} \rightarrow \mathbb{R}f:R→R的實值函式,它的基本定義:二階導數是一階導數的導數,即:
∂2f(x)∂x2=∂∂x∂∂xf(x)\frac{\partial^{2} f(x)}{\partial x^{2}}=\frac{\partial}{\partial x} \frac{\partial}{\partial x} f(x)∂x2∂2f(x)=∂x∂∂x∂f(x)
然而,對於向量的函式,函式的梯度是一個向量,我們不能取向量的梯度,即:
∇x∇xf(x)=∇x[∂f(x)∂x1∂f(x)∂x2⋮∂f(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]∇x∇xf(x)=∇x⎣⎡∂x1∂f(x)∂x2∂f(x)⋮∂xn∂f(x)⎦⎤
上面這個表示式沒有意義。 因此,黑塞矩陣不是梯度的梯度。 然而,下面這種情況卻這幾乎是正確的:如果我們看一下梯度(∇xf(x))i=∂f(x)/∂xi\left(\nabla_{x} f(x)\right)_{i}=\partial f(x) / \partial x_{i}(∇xf(x))i=∂f(x)/∂xi的第iii個元素,並取關於於xxx的梯度我們得到:
∇x∂f(x)∂xi=[∂2f(x)∂xi∂x1∂2f(x)∂x2∂x2⋮∂f(x)∂xi∂xn]\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]∇x∂xi∂f(x)=⎣⎡∂xi∂x1∂2f(x)∂x2∂x2∂2f(x)⋮∂xi∂xn∂f(x)⎦⎤
這是黑塞矩陣第iii行(列),所以:
∇x2f(x)=[∇x(∇xf(x))1∇x(∇xf(x))2⋯∇x(∇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))1∇x(∇xf(x))2⋯∇x(∇xf(x))n]
簡單地說:我們可以說由於:∇x2f(x)=∇x(∇xf(x))T\nabla_{x}^{2} f(x)=\nabla_{x}\left(\nabla_{x} f(x)\right)^{T}∇x2f(x)=∇x(∇xf(x))T,只要我們理解,這實際上是取∇xf(x)\nabla_{x} f(x)∇xf(x)的每個元素的梯度,而不是整個向量的梯度。
最後,請注意,雖然我們可以對矩陣A∈RnA\in \mathbb{R}^{n}A∈Rn取梯度,但對於這門課,我們只考慮對向量x∈Rnx \in \mathbb{R}^{n}x∈Rn取黑塞矩陣。
這會方便很多(事實上,我們所做的任何計算都不要求我們找到關於矩陣的黑森方程),因為關於矩陣的黑塞方程就必須對矩陣所有元素求偏導數∂2f(A)/(∂Aij∂Akℓ)\partial^{2} f(A) /\left(\partial A_{i j} \partial A_{k \ell}\right)∂2f(A)/(∂Aij∂Akℓ),將其表示為矩陣相當麻煩。
4.3 二次函式和線性函式的梯度和黑塞矩陣
現在讓我們嘗試確定幾個簡單函式的梯度和黑塞矩陣。 應該注意的是,這裡給出的所有梯度都是CS229講義中給出的梯度的特殊情況。
對於x∈Rnx \in \mathbb{R}^{n}x∈Rn, 設f(x)=bTxf(x)=b^Txf(x)=bTx 的某些已知向量b∈Rnb \in \mathbb{R}^{n}b∈Rn ,則:
f(x)=∑i=1nbixif(x)=\sum_{i=1}^{n} b_{i} x_{i}f(x)=i=1∑nbixi
所以:
∂f(x)∂xk=∂∂xk∑i=1nbixi=bk\frac{\partial f(x)}{\partial x_{k}}=\frac{\partial}{\partial x_{k}} \sum_{i=1}^{n} b_{i} x_{i}=b_{k}∂xk∂f(x)=∂xk∂i=1∑nbixi=bk
由此我們可以很容易地看出∇xbTx=b\nabla_{x} b^{T} x=b∇xbTx=b。 這應該與單變數微積分中的類似情況進行比較,其中∂/(∂x)ax=a\partial /(\partial x) a x=a∂/(∂x)ax=a。
現在考慮A∈SnA\in \mathbb{S}^{n}A∈Sn的二次函式f(x)=xTAxf(x)=x^TAxf(x)=xTAx。 記住這一點:
f(x)=∑i=1n∑j=1nAijxixjf(x)=\sum_{i=1}^{n} \sum_{j=1}^{n} A_{i j} x_{i} x_{j}f(x)=i=1∑nj=1∑nAijxixj
為了取偏導數,我們將分別考慮包括xkx_kxk和x2kx_2^kx2k因子的項:
∂f(x)∂xk=∂∂xk∑i=1n∑j=1nAijxixj=∂∂xk[∑i≠k∑j≠kAijxixj+∑i≠kAikxixk+∑j≠kAkjxkxj+Akkxk2]=∑i≠kAikxi+∑j≠kAkjxj+2Akkxk=∑i=1nAikxi+∑j=1nAkjxj=2∑i=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}∂xk∂f(x)=∂xk∂i=1∑nj=1∑nAijxixj=∂xk∂⎣⎡i=k∑j=k∑Aijxixj+i=k∑Aikxixk+j=k∑Akjxkxj+Akkxk2⎦⎤=i=k∑Aikxi+j=k∑Akjxj+2Akkxk=i=1∑nAikxi+j=1∑nAkjxj=2i=1∑nAkixi
最後一個等式,是因為AAA是對稱的(我們可以安全地假設,因為它以二次形式出現)。 注意,∇xf(x)\nabla_{x} f(x)∇xf(x)的第kkk個元素是AAA和xxx的第kkk行的內積。 因此,∇xxTAx=2Ax\nabla_{x} x^{T} A x=2 A x∇xxTAx=2Ax。 同樣,這應該提醒你單變數微積分中的類似事實,即∂/(∂x)ax2=2ax\partial /(\partial x) a x^{2}=2 a x∂/(∂x)ax2=2ax。
最後,讓我們來看看二次函式f(x)=xTAxf(x)=x^TAxf(x)=xTAx黑塞矩陣(顯然,線性函式bTxb^TxbTx的黑塞矩陣為零)。在這種情況下:
∂2f(x)∂xk∂xℓ=∂∂xk[∂f(x)∂xℓ]=∂∂xk[2∑i=1nAℓixi]=2Aℓk=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}∂xk∂xℓ∂2f(x)=∂xk∂[∂xℓ∂f(x)]=∂xk∂[2i=1∑nAℓixi]=2Aℓk=2Akℓ
因此,應該很清楚∇x2xTAx=2A\nabla_{x}^2 x^{T} A x=2 A∇x2xTAx=2A,這應該是完全可以理解的(同樣類似於∂2/(∂x2)ax2=2a\partial^2 /(\partial x^2) a x^{2}=2a∂2/(∂x2)ax2=2a的單變數事實)。
簡要概括起來:
∇xbTx=b\nabla_{x} b^{T} x=b∇xbTx=b
∇xxTAx=2Ax\nabla_{x} x^{T} A x=2 A x∇xxTAx=2Ax (如果AAA是對稱陣)
∇x2xTAx=2A\nabla_{x}^2 x^{T} A x=2 A∇x2xTAx=2A (如果AAA是對稱陣)
4.4 最小二乘法
讓我們應用上一節中得到的方程來推導最小二乘方程。假設我們得到矩陣A∈Rm×nA\in \mathbb{R}^{m \times n}A∈Rm×n(為了簡單起見,我們假設AAA是滿秩)和向量b∈Rmb\in \mathbb{R}^{m}b∈Rm,從而使b∉R(A)b \notin \mathcal{R}(A)b∈/R(A)。在這種情況下,我們將無法找到向量x∈Rnx\in \mathbb{R}^{n}x∈Rn,由於Ax=bAx = bAx=b,因此我們想要找到一個向量xxx,使得AxAxAx儘可能接近 bbb,用歐幾里德範數的平方∥Ax−b∥_22\|A x-b\|\_{2}^{2}∥Ax−b∥_22來衡量。
使用公式∥x∥2=xTx\|x\|^{2}=x^Tx∥x∥2=xTx,我們可以得到:
∥Ax−b∥22=(Ax−b)T(Ax−b)=xTATAx−2bTAx+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}∥Ax−b∥22=(Ax−b)T(Ax−b)=xTATAx−2bTAx+bTb
根據xxx的梯度,並利用上一節中推導的性質:
∇x(xTATAx−2bTAx+bTb)=∇xxTATAx−∇x2bTAx+∇xbTb=2ATAx−2ATb\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(xTATAx−2bTAx+bTb)=∇xxTATAx−∇x2bTAx+∇xbTb=2ATAx−2ATb
將最後一個表示式設定為零,然後解出xxx,得到了正規方程:
x=(ATA)−1ATbx = (A^TA)^{-1}A^Tbx=(ATA)−1ATb
這和我們在課堂上得到的相同。
4.5 行列式的梯度
現在讓我們考慮一種情況,我們找到一個函式相對於矩陣的梯度,也就是說,對於A∈Rn×nA\in \mathbb{R}^{n \times n}A∈Rn×n,我們要找到∇A∣A∣\nabla_{A}|A|∇A∣A∣。回想一下我們對行列式的討論:
∣A∣=∑i=1n(−1)i+jAij∣A\i,\j∣( for any j∈1,…,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)∣A∣=i=1∑n(−1)i+jAij∣∣A\i,\j∣∣( for any j∈1,…,n)
所以:
∂∂Akℓ∣A∣=∂∂Akℓ∑i=1n(−1)i+jAij∣A\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}∂Akℓ∂∣A∣=∂Akℓ∂i=1∑n(−1)i+jAij∣∣A\i,\j∣∣=(−1)k+ℓ∣∣A\k,\ℓ∣∣=(adj(A))ℓk
從這裡可以知道,它直接從伴隨矩陣的性質得出:
∇A∣A∣=(adj(A))T=∣A∣A−T\nabla_{A}|A|=(\operatorname{adj}(A))^{T}=|A| A^{-T}∇A∣A∣=(adj(A))T=∣A∣A−T
現在我們來考慮函式f:S++n→Rf : \mathbb{S}_{++}^{n} \rightarrow \mathbb{R}f:S++n→R,f(A)=log∣A∣f(A)=\log |A|f(A)=log∣A∣。注意,我們必須將fff的域限制為正定矩陣,因為這確保了∣A∣>0|A|>0∣A∣>0,因此∣A∣|A|∣A∣的對數是實數。在這種情況下,我們可以使用鏈式法則(沒什麼奇怪的,只是單變數演算中的普通鏈式法則)來看看:
∂log∣A∣∂Aij=∂log∣A∣∂∣A∣∂∣A∣∂Aij=1∣A∣∂∣A∣∂Aij\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}}∂Aij∂log∣A∣=∂∣A∣∂log∣A∣∂Aij∂∣A∣=∣A∣1∂Aij∂∣A∣
從這一點可以明顯看出:
∇Alog∣A∣=1∣A∣∇A∣A∣=A−1\nabla_{A} \log |A|=\frac{1}{|A|} \nabla_{A}|A|=A^{-1}∇Alog∣A∣=∣A∣1∇A∣A∣=A−1
我們可以在最後一個表示式中刪除轉置,因為AAA是對稱的。注意與單值情況的相似性,其中∂/(∂x)logx=1/x\partial /(\partial x) \log x=1 / x∂/(∂x)logx=1/x。
4.6 特徵值優化
最後,我們使用矩陣演算以直接導致特徵值/特徵向量分析的方式求解優化問題。 考慮以下等式約束優化問題:
maxx∈RnxTAx subject to ∥x∥22=1\max _{x \in \mathbb{R}^{n}} x^{T} A x \quad \text { subject to }\|x\|_{2}^{2}=1x∈RnmaxxTAx subject to ∥x∥22=1
對於對稱矩陣A∈SnA\in \mathbb{S}^{n}A∈Sn。求解等式約束優化問題的標準方法是採用拉格朗日形式,一種包含等式約束的目標函式[14],在這種情況下,拉格朗日函式可由以下公式給出:
L(x,λ)=xTAx−λxTx\mathcal{L}(x, \lambda)=x^{T} A x-\lambda x^{T} xL(x,λ)=xTAx−λxTx
其中,λ\lambdaλ被稱為與等式約束關聯的拉格朗日乘子。可以確定,要使x⋆x^{\star}x⋆成為問題的最佳點,拉格朗日的梯度必須在x⋆x^\starx⋆處為零(這不是唯一的條件,但它是必需的)。也就是說,
∇xL(x,λ)=∇x(xTAx−λxTx)=2ATx−2λ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∇xL(x,λ)=∇x(xTAx−λxTx)=2ATx−2λx=0
請注意,這只是線性方程Ax=λxAx =\lambda xAx=λx。 這表明假設xTx=1x^T x = 1xTx=1,可能最大化(或最小化)xTAxx^T AxxTAx的唯一點是AAA的特徵向量。
名詞索引
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 拉格朗日
E.g., 如果你可以用矩陣或向量來寫出你所有的數學推導,那會比用標量元素來寫要好。 ︎
設A,BA,BA,B為反對稱矩陣,即有AT=−A,BT=−BA^T = -A , B^T=-BAT=−A,BT=−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)(A±B)T=AT±BT=(−A)±(−B)=−(A±B) ︎ ︎
設AAA為反對稱矩陣,BBB為對稱矩陣,即有AT=−A,BT=BA^T = -A , B^T=BAT=−A,BT=B則:
(AB−BA)T=(AB)T−(BA)T=BTAT−ATBT=−BA+AB=(AB−BA)(AB - BA)^T = (AB)^T - (BA)^T = B^TA^T - A^TB^T = -BA + AB =(AB - BA)(AB−BA)T=(AB)T−(BA)T=BTAT−ATBT=−BA+AB=(AB−BA) ︎
很容易混淆並認為非奇異意味著不可逆。 但實際上,意思正好相反! 小心! ︎
誠然,我們實際上並沒有定義我們在這裡所說的“體積”是什麼意思,但希望直覺應該足夠清楚。 當 n=2n = 2n=2 時,我們的“體積”概念對應於笛卡爾平面中 SSS 的面積。 當 n=3n = 3n=3 時,“體積”對應於我們通常的三維物體體積概念。 ︎
AijA_{ij}Aij的餘子式(餘子式其實是一個數)表示為Mij=∣A\i,\j∣M_{ij} = \left|A_{\backslash i, \backslash j}\right|Mij=∣∣A\i,\j∣∣,就是刪除第 i 行和第 j 列而產生矩陣的行列式;AijA_{ij}Aij的代數餘子式(代數餘子式也是一個數)表示為Cij=(−1)i+jMijC_{ij} = (-1)^{i+j}M_{ij}Cij=(−1)i+jMij;AAA的餘子矩陣(代數餘子式矩陣,記為 cof)是一個nnn階矩陣CCC,使得其第iii行第jjj列的元素是AAA關於第iii行第jjj列的代數餘子式。則伴隨矩陣的定義如下:
A∗=adj(A)=CT∈Rn×n,(adj(A))ij=(−1)i+j∣A\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}A∗=adj(A)=CT∈Rn×n,(adj(A))ij=(−1)i+j∣∣A\j,\i∣∣=Cji
伴隨矩陣的一些性質(這裡用A∗A^*A∗表示adj(A)\operatorname{adj}(A)adj(A)):
- AAA可逆當且僅當A∗A^*A∗可逆
- AAA可逆,則A∗=∣A∣A−1A^* = |A|A^{-1}A∗=∣A∣A−1
- ∣A∗∣=∣A∣n−1|A^*|=|A|^{n-1}∣A∗∣=∣A∣n−1
- (kA)∗=kn−1A∗(kA)^*=k^{n-1}A^*(kA)∗=kn−1A∗
- AAA可逆,則(A−1)∗=(A∗)−1(A^{-1})^* = (A^*)^{-1}(A−1)∗=(A∗)−1
- (AT)∗=(A∗)T(A^T)^* = (A^*)^T(AT)∗=(A∗)T
- (AB)∗=B∗A∗(AB)^* = B^*A^*(AB)∗=B∗A∗
- rank(A∗)=n,rank(A)=nrank(A∗)=1,rank(A)=n−1rank(A∗)=0,rank(A)<n−1\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-1rank(A∗)=n,rank(A)=nrank(A∗)=1,rank(A)=n−1rank(A∗)=0,rank(A)<n−1
請注意,λ\lambdaλ 和 xxx 的元素實際上在 CCC中,即複數集,而不僅僅是實數; 我們很快就會看到為什麼這是必要的。 現在不要擔心這個問題,你可以像實向量一樣思考復向量。 ︎
在數學上,我們有∀i,Aui=λiui,∥ui∥2=1,and ∀j≠i,uiTuj=0\forall{i},Au_i = \lambda_iu_i, \|u_i\|_2 = 1, \text{and } \forall{j} \neq i, u_i^Tu_j = 0∀i,Aui=λiui,∥ui∥2=1,and ∀j=i,uiTuj=0。此外,我們注意到任意矩陣 A(而這裡我們主要描述對稱矩陣)的特徵向量,並不是都滿足彼此正交,因為特徵值可以是重複的,特徵向量也是如此。 ︎
這裡為了符號的簡單性,我們偏離了前幾節中矩陣列的符號約定(本來是應該用uiu^iui表示的,這裡我們用uiu_iui來表示)。 ︎
注意x^≠0⇔x≠0\hat x \ne 0 \hArr x \ne 0x^=0⇔x=0 ︎
注意x=Ux^x=U \hat xx=Ux^,因此構造x^\hat xx^給出來xxx的隱式構造 ︎
我們必須接受這種符號的一個缺點是,在第一種情況下,∇zf(Ax)\nabla zf(Ax)∇zf(Ax) 似乎我們正在對一個變數進行微分,而這個變數甚至沒有出現在被微分的表示式中! 出於這個原因,第一種情況通常寫為 ∇f(Ax)\nabla f(Ax)∇f(Ax),並且可以理解我們對 fff 的引數進行微分這一事實。 然而,第二種情況總是寫成 ∇xf(Ax)\nabla xf(Ax)∇xf(Ax)。 ︎
如果您以前沒有見過拉格朗日,請不要擔心,因為我們將在後面的 CS229 中更詳細地介紹它們。 ︎
翻譯不易,https://github.com/openjw/open/blob/master/MachineLearning/cs229/cs229-linalg.md