深度學習數學基礎

數學基礎

本文總結了深度學習中涉及的有關線性代數、微分和概率的基礎知識。

線性代數

下面分別概括了向量、矩陣、運算、範數、特徵向量和特徵值的概念。

向量

本文中的向量指的是列向量。一個nn維向量x\boldsymbol{x}的表達式可寫成

x=[x1x2xn], \boldsymbol{x} = \begin{bmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{bmatrix},

其中x1,,xnx_1, \ldots, x_n是向量的元素。我們將各元素均爲實數的nn維向量x\boldsymbol{x}記作xRn\boldsymbol{x} \in \mathbb{R}^{n}xRn×1\boldsymbol{x} \in \mathbb{R}^{n \times 1}

矩陣

一個mmnn列矩陣的表達式可寫成

X=[x11x12x1nx21x22x2nxm1xm2xmn], \boldsymbol{X} = \begin{bmatrix} x_{11} & x_{12} & \dots & x_{1n} \\ x_{21} & x_{22} & \dots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \dots & x_{mn} \end{bmatrix},

其中xijx_{ij}是矩陣X\boldsymbol{X}中第ii行第jj列的元素(1im,1jn1 \leq i \leq m, 1 \leq j \leq n)。我們將各元素均爲實數的mmnn列矩陣X\boldsymbol{X}記作XRm×n\boldsymbol{X} \in \mathbb{R}^{m \times n}。不難發現,向量是特殊的矩陣。

運算

nn維向量a\boldsymbol{a}中的元素爲a1,,ana_1, \ldots, a_nnn維向量b\boldsymbol{b}中的元素爲b1,,bnb_1, \ldots, b_n。向量a\boldsymbol{a}b\boldsymbol{b}的點乘(內積)是一個標量:

ab=a1b1++anbn.\boldsymbol{a} \cdot \boldsymbol{b} = a_1 b_1 + \ldots + a_n b_n.

設兩個mmnn列矩陣

A=[a11a12a1na21a22a2nam1am2amn],B=[b11b12b1nb21b22b2nbm1bm2bmn]. \boldsymbol{A} = \begin{bmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \dots & a_{mn} \end{bmatrix},\quad \boldsymbol{B} = \begin{bmatrix} b_{11} & b_{12} & \dots & b_{1n} \\ b_{21} & b_{22} & \dots & b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ b_{m1} & b_{m2} & \dots & b_{mn} \end{bmatrix}.

矩陣A\boldsymbol{A}的轉置是一個nnmm列矩陣,它的每一行其實是原矩陣的每一列:
A=[a11a21am1a12a22am2a1na2namn]. \boldsymbol{A}^\top = \begin{bmatrix} a_{11} & a_{21} & \dots & a_{m1} \\ a_{12} & a_{22} & \dots & a_{m2} \\ \vdots & \vdots & \ddots & \vdots \\ a_{1n} & a_{2n} & \dots & a_{mn} \end{bmatrix}.

兩個相同形狀的矩陣的加法是將兩個矩陣按元素做加法:

A+B=[a11+b11a12+b12a1n+b1na21+b21a22+b22a2n+b2nam1+bm1am2+bm2amn+bmn]. \boldsymbol{A} + \boldsymbol{B} = \begin{bmatrix} a_{11} + b_{11} & a_{12} + b_{12} & \dots & a_{1n} + b_{1n} \\ a_{21} + b_{21} & a_{22} + b_{22} & \dots & a_{2n} + b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} + b_{m1} & a_{m2} + b_{m2} & \dots & a_{mn} + b_{mn} \end{bmatrix}.

我們使用符號\odot表示兩個矩陣按元素做乘法的運算:

AB=[a11b11a12b12a1nb1na21b21a22b22a2nb2nam1bm1am2bm2amnbmn]. \boldsymbol{A} \odot \boldsymbol{B} = \begin{bmatrix} a_{11} b_{11} & a_{12} b_{12} & \dots & a_{1n} b_{1n} \\ a_{21} b_{21} & a_{22} b_{22} & \dots & a_{2n} b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} b_{m1} & a_{m2} b_{m2} & \dots & a_{mn} b_{mn} \end{bmatrix}.

定義一個標量kk。標量與矩陣的乘法也是按元素做乘法的運算:

kA=[ka11ka12ka1nka21ka22ka2nkam1kam2kamn]. k\boldsymbol{A} = \begin{bmatrix} ka_{11} & ka_{12} & \dots & ka_{1n} \\ ka_{21} & ka_{22} & \dots & ka_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ ka_{m1} & ka_{m2} & \dots & ka_{mn} \end{bmatrix}.

其他諸如標量與矩陣按元素相加、相除等運算與上式中的相乘運算類似。矩陣按元素開根號、取對數等運算也就是對矩陣每個元素開根號、取對數等,並得到和原矩陣形狀相同的矩陣。

矩陣乘法和按元素的乘法不同。設A\boldsymbol{A}mmpp列的矩陣,B\boldsymbol{B}ppnn列的矩陣。兩個矩陣相乘的結果

AB=[a11a12a1pa21a22a2pai1ai2aipam1am2amp][b11b12b1jb1nb21b22b2jb2nbp1bp2bpjbpn] \boldsymbol{A} \boldsymbol{B} = \begin{bmatrix} a_{11} & a_{12} & \dots & a_{1p} \\ a_{21} & a_{22} & \dots & a_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i1} & a_{i2} & \dots & a_{ip} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \dots & a_{mp} \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} & \dots & b_{1j} & \dots & b_{1n} \\ b_{21} & b_{22} & \dots & b_{2j} & \dots & b_{2n} \\ \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ b_{p1} & b_{p2} & \dots & b_{pj} & \dots & b_{pn} \end{bmatrix}

是一個mmnn列的矩陣,其中第ii行第jj列(1im,1jn1 \leq i \leq m, 1 \leq j \leq n)的元素爲

ai1b1j+ai2b2j++aipbpj=k=1paikbkj.a_{i1}b_{1j} + a_{i2}b_{2j} + \ldots + a_{ip}b_{pj} = \sum_{k=1}^p a_{ik}b_{kj}.

範數

nn維向量x\boldsymbol{x}中的元素爲x1,,xnx_1, \ldots, x_n。向量x\boldsymbol{x}LpL_p範數爲

xp=(i=1nxip)1/p.\|\boldsymbol{x}\|_p = \left(\sum_{i=1}^n \left|x_i \right|^p \right)^{1/p}.

例如,x\boldsymbol{x}L1L_1範數是該向量元素絕對值之和:

x1=i=1nxi.\|\boldsymbol{x}\|_1 = \sum_{i=1}^n \left|x_i \right|.

x\boldsymbol{x}L2L_2範數是該向量元素平方和的平方根:

x2=i=1nxi2.\|\boldsymbol{x}\|_2 = \sqrt{\sum_{i=1}^n x_i^2}.

我們通常用x\|\boldsymbol{x}\|指代x2\|\boldsymbol{x}\|_2

X\boldsymbol{X}是一個mmnn列矩陣。矩陣X\boldsymbol{X}的Frobenius範數爲該矩陣元素平方和的平方根:

XF=i=1mj=1nxij2,\|\boldsymbol{X}\|_F = \sqrt{\sum_{i=1}^m \sum_{j=1}^n x_{ij}^2},

其中xijx_{ij}爲矩陣X\boldsymbol{X}在第ii行第jj列的元素。

特徵向量和特徵值

對於一個nnnn列的矩陣A\boldsymbol{A},假設有標量λ\lambda和非零的nn維向量v\boldsymbol{v}使

Av=λv,\boldsymbol{A} \boldsymbol{v} = \lambda \boldsymbol{v},

那麼v\boldsymbol{v}是矩陣A\boldsymbol{A}的一個特徵向量,標量λ\lambdav\boldsymbol{v}對應的特徵值。

微分

我們在這裏簡要介紹微分的一些基本概念和演算。

導數和微分

假設函數f:RRf: \mathbb{R} \rightarrow \mathbb{R}的輸入和輸出都是標量。函數ff的導數

f(x)=limh0f(x+h)f(x)h,f'(x) = \lim_{h \rightarrow 0} \frac{f(x+h) - f(x)}{h},

且假定該極限存在。給定y=f(x)y = f(x),其中xxyy分別是函數ff的自變量和因變量。以下有關導數和微分的表達式等價:

f(x)=y=dydx=dfdx=ddxf(x)=Df(x)=Dxf(x),f'(x) = y' = \frac{\text{d}y}{\text{d}x} = \frac{\text{d}f}{\text{d}x} = \frac{\text{d}}{\text{d}x} f(x) = \text{D}f(x) = \text{D}_x f(x),

其中符號D\text{D}d/dx\text{d}/\text{d}x也叫微分運算符。常見的微分演算有DC=0\text{D}C = 0CC爲常數)、Dxn=nxn1\text{D}x^n = nx^{n-1}nn爲常數)、Dex=ex\text{D}e^x = e^xDln(x)=1/x\text{D}\ln(x) = 1/x等。

如果函數ffgg都可導,設CC爲常數,那麼

ddx[Cf(x)]=Cddxf(x),ddx[f(x)+g(x)]=ddxf(x)+ddxg(x),ddx[f(x)g(x)]=f(x)ddx[g(x)]+g(x)ddx[f(x)],ddx[f(x)g(x)]=g(x)ddx[f(x)]f(x)ddx[g(x)][g(x)]2. \begin{aligned} \frac{\text{d}}{\text{d}x} [Cf(x)] &= C \frac{\text{d}}{\text{d}x} f(x),\\ \frac{\text{d}}{\text{d}x} [f(x) + g(x)] &= \frac{\text{d}}{\text{d}x} f(x) + \frac{\text{d}}{\text{d}x} g(x),\\ \frac{\text{d}}{\text{d}x} [f(x)g(x)] &= f(x) \frac{\text{d}}{\text{d}x} [g(x)] + g(x) \frac{\text{d}}{\text{d}x} [f(x)],\\ \frac{\text{d}}{\text{d}x} \left[\frac{f(x)}{g(x)}\right] &= \frac{g(x) \frac{\text{d}}{\text{d}x} [f(x)] - f(x) \frac{\text{d}}{\text{d}x} [g(x)]}{[g(x)]^2}. \end{aligned}

如果y=f(u)y=f(u)u=g(x)u=g(x)都是可導函數,依據鏈式法則,

dydx=dydududx.\frac{\text{d}y}{\text{d}x} = \frac{\text{d}y}{\text{d}u} \frac{\text{d}u}{\text{d}x}.

泰勒展開

函數ff的泰勒展開式是

f(x)=n=0f(n)(a)n!(xa)n,f(x) = \sum_{n=0}^\infty \frac{f^{(n)}(a)}{n!} (x-a)^n,

其中f(n)f^{(n)}爲函數ffnn階導數(求nn次導數),n!n!nn的階乘。假設ϵ\epsilon是一個足夠小的數,如果將上式中xxaa分別替換成x+ϵx+\epsilonxx,可以得到

f(x+ϵ)f(x)+f(x)ϵ+O(ϵ2).f(x + \epsilon) \approx f(x) + f'(x) \epsilon + \mathcal{O}(\epsilon^2).

由於ϵ\epsilon足夠小,上式也可以簡化成

f(x+ϵ)f(x)+f(x)ϵ.f(x + \epsilon) \approx f(x) + f'(x) \epsilon.

偏導數

uu爲一個有nn個自變量的函數,u=f(x1,x2,,xn)u = f(x_1, x_2, \ldots, x_n),它有關第ii個變量xix_i的偏導數爲

uxi=limh0f(x1,,xi1,xi+h,xi+1,,xn)f(x1,,xi,,xn)h. \frac{\partial u}{\partial x_i} = \lim_{h \rightarrow 0} \frac{f(x_1, \ldots, x_{i-1}, x_i+h, x_{i+1}, \ldots, x_n) - f(x_1, \ldots, x_i, \ldots, x_n)}{h}.

以下有關偏導數的表達式等價:

uxi=fxi=fxi=fi=Dif=Dxif.\frac{\partial u}{\partial x_i} = \frac{\partial f}{\partial x_i} = f_{x_i} = f_i = \text{D}_i f = \text{D}_{x_i} f.

爲了計算u/xi\partial u/\partial x_i,只需將x1,,xi1,xi+1,,xnx_1, \ldots, x_{i-1}, x_{i+1}, \ldots, x_n視爲常數並求uu有關xix_i的導數。

梯度

假設函數f:RnRf: \mathbb{R}^n \rightarrow \mathbb{R}的輸入是一個nn維向量x=[x1,x2,,xn]\boldsymbol{x} = [x_1, x_2, \ldots, x_n]^\top,輸出是標量。函數f(x)f(\boldsymbol{x})有關x\boldsymbol{x}的梯度是一個由nn個偏導數組成的向量:

xf(x)=[f(x)x1,f(x)x2,,f(x)xn].\nabla_{\boldsymbol{x}} f(\boldsymbol{x}) = \bigg[\frac{\partial f(\boldsymbol{x})}{\partial x_1}, \frac{\partial f(\boldsymbol{x})}{\partial x_2}, \ldots, \frac{\partial f(\boldsymbol{x})}{\partial x_n}\bigg]^\top.

爲表示簡潔,我們有時用f(x)\nabla f(\boldsymbol{x})代替xf(x)\nabla_{\boldsymbol{x}} f(\boldsymbol{x})

假設x\boldsymbol{x}是一個向量,常見的梯度演算包括

xAx=A,xxA=A,xxAx=(A+A)x,xx2=xxx=2x. \begin{aligned} \nabla_{\boldsymbol{x}} \boldsymbol{A}^\top \boldsymbol{x} &= \boldsymbol{A}, \\ \nabla_{\boldsymbol{x}} \boldsymbol{x}^\top \boldsymbol{A} &= \boldsymbol{A}, \\ \nabla_{\boldsymbol{x}} \boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x} &= (\boldsymbol{A} + \boldsymbol{A}^\top)\boldsymbol{x},\\ \nabla_{\boldsymbol{x}} \|\boldsymbol{x} \|^2 &= \nabla_{\boldsymbol{x}} \boldsymbol{x}^\top \boldsymbol{x} = 2\boldsymbol{x}. \end{aligned}

類似地,假設X\boldsymbol{X}是一個矩陣,那麼
XXF2=2X.\nabla_{\boldsymbol{X}} \|\boldsymbol{X} \|_F^2 = 2\boldsymbol{X}.

海森矩陣

假設函數f:RnRf: \mathbb{R}^n \rightarrow \mathbb{R}的輸入是一個nn維向量x=[x1,x2,,xn]\boldsymbol{x} = [x_1, x_2, \ldots, x_n]^\top,輸出是標量。假定函數ff所有的二階偏導數都存在,ff的海森矩陣H\boldsymbol{H}是一個nnnn列的矩陣:

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2], \boldsymbol{H} = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \dots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \dots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & \dots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix},

其中二階偏導數

2fxixj=xj(fxi).\frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial }{\partial x_j} \left(\frac{\partial f}{ \partial x_i}\right).

概率

最後,我們簡要介紹條件概率、期望和均勻分佈。

條件概率

假設事件AA和事件BB的概率分別爲P(A)P(A)P(B)P(B),兩個事件同時發生的概率記作P(AB)P(A \cap B)P(A,B)P(A, B)。給定事件BB,事件AA的條件概率

P(AB)=P(AB)P(B).P(A \mid B) = \frac{P(A \cap B)}{P(B)}.

也就是說,

P(AB)=P(B)P(AB)=P(A)P(BA).P(A \cap B) = P(B) P(A \mid B) = P(A) P(B \mid A).

當滿足

P(AB)=P(A)P(B)P(A \cap B) = P(A) P(B)

時,事件AA和事件BB相互獨立。

期望

離散的隨機變量XX的期望(或平均值)爲

E(X)=xxP(X=x).E(X) = \sum_{x} x P(X = x).

均勻分佈

假設隨機變量XX服從[a,b][a, b]上的均勻分佈,即XU(a,b)X \sim U(a, b)。隨機變量XXaabb之間任意一個數的概率相等。

小結

  • 本節總結了本書中涉及的有關線性代數、微分和概率的基礎知識。

練習

  • 求函數f(x)=3x12+5ex2f(\boldsymbol{x}) = 3x_1^2 + 5e^{x_2}的梯度。
發佈了78 篇原創文章 · 獲贊 124 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章