第二章 機器學(xué)習(xí)中的線性代數(shù)知識
線性代數(shù)作為數(shù)學(xué)中的一個重要的分支,廣發(fā)應(yīng)用在科學(xué)與工程中。掌握好線性代數(shù)對于理解和從事機器學(xué)習(xí)算法相關(guān)的工作是很有必要的,尤其是對于深度學(xué)習(xí)而言。因此,在開始介紹深度學(xué)習(xí)之前,先集中探討一些必備的線性代數(shù)知識。
2.1 標(biāo)量,向量,矩陣和張量
標(biāo)量(scalar):一個標(biāo)量就是一個單獨的數(shù)。用斜體表示標(biāo)量,如 $s \in R$.
向量(vector):一個向量是一列數(shù),我們用粗體的小寫名稱表示向量。比如 $\bf x$,將向量$\bf x$ 寫成方括號包含的縱柱:
$$
{\bf x}= \begin {bmatrix} x_1\x_2\ \vdots \x_n\ \end{bmatrix}
$$
矩陣(matrix):矩陣是二維數(shù)組,我們通常賦予矩陣粗體大寫變量名稱,比如$\bf A?$ 。如果一個矩陣高度是$m?$,寬度是$n?$,那么說$\bf A\in \bf R ^{m \times n}?$ 。一個矩陣可以表示如下:
$$
{\bf A}= \begin{bmatrix} x_{11} &x_{12}\ x_{21} & x_{22}\ \end{bmatrix}
$$
張量(tensor):某些情況下,我們會討論不止維坐標(biāo)的數(shù)組。如果一組數(shù)組中的元素分布在若干維坐標(biāo)的規(guī)則網(wǎng)絡(luò)中,就將其稱為張量。用$\bf A?$ 表示,如張量中坐標(biāo)為$(i,j,k)?$的元素記作${\bf A}_{i,j,k}?$。
轉(zhuǎn)置(transpose):矩陣的轉(zhuǎn)置是以對角線為軸的鏡像,這條從左上角到右下角的對角線稱為主對角線(main diagonal)。將矩陣$\bf A$的轉(zhuǎn)置表示為${\bf A^\top}$。定義如下:
$$
({\bf A^\top}){i,j}=\bf A{j,i}
$$
$$
{\bf A} = \begin{bmatrix} x_{11} &x_{12}\ x_{21} & x_{22}\ x_{31} & x_{32} \end{bmatrix} \implies {\bf A^\top}= \begin{bmatrix} x_{11} &x_{21}&x_{31} \ x_{21} & x_{22}& x_{32} \end{bmatrix}
$$
2.2 矩陣和向量相乘
矩陣乘法是矩陣運算中最重要的操作之一。兩個矩陣$\bf A$和$\bf B$ 的矩陣乘積(matrix product)是第三個矩陣$\bf C$ 。矩陣乘法中$\bf A$ 的列必須和 $\bf B$ 的行數(shù)相同。即如果矩陣 $\bf A$ 的形狀是 $m \times n$ ,矩陣 $\bf B$ 的形狀是 $n \times p$ ,那么矩陣 $\bf C$ 的形狀就是 $m \times p$ 。即
$$
\bf C = \bf A \times \bf B
$$
具體的地,其中的乘法操作定義為
$$
{\bf C}{i,j} = \sum_k {\bf A}{i,k} {\bf B}_{k,j}
$$
矩陣乘積服從分配律
$$
\bf A(B + C) = \bf AB+AC
$$
矩陣乘積也服從結(jié)合律
$$
\bf A(BC) = (AB)C
$$
注意:矩陣乘積沒有交換律
點積(dot product)兩個相同維數(shù)的向量$\bf x$ 和 $\bf y$ 的點積可看作是矩陣乘積 $\bf x\top y$
矩陣乘積的轉(zhuǎn)置
$$
(\bf AB)\top = B \top A\top
$$
利用向量的乘積是標(biāo)量,標(biāo)量的轉(zhuǎn)置是自身的事實,我們可以證明(10)式:
$$
\bf x \top y = (x\top y)\top = y\top x
$$
線性方程組
$$
\bf Ax = b
$$
2.3 單位矩陣和逆矩陣
線性代數(shù)中提供了 矩陣逆(matrix inverse) 的工具,使得我們能夠解析地求解(11)中的 $\bf A$.
單位矩陣(identity matrix):任意向量與單位矩陣相乘都不會改變。我們將保持 $n$ 維向量不變地單位矩陣記作為 $\bf I_n$ ,形式上 $\bf I_n \in \Bbb R ^{n\times n}$ ,
$$
\forall \bf x \in \Bbb R^n, \bf I_nx=x
$$
矩陣 $\bf A$ 的矩陣逆被記作 $\bf A^{-1}$ ,被定義為如下形式:
$$
\bf A{-1}A=AA{-1}=I_n
$$
(11)式方程組的求解:
$$
\bf Ax = b \
A^{-1}Ax = A^{-1}b \
I_n x=A^{-1}b \
x = A^{-1}b
$$
方程組的解取決于能否找到一個逆矩陣 $\bf A^{-1}$ 。接下來討論逆矩陣 $\bf A^{-1}$ 的存在的條件。
2.4 線性相關(guān)和生成子空間
如果逆矩陣 $\bf A^{-1}$ 存在,那么(11)式肯定對于每一個向量 $\bf b$ 恰好存在一個解。分析方程有多少個解,我們可以看成是 $\bf A$ 的列向量的 線性組合(linear combination)。
$$
{\bf Ax} = \sum_i x_i {\bf A}_{:,i}
$$
形式上,某個集合中向量的線性組合,是指每個向量乘以對應(yīng)系數(shù)之后的和,即
$$
\sum_i c_i {\bf v}^{(i)}
$$
一組向量的生成空間(span) 是原始向量線性組合后所能抵達(dá)的點的集合。
線性無關(guān)(linearly independent): 如果一組向量中的任意一個向量都不能表示成其他向量的線性組合,那么這組向量被稱之為線性無關(guān)。
要想使矩陣可逆,首先必須矩陣是一個方陣(square),即 $m=n$ ,其次,所有的列向量都是線性無關(guān)的。
一個列向量線性相關(guān)的方陣被稱為 奇異的(singular)。
2.5 范數(shù)
有時候我們需要衡量一個向量的大小,在機器學(xué)習(xí)中,我們使用稱為范數(shù)(norm)的函數(shù)來衡量矩陣大小,形式上, $L^p$ 范數(shù)如下:
$$
||{\bf x}||_p = (\sum_i |x_i|p)\frac{1}{2}
$$
其中 $p \in \Bbb R, p \geq 1?$。
范數(shù)是將向量映射到非負(fù)值的函數(shù)。直觀上來說,向量 $\bf x$ 的范數(shù)就是衡量從原點到 $\bf x$ 的舉例。更嚴(yán)格來說,范數(shù)滿足下列性質(zhì)的函數(shù):
- ${\bf f(x)}=0 \implies {\bf x} =0$
- ${\bf f(x+y)} \leq {\bf f(x)} + {\bf f(y)}$
- $\forall \alpha \in \Bbb R, \bf f(\alpha {\bf x}) = |\alpha|f({\bf x})$
當(dāng) $p=2$ 時, $L^2$ 被稱作 歐幾里得范數(shù)(Euclidean norm)。它表示從原點出發(fā)到向量 $\bf x$ 確定的點的歐幾里得距離。平方 $L^2$ 范數(shù)常被用來衡量向量的大小,因為它便于求導(dǎo)計算(如對向量中每個元素的導(dǎo)數(shù)只取決于對應(yīng)的元素,但是它也有缺陷,即它在原點附近增長得十分緩慢),可以簡單用點積 $ \bf x \top x$ 來計算。
max 范數(shù)(max norm):這個范數(shù)表示向量中具有最大幅度得元素的絕對值,用 $L^\infty$ 范數(shù)表示,期形式為:
$$
||{\bf x}||\infty = \sqrt {\sum{(i,j)} {\bf A}^ 2_{i,j}}
$$
兩個向量的點積(dot product)也可以用范數(shù)來表示。具體地,
$$
\bf x \top y = ||x||_2||y||_2 \cos \theta
$$
2.6 特殊類型的矩陣和向量
對角矩陣(diagonal matrix) 只在主對角線上含有非零元素,其它位置都是零。矩陣 $\bf D$ 是對角矩陣,當(dāng)且僅當(dāng) $\forall i \neq j, {\bf D}_{i,j} = 0$ ,用 $diag(\bf v)$ 表示一個對角元素由向量 $\bf v$ 中元素給定的對角矩陣。
對稱(symmetric) 矩陣是任意轉(zhuǎn)置和自己相等的矩陣:
$$
\bf A = A \top
$$
即在矩陣 $\bf A$ 中,有 ${\bf A}{i,j}={\bf A}{j,i}$ 。
單位向量(unit vector) 是具有單位范數(shù)(unit norm) 的向量:
$$
||{\bf x}||_2 = 1
$$
如果 ${\bf x \top y } = 0$ ,那么向量 $\bf x$ 和向量 $\bf y$ 互相正交(orthogonal)。如果兩個向量都有非零范數(shù),那么表示這兩個向量之間的夾角是90 度。在$\Bbb R^n$ 中,至多有$n$ 個范數(shù)非零向量互相正交。如果這些向量不僅互相正交,并且范數(shù)都為1,那么我們稱它們是標(biāo)準(zhǔn)正交(orthonormal) 。
正交矩陣(orthonormal matrix) 是指行向量是標(biāo)準(zhǔn)正交的,列向量是標(biāo)準(zhǔn)正交的方陣:
$$
\bf A \top A = A A\top = I
$$
這意味著
$$
\bf A^{-1} = A\top
$$
所以正交矩陣受到關(guān)注是因為求逆計算代價小。需要注意正交矩陣的定義。反直覺地,正交矩陣的行向量不僅是正交的,還是標(biāo)準(zhǔn)正交的。對于行向量或列向量互相正交但不是標(biāo)準(zhǔn)正交的矩陣沒有對應(yīng)的專有術(shù)語。