第5 章
人工智能数学基础 
本章导读
学习人工智能的知识首先要打好数学基础,数学基础知识蕴含着处理智能问题的基
本思想与方法,也是理解复杂算法的必备要素。人工智能技术建立在数学模型之上,要了
解人工智能,首先要掌握必备的数学基础知识。本章介绍在人工智能领域常用的数学知
识,包括线性代数、概率论及最优化问题求解等。
学习目标
● 能使用线性代数解决常见数学问题并阐述其在人工智能中的应用。
● 能使用概率论解决常见数学问题并阐述其在人工智能中的应用。
● 能阐述最优化问题及其在人工智能中的应用。
各例题知识要点
例5.1矩阵乘法
例5.2求方程组的最小二乘解
例5.3计算矩阵的逆
例5.4计算分块矩阵的逆
例5.5计算行列式的值———第一种方法
例5.6计算行列式的值———第二种方法
例5.7求特征值和特征向量
例5.8将矩阵转化为对角形
例5.9奇异值分解
例5.10求离散随机变量的期望与方差
例5.11求连续随机变量的期望与方差
例5.12判断相关性
5.1 数学与人工智能
人工智能领域离不开数学,不论是机器学习还是深度机器学习,都会用到大量的数学
知识,要想学好人工智能,首先要拥有一定的数学基础。
人工智能需要通过应用数学进行建模,然后进行数据采集、数据挖掘,最后通过适当
的方法进行模型验证。将规律性事物总结为数学模型,不仅要还原所见的现象,还要基于
现象进行仿真、模拟实验,并在这样的模型上进一步调控策略、定量评估,最终才能预测研

第5 章 人工智能数学基础1 09 
判、解决问题。现代人工智能的产生与提出是在学科交叉中涌现的,但它需要精准的数学
刻画,故而需要应用数学知识的介入,从而开展更深入的研究。
5.2 线性代数
线性代数是代数学的一个分支,主要处理线性问题。线性问题是指数学对象之间的
关系是以一次形式来表达的。线性代数诞生于求解线性方程组,行列式、矩阵及向量是处
理线性问题的有力工具。线性代数在人工智能领域的应用越来越多,神经网络中的所有
参数都被存储在矩阵中,而线性代数使矩阵运算变得更加快捷简便。深度学习算法在
GPU 上训练模型时,GPU 可以并行地以向量和矩阵运算。图像在计算中被表示为按序
排列的二维像素数组。视频游戏使用庞大的矩阵来产生令人炫目的游戏体验。
5.2.1 矩阵的概念及矩阵运算
标量(Scalar):一个数。例如x=3。
向量(Vector):一个有序排列的列数。例如x= 
x1 
x2 
. 
xn 
é
.
êêêêê
ê 
ù
.
úúúúú
ú 
。
矩阵(Matrix):由m ×n 个数aij(i=1,2,…,m ;j=1,2,…,n)排成m 行n 列的数
表,称为m 行n 列矩阵,简称为m ×n 矩阵,记作: 
Amn = 
a11 a12 … a1n 
a21 
. 
am1 
a22 
. 
am2 
….… 
a2n 
. 
amn 
é
.
êêêêê
ê 
ù
.
úúúúú
ú 
(5.1) 
aij表示第i 行第j 列元素,简记为A =(aij)m ×n ,有时候,为了指明所讨论的矩阵的
级数,可以把m ×n 矩阵写成Amn 。另外,只有完全一样的矩阵才称为相等。
特殊地,行数与列数都等于n 的矩阵称为n 阶矩阵或n 阶方阵。矩阵就是一个数表, 
且它是数学中一个极重要的应用广泛的工具。
5.2.2 张量
张量(Tensor)是深度学习中的一个重要概念,是TensorFlow、PyTorch等很多深度
学习框架的重要组成部分。深度学习中的很多运算与模型优化过程都是基于Tensor完
成的。张
量的定义:从代数角度讲它是向量的推广,可以看作是一个多维数组。目的是能
够创造更高维度的矩阵、向量。零阶张量为一个标量;一阶张量为向量;二阶张量为矩阵。
下面举例说明张量: 
从表5-1中可以看到,0阶标量只有大小,例如x 为3;1阶张量即向量,有大小和方
向,例如v=[1,2,3];2阶张量即矩阵,类似数据表,例如矩阵m ,每行均为一个列表,则

1 10 Python 人工智能实践
m 是二维列表,即列表中包含列表;3阶张量,是数据立方体,例如t,其中[1],[2],[3]分
别是向量,这三个向量组成一个矩阵,这个矩阵是t 中的一个元素。
表5-1 Python示例
阶数学含义Python示例
1 标量x=3 
2 向量v=[1,2,3] 
3 矩阵m = 
1 2 3 
4 5 6 
7 8 9 
é
.
êêê 
ù
.
úúú 
4 3阶张量t=[[[1],[2],[3]],[[4],[5],[6]],[[7],[8],[9]]] 
5 n 阶张量… 
5.2.3 向量和矩阵的应用
在计算机视觉中,声音、图像、视频、标注信息等均被保存在向量或矩阵中,如一幅图
像会以矩阵的形式进行存储。在进行图像识别时,常常会把图像矩阵转换为向量,然后对
向量进行降维处理和识别,如图5-1所示,将灰度图像存储在矩阵Amn 中。也可以将灰度图
像按列或行存储为An×m,1=[a11a21a31…a12…amn ]T 或Am×n,1=[a11a12a13…a21…amn ]T。
彩色图像则可以存储在三个矩阵中,分别为对应的红、绿、蓝三原色矩阵。
图5-1 灰度图像与二维矩阵对应
5.2.4 矩阵的运算
矩阵的运算是矩阵之间的一些最基本的关系,本节介绍矩阵的加法、乘法,矩阵与数
的乘法及矩阵的转置。我们确定一个数域P ,以下所讨论的矩阵全是由数域P 中的数组
成的。
1.加法
设: 
Asn = 
a11 a12 … a1n 
a21 
. 
as1 
a22 
. 
as2 
….… 
a2n 
. 
asn 
é
.
êêêêê
ê 
ù
.
úúúúú
ú 
(5.2)

第5 章 人工智能数学基础1 11 
Bsn = 
b11 b12 … b1n 
b21 
. 
bs1 
b22 
. 
bs2 
….… 
b2n 
. 
bsn 
é
.
êêêêê
ê 
ù
.
úúúúú
ú 
(5.3) 
是两个s×n 矩阵,则矩阵
Csn = 
a11 +b11 a12 +b12 … a1n +b1n 
a21 +b21 
. 
as1 +bs1 
a22 +b22 
. 
as2 +bs2 
….… 
a2n +b2n 
. 
asn +bsn 
é
.
êêêêê
ê 
ù
.
úúúúú
ú 
(5.4) 
称为A 与B 的和,记为: 
C =A +B (5.5) 
矩阵的加法就是矩阵对应元素相加,当然,相加的矩阵必须要有相同的行数和列数。
由于矩阵的加法归结为它们的元素的加法,也就是数的加法,所以不难验证,它有: 
结合律:A+(B+C)=(A+B)+C; 
交换律:A+B=B+A。
元素全为零的矩阵称为零矩阵,记为O,对所有的A,有A+O=A。
矩阵: 
-a11 -a12 … -a1n 
-a21 
. 
-as1 
-a22 
. 
-as2 
….… 
-a2n 
. 
-asn 
é
.
êêêêê
ê 
ù
.
úúúúú
ú 
(5.6) 
称为矩阵A 的负矩阵,记为-A,显然有A+(-A)=O。
矩阵的减法定义为:A-B=A+(-B)。
根据矩阵加法的定义应用关于向量组秩的性质,很容易看出:秩(A+B)≤秩(A)+ 
秩(B)。
2.乘法
设Asn 为s×n 矩阵,Bnm 为n×m 矩阵,那么矩阵Csm ,其中元素: 
cij =ai1b1j +ai2b2j + … +ainbnj =Σn 
k=1
aikbkj (5.7) 
称为Asn 与Bnm 的乘积,记为C=AB。
由矩阵乘法的定义可以看出,矩阵Asn 与Bnm 的乘积Csm 的第i 行第j 列的元素等于
第一个矩阵Asn 的第i 行与第二个矩阵Bnm 的第j 列的对应元素乘积之和,当然,在乘积的
定义中,我们要求第二个矩阵的行数与第一个矩阵的列数相等。
【例5.1】 设矩阵A 与B,求A 与B 的乘积。
A = 
1 0 -1 2 
-1 1 3 0 
0 5 -1 4 
é
.
êêêê 
ù
.
úúúú
, B = 
0 3 4 
1 2 1 
3 -1 -1 
-1 2 1 
é
.
êêêêê 
ù
.
úúúúú
(5.8)

1 12 Python 人工智能实践 
解:
C =AB = 
1 0 -1 2 
-1 1 3 0 
0 5 -1 4 
é
.
êêêê 
ù
.
úúúú 
0 3 4 
1 2 1 
3 -1 -1 
-1 2 1 
é
.
êêêêê 
ù
.
úúúúú 
= 
-5 8 7 
10 -4 -6 
-2 19 10 
é
.
êêêê 
ù
.
úúúú
(5.9) 
矩阵C 中各个元素是根据式(5.7)得出的,例如,第二行第一列的元素10是矩阵A 
的第二行元素与矩阵B 的第一列的对应元素乘积之和: 
(-1)×0+1×1+3×3+0× (-1)=10 
矩阵的乘法可用于坐标变换,如在空间中作为一坐标系的转轴,设坐标系(x1,y1, 
z1)到(x2,y2,z2)的坐标变换矩阵为: 
A = 
a11 a12 a13 
a21 a22 a23 
a31 a32 a33 
é
.
êêêê 
ù
.
úúúú
(5.10) 
如果令: 
X1 = 
x1 
y1 
z1 
é
.
êêêê 
ù
.
úúúú
, X2 = 
x2 
y2 
z2 
é
.
êêêê 
ù
.
úúúú
(5.11) 
那么坐标变换的公式可以写成: 
X1 =AX2 (5.12) 
如果再次作为坐标系的转轴,设由第二个坐标系(x2,y2,z2)到第三个坐标系(x3, 
y3,z3)的坐标变换公式为: 
X2 =BX3 (5.13) 
其中: 
B = 
b11 b12 b13 
b21 b22 b23 
b31 b32 b33 
é
.
êêêê 
ù
.
úúúú
, X3 = 
x3 
y3 
z3 
é
.
êêêê 
ù
.
úúúú
(5.14) 
那么,由第一个坐标系到第三个坐标系的坐标变换矩阵为: 
C =AB (5.15) 
矩阵的乘法适合结合律: 
(AB)C =A(BC) (5.16) 
但不适合交换律,一般来说: 
AB ≠BA (5.17) 
矩阵的乘法和加法适合分配率,即: 
A(B +C)=AB +AC (5.18) 
(B +C)A =BA +CA (5.19) 
应该指出的是,由于矩阵的乘法不适合交换律,所以以上两式为不同的规律。
还可以定义矩阵的方幂,设A 是一个n×n 矩阵,定义

第5 章 人工智能数学基础1 13 
A1 =A 
Ak+1 =AkA (5.20) 
换句话说,Ak 就是k 个A 连乘。当然,方幂只能对行数与列数相等的矩阵来定义,由乘法
的结合律不难证明
AkAl =Ak+l (5.21) 
(Ak)l =Akl (5.22) 
这里k 和l 是任意正整数。因为矩阵的乘法不适合交换律,所以(AB)k 与AkBk 一般不
相等。
3.数量乘法
矩阵: 
ka11 ka12 … ka1n 
ka21 
. 
kas1 
ka22 
. 
kas2 
….… 
ka2n 
. 
kasn 
é
.
êêêêê
ê 
ù
.
úúúúú
ú 
称为矩阵Asn 与数k 的数量乘积,记为kA,换句话说,用数k 乘矩阵就是把矩阵的每个元
素都乘上k。数量乘积适合以下规律: 
(k +l)A =kA +lA (5.23) 
k(A +B)=kA +kB (5.24) 
k(lA)=(kl)A (5.25) 
1A =A (5.26) 
k(AB)=(kA)B =A(kB) (5.27) 
矩阵: 
kE = 
k 0 … 0 
0.0 
k.0 
….… 0.k 
é
.
êêêêê 
ù
.
úúúúú
(5.28) 
通常称为数量矩阵,如果A 是一个n×n 矩阵,那么有: 
kA =(kE)A =A(kE) (5.29) 
式(5.29)说明,数量矩阵与所有的n×n 矩阵作乘法是可交换的。
4.转置
把一矩阵A 的行列互换,所得到的矩阵称为A 的转置,记为A'或AT,确切的定义
如下:设
: 
A = 
a11 a12 … a1n 
a21 
. 
as1 
a22 
. 
as2 
….… 
a2n 
. 
asn 
é
.
êêêêê
ê 
ù
.
úúúúú
ú 
(5.30)

1 14 Python 人工智能实践 
所谓A 的转置是指矩阵
A'= 
a11 a21 … as1 
a12 
. 
a1n 
a22 
. 
a2n 
….… 
as2 
. 
asn 
é
.
êêêêê 
ù
.
úúúúú
(5.31) 
显然,s×n 矩阵转置是n×s 矩阵。矩阵的转置适合以下规律: 
(A')'=A (5.32) 
(A +B)'=A'+B' (5.33) 
(AB)'=B'A' (5.34) 
(kA)'=kA' (5.35) 
5.2.5 矩阵的应用
矩阵在模式识别算法中可以存放原始数据、距离矩阵,在参与运算时可存放中间数据
等,下面简要介绍一下。
1.存放原始数据
(1)灰度图像:用一个二维矩阵表示。
可以将一幅灰度图像存储在一个二维矩阵中,例如Amn 中存放一幅灰度图像,则矩阵
中每一个元素aij代表一个灰度值。可以对Amn 进行处理,如边缘提取、余弦变换等,处理
后将得到一个新的矩阵。
Amn = 
a11 a12 
a21 a22 
a13 … a1n 
a23 … a2n 
a31 
. 
a32 
. 
am1 am2 
a33 
. . a3n 
. 
am3 … amn 
é
.
êêêêêêê 
ù
.
úúúúúúú 
(5.36) 
(2)深度图像:用一个二维矩阵表示。
深度图像的生成方法为将三维数据各点垂直投影到一个固定平面,由此每个点在平
面上产生一个投影点,将各点到这个固定平面的距离转化为投影点的灰度值,最后使用线
性插值将各点灰度值规整到二维网格中。图5-2第二行为第一行中四个三维人脸对应的
深度图像。
图5-2 三维人脸深度图

115
第
5 
章 人工智能数学基础

(3)彩色图像:用三个二维矩阵表示。
每一个像素点由R、G、
B 
三个矩阵中对应的点表示。如图5-3中左上角第一个像素
点由R、G、
B 
三个矩阵中的(b11)表示。

r11,g11,


图5-
3 
R、G、
B 
三个矩阵表示一幅彩色图像

(4)三维数据:用四个二维矩阵表示。
该数据形式可将三维数据存储在四个大小相同的矩阵中,前三个矩阵(
X 
矩阵、
Y 
矩
阵、
Z 
矩阵)分别存储数据的三维坐标值,这三个矩阵中相同位置的点,例如[
X 
(j), 

i,
Y(j),Z(j)] 代表三维数据上一个点的空间位置坐标,如图5-4所示。第四个矩阵为

i,i,
有效点索引矩阵,白色部分索引值为1,黑色部分索引值为0。白色部分对应的前三个矩
阵中相同位置的点为有效点,而黑色部分则对应无效点。


图5-
4 
三维数据矩阵存储方式

这种存储格式有两个优点。其一可以表明各点的相对位置关系。其二这种数据形式
可以变换为点云形式与深度图形式,即将矩阵中的有效点按顺序存储在
N 
×3 的矩阵中, 
可以得到点云数据,将
Z 
矩阵中各点的值转化为深度值可得到数据的深度图。


1 16 Python 人工智能实践
2.距离矩阵
例如在使用主成分分析算法(PrincipalComponentAnalysis,PCA)时,使用降维的数
据集进行模式识别,将计算出的距离存储在距离矩阵中,通过分析距离矩阵中的数据,可
以得出识别率。例如,下面的距离矩阵为测试集每个样本到注册集每个样本的距离组成
的矩阵(本例的测试集与注册集中样本不同,而相同时的距离矩阵为对称矩阵),从矩阵中
可分析出测试集中第1个样本与注册集中第2个样本的距离最短,因此将其判为注册集
中第二个样本的所属类。
注册集gallery 
测试集probe 
0.2 0.4 0.63 
0.1 0.07 0.21 
0.23 0.6 0.3 
0.73 0.3 0.4 
0.43 0.73 0.34 
0.43 0.35 0.92 
0.5 
0.23 
0.32 
0.15 0.34 0.2 
0.78 0.45 0.43 
0.53 0.34 0.32 
0.34 0.35 0.3 
0.34 0.24 0.2 
0.43 0.39 0.2 
0.34 
0.76 
0.75 
0.43 0.54 0.44 0.36 0.39 0.1 0.4 
é
.
êêêêêêêêêê 
ù
.
úúúúúúúúúú 
3.参与计算
(1)求线性方程组的解。解线性方程,实质上是利用矩阵简化计算过程。
(2)解析几何中的坐标变换。如果只考虑坐标系的转轴(反时针方向转轴),那么平
面直角坐标的变换公式为: 
x =x'cosθ-y'sinθ 
y =x'sinθ+y'cosθ (5.37) 
其中θ 为x 轴与x'轴的夹角。显然,新旧坐标之间的关系完全可以通过公式中系数
所排成的2×2矩阵表示出来: 
cosθ -sinθ 
sinθ cosθ 
é
. êê
ù
. úú 
通常上面的矩阵称为坐标变换
x=x'cosθ-y'sinθ 
y=x'sinθ+y'cosθ
的矩阵。在空间的情形中,保持原点
不动的仿射坐标系的变换有公式: 
x =a11x'+a12y'+a13z' 
y =a21x'+a22y'+a23z' 
z =a31x'+a32y'+a33z' 
ì
.
í
.. 
..
(5.38) 
同样,矩阵: 
a11 a12 a13 
a21 a22 a23 
a31 a32 a33 
é
.
êêêê 
ù
.
úúúú 
称为式(5.38)变换矩阵。
(3)规划问题。在讨论国民经济的数学问题中也常常用到矩阵。例如,假设在某一
地区,某一种物资,比如说煤,有s 个产地A1,A2,…,As 和n 个销售地B1,B2,…,Bn ,那

第5 章 人工智能数学基础1 17 
么一个调运方案就可以用一个矩阵来表示: 
a11 a12 … a1n 
a21 
. 
as1 
a22 
. 
as2 
….… 
a2n 
. 
asn 
é
.
êêêêê
ê 
ù
.
úúúúú
ú 
其中aij表示由产地Ai 运到销售地Bj 的数量。具体算法可参照运筹学中的相关算法。
(4)最小二乘拟合。可以把统计的数据拟合成直线或者一些特定的曲线,其本质是
高维空间到低维空间的投影。
【例5.2】 求下列方程组的最小二乘解: 
0.84x1 +0.56x2 =0.37 
0.51x1 +0.36x2 =0.28 
0.71x1 +0.53x2 =0.43 
0.23x1 +0.75x2 =0.25 
ì
.
í
... 
...
(5.39) 
解:令
A = 
0.84 
0.51 
0.56 
0.36 
0.71 
0.23 
0.53 
0.75 
é
.
êêêêê 
ù
.
úúúúú
, B = 
0.37 
0.28 
0.43 
0.25 
é
.
êêêêê 
ù
.
úúúúú
(5.40) 
则原方程组可以表示为: 
A 
x1 
x2 
é
. êê
ù
. úú
=B (5.41) 
最小二乘解所满足的线性方程组为: 
ATA 
x1 
x2 
é
. êê
ù
. úú
=ATB (5.42) 
即
1.52x1 +1.20x2 =0.82 
1.20x1 +1.29x2 =0.73 (5.43) 
解方程组得: 
x1 =0.35 
x2 =0.24 (5.44) 
(5)信息压缩。例如传输视频时由于视频过大导致传输时间较长,因此可以对每一
帧图像进行压缩,可以利用矩阵的各类分解公式或变换来进行压缩,如矩阵的余弦变换, 
收到压缩后的数据进行解压,就可以得到所传输的视频。在压缩时会丢失一小部分数据, 
但不影响视频播放效果。
(6)n 维向量也可以看成矩阵的特殊情形。n 维行向量就是1×n 矩阵,n 维列向量
就是n×1矩阵。
4.图像处理
我们以灰度图像为例,将图像中的每一个像素点的灰度值存储在矩阵中,然后对矩阵