本章转自Mxnet文档,是当下机器学习必备的数学基础,可以供大家平时学习查阅。
数学基础
本节总结了本书中涉及到的有关线性代数、微分和概率的基础知识。为避免赘述本书未涉及的数学背景知识,本节中的少数定义稍有简化。
线性代数
以下分别概括了向量、矩阵、运算、范数、特征向量和特征值的概念。
向量
本书中的向量指的是列向量。一个 n n 维向量 x x 的表达式可写成
x=⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥, x = [ x 1 x 2 ⋮ x n ] ,
其中 x1,…,xn x 1 , … , x n 是向量的元素。我们将各元素均为实数的 n n 维向量 x x 记作 x∈Rn x ∈ R n 或 x∈Rn×1 x ∈ R n × 1 。
矩阵
一个 m m 行 n n 列矩阵的表达式可写成
X=⎡⎣⎢⎢⎢⎢⎢x11x21⋮xm1x12x22⋮xm2……⋱…x1nx2n⋮xmn⎤⎦⎥⎥⎥⎥⎥, X = [ x 11 x 12 … x 1 n x 21 x 22 … x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 … x m n ] ,
其中 xij x i j 是矩阵 X X 中第 i i 行第 j j 列的元素( 1≤i≤m,1≤j≤n 1 ≤ i ≤ m , 1 ≤ j ≤ n )。我们将各元素均为实数的 m m 行 n n 列矩阵 X X 记作 X∈Rm×n X ∈ R m × n 。不难发现,向量是特殊的矩阵。
运算
设 n n 维向量 a a 中的元素为 a1,…,an a 1 , … , a n , n n 维向量 b b 中的元素为 b1,…,bn b 1 , … , b n 。向量 a a 与 b b 的点乘(内积)是一个标量:
a⋅b=a1b1+…+anbn. a ⋅ b = a 1 b 1 + … + a n b n .
设两个 m m 行 n n 列矩阵
A=⎡⎣⎢⎢⎢⎢⎢a11a21⋮am1a12a22⋮am2……⋱…a1na2n⋮amn⎤⎦⎥⎥⎥⎥⎥,B=⎡⎣⎢⎢⎢⎢⎢b11b21⋮bm1b12b22⋮bm2……⋱…b1nb2n⋮bmn⎤⎦⎥⎥⎥⎥⎥. A = [ a 11 a 12 … a 1 n a 21 a 22 … a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 … a m n ] , B = [ b 11 b 12 … b 1 n b 21 b 22 … b 2 n ⋮ ⋮ ⋱ ⋮ b m 1 b m 2 … b m n ] .
矩阵 A A 的转置是一个 n n 行 m m 列矩阵,它的每一行其实是原矩阵的每一列:
A⊤=⎡⎣⎢⎢⎢⎢⎢a11a12⋮a1na21a22⋮a2n……⋱…am1am2⋮amn⎤⎦⎥⎥⎥⎥⎥. A ⊤ = [ a 11 a 21 … a m 1 a 12 a 22 … a m 2 ⋮ ⋮ ⋱ ⋮ a 1 n a 2 n … a m n ] .
两个相同形状的矩阵的加法实际上是按元素做加法:
A+B=⎡⎣⎢⎢⎢⎢⎢a11+b11a21+b21⋮am1+bm1a12+b12a22+b22⋮am2+bm2……⋱…a1n+b1na2n+b2n⋮amn+bmn⎤⎦⎥⎥⎥⎥⎥. A + B = [ a 11 + b 11 a 12 + b 12 … a 1 n + b 1 n a 21 + b 21 a 22 + b 22 … a 2 n + b 2 n ⋮ ⋮ ⋱ ⋮ a m 1 + b m 1 a m 2 + b m 2 … a m n + b m n ] .
我们使用符号 ⊙ ⊙ 表示两个矩阵按元素做乘法的运算:
A⊙B=⎡⎣⎢⎢⎢⎢⎢a11b11a21b21⋮am1bm1a12b12a22b22⋮am2bm2……⋱…a1nb1na2nb2n⋮amnbmn⎤⎦⎥⎥⎥⎥⎥. A ⊙ B = [ a 11 b 11 a 12 b 12 … a 1 n b 1 n a 21 b 21 a 22 b 22 … a 2 n b 2 n ⋮ ⋮ ⋱ ⋮ a m 1 b m 1 a m 2 b m 2 … a m n b m n ] .
定义一个标量 k k 。标量与矩阵的乘法也是按元素做乘法的运算:
kA=⎡⎣⎢⎢⎢⎢⎢ka11ka12⋮ka1nka21ka22⋮ka2n……⋱…kam1kam2⋮kamn⎤⎦⎥⎥⎥⎥⎥. k A = [ k a 11 k a 21 … k a m 1 k a 12 k a 22 … k a m 2 ⋮ ⋮ ⋱ ⋮ k a 1 n k a 2 n … k a m n ] .
其它例如标量与矩阵按元素相加、相除等运算与上式中的相乘运算类似。矩阵按元素开根号、取对数等运算也即对矩阵每个元素开根号、取对数等,并得到和原矩阵形状相同的矩阵。
矩阵乘法和按元素的乘法不同。设 A A 为 m m 行 p p 列的矩阵, B B 为 p p 行 n n 列的矩阵。两个矩阵相乘的结果
AB=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢a11a21⋮ai1⋮am1a12a22⋮ai2⋮am2……⋱…⋱…a1pa2p⋮aip⋮amp⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢b11b21⋮bp1b12b22⋮bp2……⋱…b1jb2j⋮bpj……⋱…b1nb2n⋮bpn⎤⎦⎥⎥⎥⎥⎥ A B = [ a 11 a 12 … a 1 p a 21 a 22 … a 2 p ⋮ ⋮ ⋱ ⋮ a i 1 a i 2 … a i p ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 … a m p ] [ b 11 b 12 … b 1 j … b 1 n b 21 b 22 … b 2 j … b 2 n ⋮ ⋮ ⋱ ⋮ ⋱ ⋮ b p 1 b p 2 … b p j … b p n ]
是一个 m m 行 n n 列的矩阵,其中第 i i 行第 j j 列( 1≤i≤m,1≤j≤n 1 ≤ i ≤ m , 1 ≤ j ≤ n )的元素为
ai1b1j+ai2b2j+…+aipbpj=∑k=1paikbkj. a i 1 b 1 j + a i 2 b 2 j + … + a i p b p j = ∑ k = 1 p a i k b k j .
范数
设 n n 维向量 x x 中的元素为 x1,…,xn x 1 , … , x n 。向量 x x 的 Lp L p 范数为
∥x∥p=(∑i=1n|xi|p)1/p. ‖ x ‖ p = ( ∑ i = 1 n | x i | p ) 1 / p .
例如, x x 的 L1 L 1 范数是该向量元素绝对值的和:
∥x∥1=∑i=1n|xi|. ‖ x ‖ 1 = ∑ i = 1 n | x i | .
而 x x 的 L2 L 2 范数是该向量元素平方和的平方根:
∥x∥2=∑i=1nx2i−−−−−√. ‖ x ‖ 2 = ∑ i = 1 n x i 2 .
我们通常用 ∥x∥ ‖ x ‖ 指代 ∥x∥2 ‖ x ‖ 2 。
设 X X 是一个 m m 行 n n 列矩阵。矩阵 X X 的Frobenius范数为该矩阵元素平方和的平方根:
∥X∥F=∑i=1m∑j=1nx2ij−−−−−−−−⎷, ‖ X ‖ F = ∑ i = 1 m ∑ j = 1 n x i j 2 ,
其中 xij x i j 为矩阵 X X 在第 i i 行第 j j 列的元素。
特征向量和特征值
对于一个 n n 行 n n 列的矩阵 A A ,假设有标量 λ λ 和非零的 n n 维向量 v v 使
Av=λv, A v = λ v ,
那么 v v 是矩阵 A A 的一个特征向量,标量 λ λ 是 v v 对应的特征值。
微分
我们在这里简要介绍微分的一些基本概念和演算。
导数和微分
假设函数 f:R→R f : R → R 的输入和输出都是标量。函数 f f 的导数
f′(x)=limh→0f(x+h)−f(x)h, f ′ ( x ) = lim h → 0 f ( x + h ) − f ( x ) h ,
且假定该极限存在。给定 y=f(x) y = f ( x ) ,其中 x x 和 y y 分别是函数 f f 的自变量和因变量。以下有关导数和微分的表达式等价:
f′(x)=y′=dydx=dfdx=ddxf(x)=Df(x)=Dxf(x), f ′ ( x ) = y ′ = d y d x = d f d x = d d x f ( x ) = D f ( x ) = D x f ( x ) ,
其中符号 D D 和 d/dx d / d x 也叫微分运算符。常见的微分演算有 DC=0 D C = 0 ( C C 为常数)、 Dxn=nxn−1 D x n = n x n − 1 ( n n 为常数)、 Dex=ex D e x = e x 、 Dln(x)=1/x D ln ( x ) = 1 / x 等。
如果函数 f f 和 g g 都可导,设 C C 为常数,那么
ddx[Cf(x)]ddx[f(x)+g(x)]ddx[f(x)g(x)]ddx[f(x)g(x)]=Cddxf(x),=ddxf(x)+ddxg(x),=f(x)ddx[g(x)]+g(x)ddx[f(x)],=g(x)ddx[f(x)]−f(x)ddx[g(x)][g(x)]2. d d x [ C f ( x ) ] = C d d x f ( x ) , d d x [ f ( x ) + g ( x ) ] = d d x f ( x ) + d d x g ( x ) , d d x [ f ( x ) g ( x ) ] = f ( x ) d d x [ g ( x ) ] + g ( x ) d d x [ f ( x ) ] , d d x [ f ( x ) g ( x ) ] = g ( x ) d d x [ f ( x ) ] − f ( x ) d d x [ g ( x ) ] [ g ( x ) ] 2 .
如果 y=f(u) y = f ( u ) 和 u=g(x) u = g ( x ) 都是可导函数,依据链式法则,
dydx=dydududx. d y d x = d y d u d u d x .
泰勒展开
函数 f f 的泰勒展开式是
f(x)=∑n=0∞f(n)(a)n!(x−a)n, f ( x ) = ∑ n = 0 ∞ f ( n ) ( a ) n ! ( x − a ) n ,
其中 f(n) f ( n ) 为函数 f f 的 n n 阶导数(求 n n 次导数), n! n ! 为 n n 的阶乘。假设 ϵ ϵ 是个足够小的数,如果将上式中 x x 和 a a 分别替换成 x+ϵ x + ϵ 和 x x ,我们可以得到
f(x+ϵ)≈f(x)+f′(x)ϵ+O(ϵ2). f ( x + ϵ ) ≈ f ( x ) + f ′ ( x ) ϵ + O ( ϵ 2 ) .
由于 ϵ ϵ 足够小,上式也可以简化成
f(x+ϵ)≈f(x)+f′(x)ϵ. f ( x + ϵ ) ≈ f ( x ) + f ′ ( x ) ϵ .
偏导数
设 u u 为一个有 n n 个自变量的函数, u=f(x1,x2,…,xn) u = f ( x 1 , x 2 , … , x n ) ,它有关第 i i 个变量 xi x i 的偏导数为
∂u∂xi=limh→0f(x1,…,xi−1,xi+h,xi+1,…,xn)−f(x1,…,xi,…,xn)h. ∂ u ∂ x i = lim h → 0 f ( x 1 , … , x i − 1 , x i + h , x i + 1 , … , x n ) − f ( x 1 , … , x i , … , x n ) h .
以下有关偏导数的表达式等价:
∂u∂xi=∂f∂xi=fxi=fi=Dif=Dxif. ∂ u ∂ x i = ∂ f ∂ x i = f x i = f i = D i f = D x i f .
为了计算 ∂u/∂xi ∂ u / ∂ x i ,我们只需将 x1,…,xi−1,xi+1,…,xn x 1 , … , x i − 1 , x i + 1 , … , x n 视为常数并求 u u 有关 xi x i 的导数。
梯度
假设函数 f:Rn→R f : R n → R 的输入是一个 n n 维向量 x=[x1,x2,…,xn]⊤ x = [ x 1 , x 2 , … , x n ] ⊤ ,输出是标量。函数 f(x) f ( x ) 有关 x x 的梯度是一个由 n n 个偏导数组成的向量:
∇xf(x)=[∂f(x)∂x1,∂f(x)∂x2,…,∂f(x)∂xn]⊤. ∇ x f ( x ) = [ ∂ f ( x ) ∂ x 1 , ∂ f ( x ) ∂ x 2 , … , ∂ f ( x ) ∂ x n ] ⊤ .
为表示简洁,我们有时用 ∇f(x) ∇ f ( x ) 代替 ∇xf(x) ∇ x f ( x ) 。
假设 x x 是一个向量,常见的梯度演算包括
∇xA⊤x∇xx⊤A∇xx⊤Ax∇x∥x∥2=A,=A,=(A+A⊤)x,=∇xx⊤x=2x. ∇ x A ⊤ x = A , ∇ x x ⊤ A = A , ∇ x x ⊤ A x = ( A + A ⊤ ) x , ∇ x ‖ x ‖ 2 = ∇ x x ⊤ x = 2 x .
类似地,假设 X X 是一个矩阵,那么
∇X∥X∥2F=2X. ∇ X ‖ X ‖ F 2 = 2 X .
黑塞矩阵
假设函数 f:Rn→R f : R n → R 的输入是一个 n n 维向量 x=[x1,x2,…,xn]⊤ x = [ x 1 , x 2 , … , x n ] ⊤ ,输出是标量。假定函数 f f 所有的二阶偏导数都存在, f f 的黑塞矩阵 H H 是一个 n n 行 n n 列的矩阵:
H=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f∂x21∂2f∂x2∂x1⋮∂2f∂xn∂x1∂2f∂x1∂x2∂2f∂x22⋮∂2f∂xn∂x2……⋱…∂2f∂x1∂xn∂2f∂x2∂xn⋮∂2f∂x2n⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥, H = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 … ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 … ∂ 2 f ∂ x 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ∂ x n ∂ x 1 ∂ 2 f ∂ x n ∂ x 2 … ∂ 2 f ∂ x n 2 ] ,
其中二阶偏导数
∂2f∂xi∂xj=∂∂xj(∂f∂xi). ∂ 2 f ∂ x i ∂ x j = ∂ ∂ x j ( ∂ f ∂ x i ) .
概率
最后,我们简要介绍条件概率、期望和均匀分布。
条件概率
假设事件 A A 和事件 B B 的概率分别为 P(A) P ( A ) 和 P(B) P ( B ) ,两个事件同时发生的概率记作 P(A∩B) P ( A ∩ B ) 或 P(A,B) P ( A , B ) 。给定事件 B B ,事件 A A 的条件概率
P(A∣B)=P(A∩B)P(B). P ( A ∣ B ) = P ( A ∩ B ) P ( B ) .
也就是说,
P(A∩B)=P(B)P(A∣B)=P(A)P(B∣A). P ( A ∩ B ) = P ( B ) P ( A ∣ B ) = P ( A ) P ( B ∣ A ) .
当满足
P(A∩B)=P(A)P(B) P ( A ∩ B ) = P ( A ) P ( B )
时,事件 A A 和事件 B B 相互独立。
期望
随机变量 X X 的期望(或平均值)
E(X)=∑xxP(X=x). E ( X ) = ∑ x x P ( X = x ) .
均匀分布
假设随机变量 X X 服从 [a,b] [ a , b ] 上的均匀分布,即 X∼U(a,b) X ∼ U ( a , b ) 。随机变量 X X 取 a a 和 b b 之间任意一个数的概率相等。
小结
- 本节总结了本书中涉及到的有关线性代数、微分和概率的基础知识。