數學基礎
本文總結了深度學習中涉及的有關線性代數、微分和概率的基礎知識。
線性代數
下面分別概括了向量、矩陣、運算、範數、特徵向量和特徵值的概念。
向量
本文中的向量指的是列向量。一個n維向量x的表達式可寫成
x=⎣⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎤,
其中x1,…,xn是向量的元素。我們將各元素均爲實數的n維向量x記作x∈Rn或x∈Rn×1。
矩陣
一個m行n列矩陣的表達式可寫成
X=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2……⋱…x1nx2n⋮xmn⎦⎥⎥⎥⎤,
其中xij是矩陣X中第i行第j列的元素(1≤i≤m,1≤j≤n)。我們將各元素均爲實數的m行n列矩陣X記作X∈Rm×n。不難發現,向量是特殊的矩陣。
運算
設n維向量a中的元素爲a1,…,an,n維向量b中的元素爲b1,…,bn。向量a與b的點乘(內積)是一個標量:
a⋅b=a1b1+…+anbn.
設兩個m行n列矩陣
A=⎣⎢⎢⎢⎡a11a21⋮am1a12a22⋮am2……⋱…a1na2n⋮amn⎦⎥⎥⎥⎤,B=⎣⎢⎢⎢⎡b11b21⋮bm1b12b22⋮bm2……⋱…b1nb2n⋮bmn⎦⎥⎥⎥⎤.
矩陣A的轉置是一個n行m列矩陣,它的每一行其實是原矩陣的每一列:
A⊤=⎣⎢⎢⎢⎡a11a12⋮a1na21a22⋮a2n……⋱…am1am2⋮amn⎦⎥⎥⎥⎤.
兩個相同形狀的矩陣的加法是將兩個矩陣按元素做加法:
A+B=⎣⎢⎢⎢⎡a11+b11a21+b21⋮am1+bm1a12+b12a22+b22⋮am2+bm2……⋱…a1n+b1na2n+b2n⋮amn+bmn⎦⎥⎥⎥⎤.
我們使用符號⊙表示兩個矩陣按元素做乘法的運算:
A⊙B=⎣⎢⎢⎢⎡a11b11a21b21⋮am1bm1a12b12a22b22⋮am2bm2……⋱…a1nb1na2nb2n⋮amnbmn⎦⎥⎥⎥⎤.
定義一個標量k。標量與矩陣的乘法也是按元素做乘法的運算:
kA=⎣⎢⎢⎢⎡ka11ka21⋮kam1ka12ka22⋮kam2……⋱…ka1nka2n⋮kamn⎦⎥⎥⎥⎤.
其他諸如標量與矩陣按元素相加、相除等運算與上式中的相乘運算類似。矩陣按元素開根號、取對數等運算也就是對矩陣每個元素開根號、取對數等,並得到和原矩陣形狀相同的矩陣。
矩陣乘法和按元素的乘法不同。設A爲m行p列的矩陣,B爲p行n列的矩陣。兩個矩陣相乘的結果
AB=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡a11a21⋮ai1⋮am1a12a22⋮ai2⋮am2……⋱…⋱…a1pa2p⋮aip⋮amp⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎡b11b21⋮bp1b12b22⋮bp2……⋱…b1jb2j⋮bpj……⋱…b1nb2n⋮bpn⎦⎥⎥⎥⎤
是一個m行n列的矩陣,其中第i行第j列(1≤i≤m,1≤j≤n)的元素爲
ai1b1j+ai2b2j+…+aipbpj=k=1∑paikbkj.
範數
設n維向量x中的元素爲x1,…,xn。向量x的Lp範數爲
∥x∥p=(i=1∑n∣xi∣p)1/p.
例如,x的L1範數是該向量元素絕對值之和:
∥x∥1=i=1∑n∣xi∣.
而x的L2範數是該向量元素平方和的平方根:
∥x∥2=i=1∑nxi2.
我們通常用∥x∥指代∥x∥2。
設X是一個m行n列矩陣。矩陣X的Frobenius範數爲該矩陣元素平方和的平方根:
∥X∥F=i=1∑mj=1∑nxij2,
其中xij爲矩陣X在第i行第j列的元素。
特徵向量和特徵值
對於一個n行n列的矩陣A,假設有標量λ和非零的n維向量v使
Av=λv,
那麼v是矩陣A的一個特徵向量,標量λ是v對應的特徵值。
微分
我們在這裏簡要介紹微分的一些基本概念和演算。
導數和微分
假設函數f:R→R的輸入和輸出都是標量。函數f的導數
f′(x)=h→0limhf(x+h)−f(x),
且假定該極限存在。給定y=f(x),其中x和y分別是函數f的自變量和因變量。以下有關導數和微分的表達式等價:
f′(x)=y′=dxdy=dxdf=dxdf(x)=Df(x)=Dxf(x),
其中符號D和d/dx也叫微分運算符。常見的微分演算有DC=0(C爲常數)、Dxn=nxn−1(n爲常數)、Dex=ex、Dln(x)=1/x等。
如果函數f和g都可導,設C爲常數,那麼
dxd[Cf(x)]dxd[f(x)+g(x)]dxd[f(x)g(x)]dxd[g(x)f(x)]=Cdxdf(x),=dxdf(x)+dxdg(x),=f(x)dxd[g(x)]+g(x)dxd[f(x)],=[g(x)]2g(x)dxd[f(x)]−f(x)dxd[g(x)].
如果y=f(u)和u=g(x)都是可導函數,依據鏈式法則,
dxdy=dudydxdu.
泰勒展開
函數f的泰勒展開式是
f(x)=n=0∑∞n!f(n)(a)(x−a)n,
其中f(n)爲函數f的n階導數(求n次導數),n!爲n的階乘。假設ϵ是一個足夠小的數,如果將上式中x和a分別替換成x+ϵ和x,可以得到
f(x+ϵ)≈f(x)+f′(x)ϵ+O(ϵ2).
由於ϵ足夠小,上式也可以簡化成
f(x+ϵ)≈f(x)+f′(x)ϵ.
偏導數
設u爲一個有n個自變量的函數,u=f(x1,x2,…,xn),它有關第i個變量xi的偏導數爲
∂xi∂u=h→0limhf(x1,…,xi−1,xi+h,xi+1,…,xn)−f(x1,…,xi,…,xn).
以下有關偏導數的表達式等價:
∂xi∂u=∂xi∂f=fxi=fi=Dif=Dxif.
爲了計算∂u/∂xi,只需將x1,…,xi−1,xi+1,…,xn視爲常數並求u有關xi的導數。
梯度
假設函數f:Rn→R的輸入是一個n維向量x=[x1,x2,…,xn]⊤,輸出是標量。函數f(x)有關x的梯度是一個由n個偏導數組成的向量:
∇xf(x)=[∂x1∂f(x),∂x2∂f(x),…,∂xn∂f(x)]⊤.
爲表示簡潔,我們有時用∇f(x)代替∇xf(x)。
假設x是一個向量,常見的梯度演算包括
∇xA⊤x∇xx⊤A∇xx⊤Ax∇x∥x∥2=A,=A,=(A+A⊤)x,=∇xx⊤x=2x.
類似地,假設X是一個矩陣,那麼
∇X∥X∥F2=2X.
海森矩陣
假設函數f:Rn→R的輸入是一個n維向量x=[x1,x2,…,xn]⊤,輸出是標量。假定函數f所有的二階偏導數都存在,f的海森矩陣H是一個n行n列的矩陣:
H=⎣⎢⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f……⋱…∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎥⎤,
其中二階偏導數
∂xi∂xj∂2f=∂xj∂(∂xi∂f).
概率
最後,我們簡要介紹條件概率、期望和均勻分佈。
條件概率
假設事件A和事件B的概率分別爲P(A)和P(B),兩個事件同時發生的概率記作P(A∩B)或P(A,B)。給定事件B,事件A的條件概率
P(A∣B)=P(B)P(A∩B).
也就是說,
P(A∩B)=P(B)P(A∣B)=P(A)P(B∣A).
當滿足
P(A∩B)=P(A)P(B)
時,事件A和事件B相互獨立。
期望
離散的隨機變量X的期望(或平均值)爲
E(X)=x∑xP(X=x).
均勻分佈
假設隨機變量X服從[a,b]上的均勻分佈,即X∼U(a,b)。隨機變量X取a和b之間任意一個數的概率相等。
小結
- 本節總結了本書中涉及的有關線性代數、微分和概率的基礎知識。
練習
- 求函數f(x)=3x12+5ex2的梯度。