机器学习的数学基础:矩阵论

1. 基本概念

1.1 向量及其转置

一个 d d d维列向量 x x x及其转置 x t x^t xt可记作:

(1) x = [ x 1 x 2 ⋮ x d ]   和 x t = [ x 1 x 2 … x d ] x=\left[ \begin{matrix} x_1 \\ x_2 \\ \vdots\\ x_d\\ \end{matrix} \right]\ 和 x^t=\left[ \begin{matrix} x_1 & x_2 & \dots & x_d\\ \end{matrix} \right]\tag{1} x=x1x2xd xt=[x1x2xd](1)

1.2 矩阵及其转置

一个 n × d n \times d n×d的矩阵 M \mathbf M M及其 d × n d \times n d×n的转置矩阵 M t \mathbf M^t Mt为:

(2) M = [ m 11 m 12 … m 1 d m 21 m 22 … m 2 d ⋮ ⋮ ⋱ ⋮ m n 1 m n 2 … m n d ] \mathbf M=\left[ \begin{matrix} m_{11} & m_{12} & \dots & m_{1d}\\ m_{21} & m_{22} & \dots & m_{2d} \\ \vdots & \vdots & \ddots & \vdots\\ m_{n1} & m_{n2} & \dots & m_{nd}\\ \end{matrix} \right]\tag{2} M=m11m21mn1m12m22mn2m1dm2dmnd(2)

(3) M t = [ m 11 m 21 … m n 1 m 12 m 22 … m n 2 ⋮ ⋮ ⋱ ⋮ m 1 d m 2 d … m n d ] \mathbf M^t=\left[ \begin{matrix} m_{11} & m_{21} & \dots & m_{n1}\\ m_{12} & m_{22} & \dots & m_{n2} \\ \vdots & \vdots & \ddots & \vdots\\ m_{1d} & m_{2d} & \dots & m_{nd}\\ \end{matrix} \right]\tag{3} Mt=m11m12m1dm21m22m2dmn1mn2mnd(3)

1.3 对称矩阵与反对称矩阵

一个 d × d d \times d d×d方阵, 如果其元素满足 m i j = m j i m_{ij}=m_{ji} mij=mji,则称为对称矩阵;一个的 d × d d \times d d×d方阵,如果其元素满足 m i j = − m j i m_{ij}=-m_{ji} mij=mji,则称为斜对称矩阵或反对称矩阵。

1.4 单位矩阵 I \mathbf I I

单位矩阵必须为方阵,其对角线元素均为1,非对角线元素均为0。

1.5 对角矩阵

非对角线元素均为0的矩阵,也记作 d i a g ( m 11 , m 22 , … , m d d ) diag(m_{11}, m_{22}, \dots, m_{dd}) diag(m11,m22,,mdd)

1.6 向量或矩阵相加减

向量或矩阵的相加减即为对应元素相加减,参与运算的两个向量或矩阵维数必须相等

1.7 矩阵与向量相乘

矩阵与向量相乘 M x = y \mathbf M \mathbf x=\mathbf y Mx=y可以表示为:

(4) [ m 11 m 21 … m n 1 m 12 m 22 … m n 2 ⋮ ⋮ ⋱ ⋮ m 1 d m 2 d … m n d ] [ x 1 x 2 ⋮ x d ] = [ y 1 y 2 ⋮ y n ] \left[ \begin{matrix} m_{11} & m_{21} & \dots & m_{n1}\\ m_{12} & m_{22} & \dots & m_{n2} \\ \vdots & \vdots & \ddots & \vdots\\ m_{1d} & m_{2d} & \dots & m_{nd}\\ \end{matrix} \right] \left[ \begin{matrix} x_1 \\ x_2 \\ \vdots\\ x_d \\ \end{matrix} \right] = \left[ \begin{matrix} y_1 \\ y_2 \\ \vdots\\ y_n \\ \end{matrix} \right ] \tag{4} m11m12m1dm21m22m2dmn1mn2mndx1x2xd=y1y2yn(4)

其中: y i = ∑ j = 0 d m i j x j y_i=\sum\limits_{j=0}^d m_{ij}x_j yi=j=0dmijxj。注意矩阵的列数必须等于向量的行数


2. 向量内积与外积

2.1 向量内积

两个具有相同维数的向量 x \mathbf x x y \mathbf y y的内积记为 x t y \mathbf x^t \mathbf y xty,这是一个标量:

(5) x t y = ∑ i = 0 d x i y i = y t x \mathbf x^t \mathbf y=\sum\limits_{i=0}^dx_i y_i=\mathbf y^t \mathbf x \tag{5} xty=i=0dxiyi=ytx(5)

内积也称作点积,记为 x ⋅ y \mathbf x \cdot \mathbf y xy ⟨ x , y ⟩ \langle \mathbf x , \mathbf y \rangle x,y

2.2 欧几里德范数

向量的欧几里德范数即为向量的长度,定义为:

(6) ∥ x ∥ = x t x \begin{Vmatrix}\mathbf x \end{Vmatrix}= \sqrt{\mathbf x^t \mathbf x} \tag{6} x=xtx (6)

如果一个向量 x \mathbf x x满足 ∥ x ∥ = 1 \begin{Vmatrix}\mathbf x \end{Vmatrix}= 1 x=1,则称这个向量是归一化的

2.3 两个向量的夹角

两个d维向量的夹角为:

(7) c o s θ = x t y ∥ x ∥ ∥ y ∥ cos\theta= \frac{\mathbf x^t\mathbf y}{\begin{Vmatrix}\mathbf x \end{Vmatrix}\begin{Vmatrix}\mathbf y \end{Vmatrix}}\tag{7} cosθ=xyxty(7)

x t y = 0 \mathbf x^t\mathbf y=0 xty=0时,这两个向量是正交的。当 ∥ x t y ∥ = ∥ x ∥ ∥ y ∥ \begin{Vmatrix}\mathbf x^t \mathbf y\end{Vmatrix}= \begin{Vmatrix}\mathbf x \end{Vmatrix}\begin{Vmatrix}\mathbf y \end{Vmatrix} xty=xy时,这两个向量是共线的。

由于对于任意角度 θ \theta θ都有 ∣ c o s θ ∣ ≤ 1 |cos\theta|\leq 1 cosθ1,由式(7)可得柯西-施瓦茨不等式:

(8) ∣ x t y ∣ ≤ ∥ x ∥ ∥ y ∥ |\mathbf x^t \mathbf y| \leq \begin{Vmatrix}\mathbf x \end{Vmatrix} \begin{Vmatrix}\mathbf y \end{Vmatrix}\tag{8} xtyxy(8)

2.4 线性相关与线性无关

对于一组给定的向量 { x 1 , x 2 , … , x n } \lbrace \mathbf x_1, \mathbf x_2, \dots, \mathbf x_n \rbrace {x1,x2,,xn},如果其中不存在任何一个能被表示为其余向量的线性组合的向量,那么这组向量是线性无关的,反之则是线性相关。一组d个线性无关的d维向量能够张成一个d维向量空间,也就是说,这个空间中的任意向量都可以表示为这些线性无关向量的线性组合。

2.5 向量的外积

两个向量的外积为一个矩阵:

(9) M = x y t = [ x 1 x 2 ⋮ x d ] [ y 1 y 2 … y d ] = [ x 1 y 1 x 1 y 2 … x 1 y n x 2 y 1 x 2 y 2 … x 2 y n ⋮ ⋮ ⋱ ⋮ x d y 1 x d y 2 … x d y n ] \mathbf M= \mathbf x \mathbf y^t= \left[ \begin{matrix} x_1 \\ x_2 \\ \vdots\\ x_d \\ \end{matrix} \right] \left[ \begin{matrix} y_1 & y_2 & \dots & y_d\\ \end{matrix} \right]= \left[ \begin{matrix} x_1 y_1 & x_1 y_2 & \dots & x_1 y_n\\ x_2 y_1 & x_2 y_2 & \dots & x_2 y_n \\ \vdots & \vdots & \ddots & \vdots\\ x_d y_1 & x_d y_2 & \dots & x_d y_n\\ \end{matrix} \right]\tag{9} M=xyt=x1x2xd[y1y2yd]=x1y1x2y1xdy1x1y2x2y2xdy2x1ynx2ynxdyn(9)


3. 矩阵的导数

3.1 取标量值的函数的导数

f ( x ) f(\mathbf x) f(x)是一个取标量值得函数,有d个自变量 x i ( i = 1 , 2 , … , d ) x_i(i=1,2, \dots, d) xi(i=1,2,,d),用向量 x \mathbf x x表示。则函数 f ( ⋅ ) f(\cdot) f()关于自变量 x \mathbf x x的梯度为:

(10) ∇ f ( x ) = ∂ f ( x ) ∂ x = [ ∂ f ( x ) ∂ x 1 ∂ f ( x ) ∂ x 2 ⋮ ∂ f ( x ) ∂ x d ] \nabla f(\mathbf x)= \frac{\partial f(\mathbf x)}{\partial \mathbf x}= \left[ \begin{matrix} \frac{\partial f(\mathbf x)}{\partial x_1} \\ \frac{\partial f(\mathbf x)}{\partial x_2} \\ \vdots\\ \frac{\partial f(\mathbf x)}{\partial x_d} \\ \end{matrix} \right]\tag{10} f(x)=xf(x)=x1f(x)x2f(x)xdf(x)(10)

3.2 取值为向量的函数的导数

f \mathbf f f是一个值为n维向量的向量函数,其自变量为d维向量 x \mathbf x x,则 f \mathbf f f关于自变量的梯度为:

(11) J ( x ) = ∂ f ( x ) ∂ x = [ ∂ f 1 ( x ) ∂ x 1 … ∂ f 1 ( x ) ∂ x d ⋮ ⋱ ⋮ ∂ f n ( x ) ∂ x 1 … ∂ f n ( x ) ∂ x d ] \mathbf J(\mathbf x)= \frac{\partial \mathbf f(\mathbf x)}{\partial \mathbf x}= \left[ \begin{matrix} \frac{\partial f_1(\mathbf x)}{\partial x_1} & \dots & \frac{\partial f_1(\mathbf x)}{\partial x_d}\\ \vdots & \ddots & \vdots \\ \frac{\partial f_n(\mathbf x)}{\partial x_1} & \dots & \frac{\partial f_n(\mathbf x)}{\partial x_d} \\ \end{matrix} \right]\tag{11} J(x)=xf(x)=x1f1(x)x1fn(x)xdf1(x)xdfn(x)(11)

称矩阵 J ( x ) \mathbf J(\mathbf x) J(x)雅克比矩阵

3.3 矩阵 M \mathbf M M关于标量参数 θ \theta θ的导数

设矩阵 M \mathbf M M的每个元素都是关于某个标量参数 θ \theta θ的函数,则此矩阵关于参数的导数为:

(12) ∂ M ∂ θ = [ ∂ m 11 ∂ θ … ∂ m 1 d ∂ θ ⋮ ⋱ ⋮ ∂ m n 1 ∂ θ … ∂ m n d ∂ θ ] \frac{\partial \mathbf M}{\partial \theta}= \left[ \begin{matrix} \frac{\partial m_{11}}{\partial \theta} & \dots & \frac{\partial m_{1d}}{\partial \theta}\\ \vdots & \ddots & \vdots \\ \frac{\partial m_{n1}}{\partial \theta} & \dots & \frac{\partial m_{nd}}{\partial \theta} \\ \end{matrix} \right]\tag{12} θM=θm11θmn1θm1dθmnd(12)

3.4 常用公式

(13 - 15) ∂ ∂ x [ M x ] = M ∂ ∂ x [ y t x ] = ∂ ∂ x [ x t y ] = y ∂ ∂ x [ x t M x ] = [ M + M t ] x \begin{alignedat}{1} \tag{13 - 15} {\frac{\partial}{\partial \mathbf x}[\mathbf M \mathbf x]= \mathbf M} \\ {\frac{\partial}{\partial \mathbf x}[\mathbf y^t \mathbf x]= \frac{\partial}{\partial \mathbf x}[\mathbf x^t \mathbf y]= \mathbf y} \\ {\frac{\partial}{\partial \mathbf x}[\mathbf x^t \mathbf M \mathbf x]= [\mathbf M + \mathbf M^t]\mathbf x } \end{alignedat} x[Mx]=Mx[ytx]=x[xty]=yx[xtMx]=[M+Mt]x(13 - 15)


4. 行列式和迹

4.1 求解行列式

  • 2 × 2 2 \times 2 2×2的矩阵的行列式:

(16) ∣ M 2 × 2 ∣ = m 11 m 22 − m 21 m 12 |\mathbf {M_{2 \times 2}}|= m_{11}m_{22}-m_{21}m_{12}\tag{16} M2×2=m11m22m21m12(16)

  • 余子式:如果 M \mathbf M M d × d d \times d d×d的矩阵,任一元素 m i j m_{ij} mij余子式 M i ∣ j \mathbf M_{i|j} Mij定义为,从原始矩阵 M \mathbf M M中分别划去第 i i i行和第 j j j列的所有元素后,得到的 ( d − 1 ) × ( d − 1 ) (d-1) \times (d-1) (d1)×(d1)的矩阵。 m i j m_{ij} mij代数余子式 C i j C_{ij} Cij为余子式 M i ∣ j \mathbf M_{i|j} Mij ( − 1 ) i + j (-1)^{i+j} (1)i+j的乘积。

以三维矩阵 A \mathbf A A为例:

A = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] \mathbf A=\left[ \begin{matrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \\ \end{matrix} \right] A=a11a21a31a12a22a32a13a23a33

a 12 a_{12} a12的余子式 A 1 ∣ 2 \mathbf A_{1|2} A12表示为:

[ × × × a 21 × a 23 a 31 × a 33 ] → A 1 ∣ 2 = [ a 21 a 23 a 31 a 33 ] \left[ \begin{matrix} \times & \times & \times \\ a_{21} & \times & a_{23} \\ a_{31} & \times & a_{33} \\ \end{matrix} \right] \to \mathbf A_{1|2}=\left[ \begin{matrix} a_{21} & a_{23} \\ a_{31} & a_{33} \\ \end{matrix} \right] ×a21a31××××a23a33A12=[a21a31a23a33]

a 12 a_{12} a12的代数余子式 C 12 C_{12} C12表示为:

C 12 = ( − 1 ) 1 + 2 ∣ A 1 ∣ 2 ∣ = − a 21 a 33 + a 23 a 31 C_{12}=(-1)^{1+2}|\mathbf A_{1|2}|=-a_{21}a_{33}+a_{23}a_{31} C12=(1)1+2A12=a21a33+a23a31

  • 高阶矩阵的行列式: 对于二阶矩阵的行列式,我们可以通过式(16)计算,对于更阶的矩阵,我们通过余子式来计算。如果 ∣ M i ∣ j ∣ |\mathbf M_{i|j}| Mij已经计算得到,那么高阶矩阵行列式的计算有如下公式:

(17) ∣ M ∣ = ∑ i = 1 d ∑ j = 1 d ( − 1 ) i + j m i j ∣ M i ∣ j ∣ |\mathbf M|=\sum\limits_{i=1}^d \sum\limits_{j=1}^d (-1)^{i+j} m_{ij} |\mathbf M_{i|j}|\tag{17} M=i=1dj=1d(1)i+jmijMij(17)

  • 行列式的一些性质: 对于任意矩阵,有:

(18) ∣ M ∣ = ∣ M t ∣ |\mathbf M|=|\mathbf M^t|\tag{18} M=Mt(18)

当两个矩阵 M \mathbf M M N \mathbf N N的大小相同时,有:

(19) ∣ M N ∣ = ∣ M ∣ × ∣ N ∣ |\mathbf M \mathbf N|=|\mathbf M| \times |\mathbf N|\tag{19} MN=M×N(19)

矩阵的行列式在坐标系旋转时保持不变。

4.2 矩阵的迹

  • 定义: 对于 d × d d \times d d×d的方阵,矩阵的迹定义为主对角线上的元素之和,即:

(20) t r [ M ] = ∑ i = 1 d m i i tr[\mathbf M]= \sum\limits_{i=1}^d m_{ii}\tag{20} tr[M]=i=1dmii(20)

矩阵的迹在坐标系旋转时保持不变。


5. 矩阵的逆

  • 定义: 只要一个 d × d d \times d d×d矩阵 M \mathbf M M的行列式不为零,那么它对应的逆矩阵 M − 1 \mathbf M^{-1} M1就存在,并且满足:

(21) M M − 1 = I \mathbf M \mathbf M^{-1}= \mathbf I\tag{21} MM1=I(21)

  • 伴随矩阵: 矩阵 M \mathbf M M的伴随矩阵记为 A d j [ M ] Adj[\mathbf M] Adj[M],它的第 i i i行第 j j j列元素为矩阵第 j j j行第 i i i列的余子式 C j i C_{ji} Cji,即:

(22) A d j [ M ] = [ C 11 C 21 … C d 1 C 12 C 22 … C d 2 ⋮ ⋮ ⋱ ⋮ C 1 d C 2 d … C d d ] Adj[\mathbf M]= \left[ \begin{matrix} C_{11} & C_{21} & \dots & C_{d1}\\ C_{12} & C_{22} & \dots & C_{d2} \\ \vdots & \vdots & \ddots & \vdots\\ C_{1d} & C_{2d} & \dots & C_{dd}\\ \end{matrix} \right]\tag{22} Adj[M]=C11C12C1dC21C22C2dCd1Cd2Cdd(22)

  • 逆的计算:

(23) M − 1 = A d j [ M ] ∣ M ∣ \mathbf M^{-1}=\frac{Adj[\mathbf M]}{|\mathbf M|}\tag{23} M1=MAdj[M](23)

  • 伪逆: 如果 M \mathbf M M不是方阵,或者 M \mathbf M M的列向量不是线性无关的,则 M − 1 \mathbf M^{-1} M1不存在,我们通常用伪逆矩阵 M † \mathbf M^{\dagger} M来代替 M − 1 \mathbf M^{-1} M1。如果 M t M \mathbf M^t \mathbf M MtM非奇异(即 ∣ M t M ∣ ≠ 0 |\mathbf M^t \mathbf M|\neq0 MtM̸=0),则伪逆矩阵定义为:

(24) M † = [ M t M ] − 1 M t \mathbf M^{\dagger}=[\mathbf M^{t} \mathbf M]^{-1} \mathbf M^{t}\tag{24} M=[MtM]1Mt(24)

  • 逆的性质:

(25) [ M N ] − 1 = M − 1 N − 1 [\mathbf M \mathbf N]^{-1}=\mathbf M^{-1} \mathbf N^{-1}\tag{25} [MN]1=M1N1(25)


6. 特征值与特征向量

  • 线性方程组的解: 对于 d × d d \times d d×d的矩阵 M \mathbf M M,一类非常重要的线性方程组的形式为:

(26) M x = λ x \mathbf M \mathbf x= \lambda \mathbf x\tag{26} Mx=λx(26)

其中 λ \lambda λ为标量。上式可以写为:

(27) ( M − λ I ) x = 0 (\mathbf M- \lambda \mathbf I) \mathbf x=\mathbf 0 \tag{27} (MλI)x=0(27)

其中 I \mathbf I I为单位阵,为d维零向量。线性方程组(26)的解向量 x = e i \mathbf x=\mathbf e_i x=ei和对应的标量系数 λ = λ i \lambda = \lambda_i λ=λi即为特征向量和特征值。
一种求解特征向量和特征值得方法是求解特征方程:

(28) ∣ M − λ I ∣ = 0 |\mathbf M- \lambda \mathbf I|=0\tag{28} MλI=0(28)

特征方程的各个根就是特征值。然后对应每个根,我们通过求解线性方程组来得到特征值对应的特征向量。

  • 重要性质: 全部特征值之和为矩阵的迹,全部特征值的乘积为矩阵的行列式,即:

(29 - 30) t r [ M ] = ∑ i = 1 d λ i ∣ M ∣ = ∏ i = 1 d λ i \begin{alignedat}{} tr[\mathbf M]=\sum\limits_{i=1}^d \lambda_i \tag{29 - 30}\\ |\mathbf M|= \prod\limits_{i=1}^d \lambda_i \end{alignedat}{} tr[M]=i=1dλiM=i=1dλi(29 - 30)

更多文章请浏览作者个人网站5663015.github.io
添加作者微信,一起交流学习,微信号:wuan3076
您的打赏是我进步的动力~

你可能感兴趣的:(机器学习)