人工智能的数学基础

  • 数学作为一个基础工具,对于大多数理工学科,是必不可少的一部分,对于基础数学概念的扎实理解,会帮助对深度学习和计算机视觉中一些听上去很复杂的技术有直观而清晰的认识。
  • 数学基础对于理解构建更复杂的视觉系统非常重要。了解这些原理有助于创建新的视觉解决方案、理解和调试现有方法,以及了解我们正在使用的方法的固有假设和局限性。

矩阵

对于 m,nZ>0m,n\in \mathbb{Z}_{>0},一个形状为 (m,n)(m,n) 的实矩阵 A\boldsymbol{A} 是一个关于元素 aija_{ij}m×nm\times n 元组,其中 i=1,2,,m,j=1,2,,ni=1,2,\dots,m, j=1,2,\dots,n,按照 mmnn 列的方式进行排布。

A=[a11a1nam1amn],aijR\boldsymbol{A}= \left [ \begin{matrix} a_{11}&\cdots&a_{1n} \\ \vdots&\vdots&\vdots \\ a_{m1}&\cdots&a_{mn} \end{matrix} \right ], a_{ij}\in\mathbb{R}

按照惯例,形状为 (1,n)(1, n) 的矩阵成为行向量,形状为 (m,1)(m, 1) 的矩阵称为列向量。

矩阵的加法

两个矩阵 ARm×n\boldsymbol{A}\in\R^{m\times n}BRm×n\boldsymbol{B}\in\R^{m\times n} 的和被定义为两个矩阵按对应元素的相加得到的新矩阵,即:

A+B=[a11+b11a1n+b1nam1+bm1amn+bmn]Rm×n\boldsymbol{A}+\boldsymbol{B}= \left [ \begin{matrix} a_{11}+b_{11}&\cdots&a_{1n}+b_{1n} \\ \vdots&\vdots&\vdots \\ a_{m1}+b_{m1}&\cdots&a_{mn}+b_{mn} \end{matrix} \right ]\in\R^{m\times n}

矩阵的减法

两个矩阵 ARm×n\boldsymbol{A}\in\R^{m\times n}BRm×n\boldsymbol{B}\in\R^{m\times n} 的差被定义为两个矩阵按对应元素的相减得到的新矩阵,即:

AB=[a11b11a1nb1nam1bm1amnbmn]Rm×n\boldsymbol{A}-\boldsymbol{B}= \left [ \begin{matrix} a_{11}-b_{11}&\cdots&a_{1n}-b_{1n} \\ \vdots&\vdots&\vdots \\ a_{m1}-b_{m1}&\cdots&a_{mn}-b_{mn} \end{matrix} \right ]\in\R^{m\times n}

矩阵的乘法

对于矩阵ARm×n\boldsymbol{A}\in\R^{m\times n}BRn×k\boldsymbol{B}\in\R^{n\times k}的乘积矩阵C=ABRm×k\boldsymbol{C}=\boldsymbol{A}\boldsymbol{B}\in\R^{m\times k}(注意这里矩阵的大小)中元素的计算法则为:

cij=l=1nailblj,(i=1,2,,m,j=1,2,,k)c_{ij}=\sum_{l=1}^n a_{il}b_{lj},(i=1,2,\dots,m, j=1,2,\dots,k)

元素 cijc_{ij}A\boldsymbol{A} 的第 ii 行和 B\boldsymbol{B} 的第 jj 列元素逐项相乘并求和,这种操作称作对应行与列的内积

AB=An×kBk×m=Cn×m\boldsymbol{A}\cdot \boldsymbol{B} =\underbrace{\boldsymbol{A}}_{n\times k} \underbrace{\boldsymbol{B}}_{k\times m}=\underbrace{\boldsymbol{C}}_{n\times m}

注意:矩阵只有在“相邻”的尺寸匹配时才可以相乘。

示例

对于矩阵 A=[123321]R2×3\boldsymbol{A}=\left [ \begin{matrix} 1&2&3 \\ 3&2&1 \end{matrix}\right ]\in\R^{2\times 3}B=[021101]R3×2\boldsymbol{B}=\left [ \begin{matrix} 0&2 \\ 1&-1\\ 0&1 \end{matrix}\right ]\in\R^{3\times 2},我们有:

AB=[123321][021101]=[2325]R2×2\boldsymbol{A}\boldsymbol{B}=\left [ \begin{matrix} 1&2&3 \\ 3&2&1 \end{matrix} \right ]\left [ \begin{matrix} 0&2 \\ 1&-1\\ 0&1 \end{matrix} \right ]= \left [ \begin{matrix} 2&3 \\ 2&5 \end{matrix} \right ]\in \R^{2\times 2}

BA=[021101][123321]=[642202321]R3×3\boldsymbol{B}\boldsymbol{A}= \left [ \begin{matrix} 0&2 \\ 1&-1\\ 0&1 \end{matrix} \right ] \left [ \begin{matrix} 1&2&3 \\ 3&2&1 \end{matrix} \right ] = \left [ \begin{matrix} 6&4&2 \\ -2&0&2\\ 3&2&1 \end{matrix} \right ]\in \R^{3\times 3}

从这个例子中我们可以看到,矩阵的乘法并不具备交换律,即:ABBA\boldsymbol{A}\boldsymbol{B}\neq \boldsymbol{B}\boldsymbol{A}

单位矩阵

对角线上全部为1,其他位置全部为0的n×nn\times n维矩阵。

In=[100010001]Rn×n\boldsymbol{I}_n=\left [ \begin{matrix} 1&0&\cdots&0 \\ 0&1&\cdots&0\\ \vdots&\vdots&\cdots&\vdots\\ 0&0&\cdots&1 \end{matrix} \right ]\in \mathbb{R}^{n\times n}

矩阵的逆

考虑一个方阵 ARn×n\boldsymbol{A}\in \R^{n\times n},令矩阵 B\boldsymbol{B} 满足性质:AB=BA=In\boldsymbol{AB}=\boldsymbol{BA}=\boldsymbol{I}_nB\boldsymbol{B} 被称作 A\boldsymbol{A}并记作 A1\boldsymbol{A}^{-1}

并不是每个矩阵 A\boldsymbol{A} 都存在逆矩阵 A1\boldsymbol{A}^{-1} 。如果这个逆存在,矩阵 A\boldsymbol{A} 被称作可逆矩阵/非奇异矩阵,否则就叫作不可逆矩阵/奇异矩阵。如果一个矩阵的逆存在,那么它也必然唯一。

示例

对于矩阵

A=[121445677],B=[776211454]\boldsymbol{A}= \left [ \begin{matrix} 1&2&1\\ 4&4&5\\ 6&7&7 \end{matrix} \right ], \quad \boldsymbol{B}= \left [ \begin{matrix} -7&-7&6\\ 2&1&-1\\ 4&5&-4 \end{matrix} \right ]

互为逆矩阵,因为 AB=BA=I\boldsymbol{AB}=\boldsymbol{BA}=\boldsymbol{I},记为 A1=B\boldsymbol{A}^{-1}=\boldsymbol{B}B1=A\boldsymbol{B}^{-1}=\boldsymbol{A}

转置矩阵

对于矩阵 ARm×n\boldsymbol{A}\in \mathbb{R}^{m\times n},满足 bij=ajib_{ij}=a_{ji} 的矩阵 BRn×m\boldsymbol{B}\in \mathbb{R}^{n\times m} 被称作 A\boldsymbol{A} 的转置。我们记 B=A\boldsymbol{B}=\boldsymbol{A}^{\top}

总的来说,A\boldsymbol{A}^{\top}可以通过把A\boldsymbol{A}的行作为A\boldsymbol{A}^{\top}的对应列得到。

示例

对于矩阵

A=[123456]R2×3\boldsymbol{A}=\left [ \begin{matrix} 1&2&3\\ 4&5&6 \end{matrix} \right ]\in \mathbb{R}^{2\times 3}

它的转置

A=[142536]R3×2\boldsymbol{A}^{\top}=\left [ \begin{matrix} 1&4\\ 2&5\\ 3&6 \end{matrix} \right ]\in \mathbb{R}^{3\times 2}

对称矩阵

一个矩阵 ARn×n\boldsymbol{A}\in \R^{n\times n} 若满足 A=A\boldsymbol{A}=\boldsymbol{A}^{\top},我们称其为 对称矩阵

注意只有 n×nn\times n 矩阵才可能具备对称性。通常来说,我们也把 n×nn\times n 矩阵叫方阵因为它具备相同的行数和列数。

示例

对于矩阵

A=[123245356]R3×3\boldsymbol{A}=\left [ \begin{matrix} 1&2&3\\ 2&4&5\\ 3&5&6 \end{matrix} \right ]\in \mathbb{R}^{3\times 3}

它的转置

A=[123245356]R3×3\boldsymbol{A}^{\top}=\left [ \begin{matrix} 1&2&3\\ 2&4&5\\ 3&5&6 \end{matrix} \right ]\in \mathbb{R}^{3\times 3}

因为 A=A\boldsymbol{A}=\boldsymbol{A}^{\top},所以 A\boldsymbol{A} 是一个对称矩阵。

矩阵的标量乘

ARm×n,λR\boldsymbol{A}\in\mathbb{R}^{m\times n}, \lambda \in \mathbb{R}, 那么λA=K\lambda\boldsymbol{A=K},Kij=λaijK_{ij}=\lambda a_{ij}。实际上,λ\lambda对矩阵A\boldsymbol{A}中每个元素进行了放缩。对于λ,ψR\lambda, \psi\in \mathbb{R},有如下性质:

  • 结合律1

(λψ)C=λ(ψC),CRm×n(\lambda\psi)\boldsymbol{C}=\lambda(\psi\boldsymbol{C}), \boldsymbol{C}\in\R^{m\times n}

  • 结合律2

λ(BC)=(λB)C=B(λC)=(BC)λ,BRm×n,CRn×k\lambda(\boldsymbol{B}\boldsymbol{C})=(\lambda\boldsymbol{B})\boldsymbol{C}=\boldsymbol{B}(\lambda\boldsymbol{C})=(\boldsymbol{B}\boldsymbol{C})\lambda, \boldsymbol{B}\in\R^{m\times n}, \boldsymbol{C}\in\R^{n\times k}

  • 转置

(λC)=Cλ=Cλ=λC(\lambda\boldsymbol{C})^{\top}=\boldsymbol{C}^{\top}\lambda^{\top}=\boldsymbol{C}^{\top}\lambda=\lambda\boldsymbol{C}^{\top}

因为对于λR\forall \lambda \in \R, λ=λ\lambda^{\top}=\lambda

  • 分配律

(λ+ψ)C=λC+ψC,λ(B+C)=λB+λCBRm×n,CRm×n,\begin{align*} (\lambda+\psi)\boldsymbol{C}&=\lambda\boldsymbol{C}+\psi\boldsymbol{C},\\ \lambda(\boldsymbol{B}+\boldsymbol{C})&=\lambda\boldsymbol{B}+\lambda\boldsymbol{C} \end{align*} \quad \boldsymbol{B}\in\R^{m\times n}, \boldsymbol{C}\in\R^{m\times n}, \\

示例

对于矩阵

A=[123456]R2×3\boldsymbol{A}=\left [ \begin{matrix} 1&2&3\\ 4&5&6 \end{matrix} \right ]\in \mathbb{R}^{2\times 3}

λ=2\lambda=2,则 λA=[24681012]R2×3\lambda\boldsymbol{A}=\left [ \begin{matrix} 2&4&6\\ 8&10&12 \end{matrix} \right ]\in \mathbb{R}^{2\times 3},即 λ\lambda 对矩阵 A\boldsymbol{A} 中每个元素进行了放缩。

矩阵的内积

矩阵的内积(Frobenius Product)指的是两个矩阵对应元素相乘后求和的结果,它是一个标量,记作 A,B\langle \boldsymbol{A}, \boldsymbol{B} \rangle

对于两个矩阵 ARn×n\boldsymbol{A}\in \R^{n\times n}BRn×n\boldsymbol{B}\in \R^{n\times n},它们的行数和列数相同,那么它们的内积(也称为点积或标量积)可以定义为:

A,B=i=1nj=1nAijBij\langle \boldsymbol{A}, \boldsymbol{B} \rangle = \sum_{i=1}^{n} \sum_{j=1}^{n} A_{ij} B_{ij}

示例

对于矩阵

A=[1234],B=[5678]\boldsymbol{A}=\left [ \begin{matrix} 1&2\\ 3&4 \end{matrix} \right ], \quad \boldsymbol{B}=\left [ \begin{matrix} 5&6\\ 7&8 \end{matrix} \right ]

它们的内积为:

A,B=15+26+37+48=70\langle \boldsymbol{A}, \boldsymbol{B} \rangle = 1*5 + 2*6 + 3*7 + 4*8 = 70

矩阵的外积

矩阵的外积(Kronecker Product)本质是两个矩阵的维度扩张,记作 AB\boldsymbol{A}\otimes \boldsymbol{B},它是一个新的矩阵。

对于两个矩阵 ARm×n\boldsymbol{A}\in \R^{m\times n}BRp×q\boldsymbol{B}\in \R^{p\times q}。外积 AB\boldsymbol{A}\otimes \boldsymbol{B} 是一个 mp×nqmp\times nq 的矩阵,其定义为:

AB=[A11BA12BA1nBA21BA22BA2nBAm1BAm2BAmnB]\boldsymbol{A}\otimes \boldsymbol{B} = \begin{bmatrix} A_{11}\boldsymbol{B} & A_{12}\boldsymbol{B} & \cdots & A_{1n}\boldsymbol{B} \\ A_{21}\boldsymbol{B} & A_{22}\boldsymbol{B} & \cdots & A_{2n}\boldsymbol{B} \\ \vdots & \vdots & \ddots & \vdots \\ A_{m1}\boldsymbol{B} & A_{m2}\boldsymbol{B} & \cdots & A_{mn}\boldsymbol{B} \end{bmatrix}

示例

对于矩阵

A=[1234],B=[0567]\boldsymbol{A}=\left [ \begin{matrix} 1&2\\ 3&4 \end{matrix} \right ], \quad \boldsymbol{B}=\left [ \begin{matrix} 0&5\\ 6&7 \end{matrix} \right ]

它们的外积为:

AB=[1B2B3B4B]=[0501067121401502018212428]\boldsymbol{A}\otimes \boldsymbol{B} = \begin{bmatrix} 1\cdot\boldsymbol{B} & 2\cdot\boldsymbol{B} \\ 3\cdot\boldsymbol{B} & 4\cdot\boldsymbol{B} \end{bmatrix} = \begin{bmatrix} 0&5&0&10 \\ 6&7&12&14 \\ 0&15&0&20 \\ 18&21&24&28 \end{bmatrix}

线性方程组

线性方程组是每个方程中未知数的次数都为一次的数学方程组。

线性方程组的表示

一般形式:

{a11x1+a12x2++a1nxn=b1,a21x1+a22x2++a2nxn=b2,am1x1+am2x2++amnxn=bm.\begin{cases} a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1,\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2,\\ \vdots\\ a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=b_m. \end{cases}

向量形式:

[a11am1]x1+[a12am2]x2++[a1namn]xn=[b1bm]\begin{aligned} \left [\begin{matrix}a_{11} \\ \vdots \\a_{m1}\end{matrix}\right ]x_1 +\left [\begin{matrix}a_{12} \\ \vdots \\a_{m2}\end{matrix}\right ]x_2 +\cdots +\left [\begin{matrix}a_{1n} \\ \vdots \\a_{mn}\end{matrix}\right ]x_n= \left [\begin{matrix}b_{1} \\ \vdots \\b_{m}\end{matrix}\right ] \\ \end{aligned}

矩阵形式:

[a11a12a1na21a22a2nam1am2amn][x1x2xn]=[b1b2bm]Ax=b\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} = \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_m \end{bmatrix} \Leftrightarrow \boldsymbol{A}\boldsymbol{x}=\boldsymbol{b}

增广矩阵可以作为一种紧凑的方式来表述线性方程组,不再明确提及变量 xx,构建形式为 [Ab][A \mid b] 的增广矩阵如下:

[a11a12a1na21a22a2nam1am2amn  b1b2bm]\left[ \begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{matrix}\;\right| \left. \begin{matrix} b_1 \\ b_2 \\ \vdots \\ b_m \\ \end{matrix} \right]

增广矩阵 [Ab][A \mid b] 紧凑地表示了线性方程组 Ax=bAx = b

初等变换

解线性方程组的关键是初等变换,这些变换可以保持方程组的解集不变,但可以将方程组转换为更简单的形式:

  • 交换两个方程(矩阵中的行)。
  • 将一个方程(行)乘以一个非零常数 λR{0}\lambda \in \mathbb{R} \setminus \{0\}
  • 将两个方程(行)相加。

线性方程组的解

以下线性方程组为例:

{x1+2x2+3x3=4,2x1+5x2+3x3=7,4x1+10x2+6x3=14.\begin{cases} x_1 + 2x_2 + 3x_3 = 4,\\ 2x_1 + 5x_2 + 3x_3 = 7,\\ 4x_1 + 10x_2 + 6x_3 = 14. \end{cases}

要解这个线性方程组,我们可以将其表示为增广矩阵:

[1232534106  4714]\left[ \begin{matrix} 1 & 2 & 3 \\ 2 & 5 & 3 \\ 4 & 10 & 6 \\ \end{matrix}\;\right| \left. \begin{matrix} 4 \\ 7 \\ 14 \\ \end{matrix} \right]

然后通过初等变换将其化为行最简形式,最终得到解集。

[123013000]410]\begin{bmatrix} 1 & 2 & 3 \\ 0 & 1 & -3 \\ 0 & 0 & 0 \\ \end{bmatrix} \left| \begin{matrix} 4 \\ -1 \\ 0 \\ \end{matrix} \right]

因此,解集为:

{x1=42x23x3,x2=1+3x3,x3=t,tR.\begin{cases} x_1 = 4 - 2x_2 - 3x_3,\\ x_2 = -1 + 3x_3,\\ x_3 = t, \quad t \in \mathbb{R}. \end{cases}

该文章后续会持续整理更新!😘

参考