Python人工智能
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 由数学建模走进人工智能

无论是机器学习还是深度学习都需要数学建模思维,如果没有很好的建模思维,我们的项目就达不到所谓的智能。

1.1.1 数学建模

数学与数学建模有什么联系?我们都知道,在大学,如果要学习高等数学,那么必须学习微积分、定积分、线性代数、概率论等,这些都是建模的基础,建模没有对错,只有好或更好,所以基础肯定要有的。在有一定的数学基础后,还要会查资料,如各种论文,以了解最新的建模思维。只要熟练掌握数学基础,我们的建模思维能力就会很强,解决实际情况的方法就会很高效。

1. 数学与数学建模

下面先来举个简单的例子。

某个星级旅馆有150间客房,经过一段时间的经营实践,旅馆经理得到了一些数据:每间客房定价为160元时,入住率为55%;每间客房定价为140元时,入住率为65%;每间客房定价为120元时,入住率为75%;每间客房定价为100元时,入住率为85%。如果想让旅馆每天的收入最高,那么每间客房的定价应是多少?

假设问题:

(1)每间客房最高定价为160元。

(2)设随着房价的下降,入住率呈线性增长。

(3)设旅馆每间客房定价相等。

建立模型:

设房价为x,入住率为y,则总营业额=150xy

当房价差为20元时,入住率按-10%的比例变化,即(x-100)/(y-85)=20/(-10)= -2。

求解模型:

利用二次函数求解得,当y=67.5,x=135时,总营业额最高。为便于管理,取最接近值,即y=65,x=140。这时入住率为65%,营业额最高,即为13650元。

讨论与验证:

(1)容易验证此收入在各种已知定价对应的收入中是最大的。如果为了便于管理,定价为140元也是可以的,因为此时它与最高收入只差18.75元。

(2)假设定价为180元,入住率应为45%,相应的收入只有12150元,这说明假设问题(1)是合理的。

以上例子就是一个简单的数学建模,在这个例子中我们需要考虑的是:

(1)要做什么?

(2)怎么做?

(3)这样做合理吗?

(4)如果这样做,假设哪些可以改变?

(5)这样做需要用到哪些模型?

(6)这种模型简洁吗?

(7)确定了这些模型后,怎么求解?

(8)求解出来了,与现实吻合吗?

(9)在这个模型中,存在什么缺点及怎样去优化?

(10)总结。

这些都是需要我们考虑的,可能要用到大量数学计算,甚至涉及统计、经济学相关专业知识及专有软件的处理等,所以整个建模过程离不开数学知识。

2. 数学建模与人工智能

无论是数学建模还是人工智能,其核心都是算法,最终的目的都是通过某种形式来更好地为人类服务,解决实际问题。在研究人工智能过程中需要数学建模思维,所以数学建模对人工智能非常关键。

如图1-1所示为AI机器人通过模拟一个场景来展示人工智能与数学建模之间的关系。

假设某患者到医院就诊,在现实生活中,医生会根据病人的一系列体征与症状,判断病人患了什么病。医生会亲切地询问患者的症状,通过各种专项检查,最后进行确诊。而人工智能则考虑通过相应算法来实现上述过程,如德国的辅助诊断产品Ada学习了大量病例,用于辅助判断,提升医生诊病的准确率。

情景①:如果用数学建模方法解决问题,那么可以通过算法构建一个恰当的模型,也就是通过如图1-2所示的数学建模流程来解决问题。

图1-1 AI机器人

图1-2 数学建模流程

情景②:如果用人工智能方法解决问题,就要制造一个会诊断疾病的机器人。机器人如何才能精准诊断呢?这就需要利用人工智能技术手段,如采用一个“人工智能”算法模型,可能既用了机器学习算法,也用了深度学习算法,不管怎样,最终得到的是一个可以应用的疾病预测人工智能解决方案。让其具有思考、听懂、看懂、逻辑推理与运动控制的能力。

通过上面的例子可以看出,人工智能离不开数学建模。在解决一个人工智能问题的过程中,我们将模型的建立与求解进行了放大,以使其结果更加精准,如图1-3所示。

图1-3 AI数学建模流程的修正

可见,从数学建模的角度去学习人工智能不失为一种好方法。

3. 数学建模中的常见问题

在现实中,数学建模在实际操作上还有很多问题,主要表现在以下4个方面。

(1)常见的数学问题十分严谨,所给的条件一般都是不多不少、数据准确的,最后所得的结论是唯一的。而数学建模问题几乎就是生活中遇到的实际问题,问题背景复杂、条件多,而且实际生活中的许多实际问题结论并不唯一,如一些决策问题。

(2)常见的数学应用题的原始问题数学化的过程简单明了,不需要大量的数据计算。而数学建模问题需要对原始问题合理地进行分析和假设,利用数学工具和方法将其加工成抽象的数学问题,还要在仔细研讨问题材料的同时,进行紧张的思维活动,分析大量数据,找出规律,合理地简化问题。人们在数学建模过程中普遍感到问题烦琐,无从下手,考虑不周全,不知道用什么方法解答问题,对数据的处理能力也比较差,缺少数学建模意识。

(3)常见的数学应用题得到的结论很少需要思考是否与实际相符,以及其中的一些已知条件是否需要进一步调整和修改,进而结论也要相应修改。而数学建模问题必须通过已知模型的验证,不符的地方要再分析,然后修改之前的一些假设,重新求解,循环往复,直到与实际基本相符为止。

(4)常见的数学问题要独立完成,不鼓励与他人一起完成。而数学建模问题要求有团队精神,集体参与交流,需要团队成员各抒己见,扩展思路。

1.1.2 人工智能背后的数学

“数学是打开科学大门的钥匙”。数学基础知识蕴含着处理智能问题的基本思想与方法,也是理解复杂算法的必备要素。今天的种种人工智能技术归根到底都是建立在数学模型之上的,了解人工智能,首先要掌握必备的数学基础知识。

1. 线性代数的作用

事实上,线性代数不仅是人工智能的基础,而且是现代数学和现代数学作为主要分析方法的众多学科的基础。从量子力学到图像处理都离不开向量和矩阵的使用。而在向量和矩阵背后,线性代数的核心意义在于提供一种看待世界的抽象视角:世界万物都可以被抽象成某些特征的组合,并在预置规则定义的框架下以静态和动态的方式加以观察。

从着重于抽象概念的解释而非具体的数学公式的角度来看,线性代数有如下要点:线性代数的本质在于将具体事物抽象为数学对象,并描述其静态和动态的特性;向量的实质是n维线性空间中的静止点;线性变换描述了向量或作为参考系的坐标系的变化,可以用矩阵表示;矩阵的特征值和特征向量描述了变化的速度与方向。

换言之,线性代数之于人工智能如同加法之于高等数学,是一个基础工具集。

2. 什么是统计量

统计量是统计理论中用来对数据进行分析、检验的变量,下面介绍一些常用的统计量。

总体,是人们研究对象的全体,又称母体,如工厂一天生产的全部产品(按合格品及废品分类)、学校全体学生的身高,等等。

总体中的每一个基本单位称为个体,个体的特征用一个变量(如x)来表示。例如,如果一件产品是合格品,则记作x=0;如果是废品,则记作x=1;一个身高为165cm的学生,记作x=165。

从总体中随机产生的若干个体的集合称为样本或子样,如n件产品、80名学生的身高,或者一根钢轴直径的8次测量值。实际上这就是从总体中随机取得的一批数据,不妨记作,其中n称为样本容量。

简单地说,统计的任务是由样本推断总体。

假设有一个容量为n的样本(即一组数据),记作,需要对它进行一定的加工,才能提出有用的信息,用作对总体(分布)参数的估计和检验。统计量就是加工出来的、反映样本数量特征的函数,它不含任何未知量。

下面我们介绍几种常用的统计量。

(1)表示位置的统计量——算术平均值和中位数。

算术平均值(简称均值)描述数据取值的平均位置,记作

中位数是将数据由小到大排序后位于中间位置的那个数值。

(2)表示变异程度的统计量——标准差、方差和极差。

标准差s定义为

它是各个数据与均值偏离程度的度量,这种偏离不妨称为变异。

方差是标准差的平方s2

极差是的最大值与最小值之差。

在标准差s的定义式中,对n的平方求和,却被(n-1)除,是出于无偏估计的要求。

(3)中心矩,表示分布形状的统计量——偏度和峰度。

随机变量xr阶中心矩为。随机变量x的偏度和峰值,指的是x的标准化变量的三阶中心矩和四阶中心矩,具体如下:

偏度反映分布的对称性,v1>0称为右偏态,此时位于均值右边的数据比位于左边的数据多;v1<0称为左偏态,情况相反;而v1接近于0时,则可认为分布是对称的。

峰度是分布形状的另一种度量,正态分布的峰度为3,如果v2比3大得多,则表示分布有沉重的“尾巴”,说明样本中含有较多远离均值的数据,因而峰度可以用作衡量偏离正态分布的尺度之一。

3. 数理统计基础知识

在人工智能的研究中,数理统计同样不可或缺。基础的统计理论有助于对机器学习的算法和数据挖掘的结果做出解释,只有做出合理的解读,数据的价值才能够体现。数理统计根据观察或实验得到的数据来研究随机现象,并对研究对象的客观规律做出合理的估计和判断。

实际上,数理统计可以看成逆向的概率论。数理统计的任务是根据可观察的样本反过来推断总体的性质;推断的工具是统计量,统计量是样本的函数,是个随机变量;参数估计通过随机抽取的样本来估计总体分布的未知参数,包括点估计和区间估计;假设检验通过随机抽取的样本来接受或拒绝关于总体的某个判断,常用于估计机器学习模型的泛化错误率。

(1)互斥事件与对立事件。

互斥事件与对立事件相对来说比较好理解:不可能同时发生的事件叫互斥事件,其中必有一个发生的互斥事件叫对立事件。如果用概率的形式表示事件A与事件B互斥,则表示为。事件A与事件B对立,即。它们的关系是:对立事件一定是互斥事件,互斥事件不一定是对立事件。

(2)相对独立事件。

AB是两个随机事件,如果,则称事件AB相互独立(简称独立)。设n个事件,如果对任意的都有

成立,则称n个事件相互独立。

(3)独立事件与互斥事件。

独立事件与互斥事件是概率学中的两个基础概念,也是容易混淆的概念,下面通过一个实例来阐述这两个概念的关系。

抛掷一颗骰子,记A为“落地向上的数为奇数”事件,B为“落地向上的数为偶数”事件,C为“落地向上的数为3的倍数”事件,D为“落地向上的数为大于3的数”事件,E为“落地向上的数为7”事件。判断事件ABACBCADAE是互斥事件、对立事件,还是相互独立事件。

解析:根据骰子可能存在的点数,整理如下。

最终得到的结论如表1-1所示。

表1-1 抛掷骰子结论表

通过上面的实例,可以归纳得到以下3点结论。

① 对于事件AB,如果它们所含结果组成的集合彼此互不相交,则它们为互斥事件,其意义为事件AB不可能同时发生。

② 对于事件AB,如果,则AB为相互独立事件,其意义为,当事件A(或B)发生时,事件B(或A)发生的概率不受影响。从集合角度看,如果,则事件AB所包含的结果一定相交。

③ 如果AB为相互独立事件,则AB均为相互独立事件,事件为互斥事件。

对立事件与互斥事件存在如下关系。

① 对于事件AB,如果AB至少有一个为不可能事件,则AB一定互斥,也一定相互独立。

② 对于事件AB,如果P(A)、P(B)至少一个为0,则AB一定相互独立,AB可能互斥,也可能不互斥。

③ 对于事件AB,如果P(A)、P(B)都不为0:

• 如果AB相互独立,则AB一定不互斥;

• 如果AB互斥,则AB一定不相互独立;

• 如果AB不相互独立,则AB可能互斥也可能不互斥;

• 如果AB不互斥,则AB可能独立也可能不独立。

(4)随机变量。

随机变量是概率论中另一个重要概念。引进随机变量的概念后,可把对事件的研究转化为对随机变量的研究。由于随机变量是以数量的形式来描述随机现象的,所以它给理论研究和数学运算都带来了极大的方便。

设随机实验E的样本空间Ω,如果对每一个样本点e,都有一个实数X与之对应,则称X为随机变量。

随机变量分为连续型随机变量和离散型随机变量。

① 离散型随机变量所取的可能值是有限多个或无限可列个。

② 连续型随机变量所取的可能值可以连续地充满某个区间。

4. 概率论

除线性代数外,概率论也是人工智能研究中必备的数学基础。在数据爆炸式增长和计算力指数化增强的今天,概率论已经在机器学习中扮演了核心角色。

同线性代数一样,概率论也代表了一种看待世界的方式,其关注的焦点是无处不在的可能性。频率学派认为先验分布是固定的,模型参数要靠最大似然估计计算;贝叶斯学派认为先验分布是随机的,模型参数要靠后验概率最大化计算;正态分布是最重要的一种随机变量的分布。

(1)伯努利分布。

伯努利分布是一个离散型分布,记作X~Bernoulli(p)。在介绍伯努利分布前,首先需要引入伯努利试验(Bernoulli Trial)。伯努利试验是只有两种可能结果的单次随机试验。例如,伯努利分布的典型例子是扔一次硬币的概率分布:硬币正面朝上的概率为p,而硬币反面朝上的概率为q

伯努利分布(Bernoulli Distribution)是两点分布或0~1分布的特殊情况,即它的随机变量只取x=0(失败)或x=1(成功),各自的概率分别为1-pp

其概率质量函数为

数学期望等于p,方差等于p(1-p)。

(2)二项分布。

二项分布是n重伯努利分布。在同一条件下重复n次独立重复试验,每次试验只有两个对立结果,A发生或不发生,设A发生的概率为p,不发生的概率为1-p。这时,在n次独立试验中,A出现的次数k是一个随机变量,且有

则称该分布为二项分布,记为XB(n,p)。二项分布的数学期望和方差分别为npnp(1-p)。

(3)多项式分布。

把二项扩展为多项就得到了多项分布,记作X~Multinomial(n,p)。例如,掷骰子,不同于掷硬币,骰子有6个面,对应6个不同的点数,这样单次每个点数朝上的概率都是(对应,它们的值不一定都是,只要和为1且互斥即可,如一个形状不规则的骰子),重复掷n次,有k次点数6朝上的概率就是

以上介绍的都是离散型的概率分布。

(4)高斯分布

高斯分布又名正态分布,是一个在数学、物理及工程等领域都非常重要的连续型随机变量概率分布,在统计学的许多方面有着重大的影响力。

如果随机变量X服从一个数学期望为μ、标准方差为σ的高斯分布,记为,对应的概率密度公式为

特别地,当μ=0、σ=1时,称X为标准正态分布,记作XN(0,1),此时,其概率密度用φ(x)表示,即有

高斯分布是现实生活中常见的分布形态,也是我们在使用朴素贝叶斯模型中常用的分布。

5. 矩阵的相关知识

为了理解与人工智能相关的算法原理,需要了解一些高等数学与线性代数的知识,如果想把学术上的算法用代码实现,则需要有比较好的数学基础,以下介绍人工智能中比较常用的矩阵知识。

1)矩阵概念

在算法场景中,经常提及矩阵,也经常在函数方法中使用,一般当关键字涉及matrix、array时,多是在处理矩阵形式数据。下面通过现实中的一个实例进行讲解。

在生产活动和日常生活中,常用数表表示一些量或关系,如工厂中的产量统计表、市场上的价目表,等等。例如,某户居民第二季度每个月水(吨)、电(千瓦时)、天然气(立方米)的使用情况,可以用一个3行3列的数表来表示,即

由上面的例子可以看到,对不同的问题可以用不同的数表来表示,我们将这些数表统称为矩阵。

m×n个数,排列成mn列,并以方括号(或圆括号)表示为

我们将其称为mn列矩阵,简称m×n矩阵,矩阵通常用大写字母A,B,C,…表示。记作

其中表示矩阵A的第i行第j列元素。特别地,当m=1时,即

称其为行矩阵,又称为行向量。当n=1时,即

称其为列矩阵,又称为列向量。当m=n时,即

称其为n阶矩阵,或n阶方阵。

下面我们介绍两种特殊的矩阵形式。

(1)零矩阵。

零矩阵常常用于在算法中构建一个空矩阵,其形式为

所有元素全为0的m×n矩阵称为零矩阵,记作Om×nO

(2)单位矩阵。

单位矩阵往往在运算中担任“1”的作用,其形式为

对角线上的元素是1,其余元素全部是0的n阶矩阵称为n阶单位矩阵,记作InI

2)矩阵运算

(1)矩阵的相等。

如果两个矩阵满足以下条件,则称矩阵A与矩阵B相等,记作A=B

① 行数、列数相同,即m=sn=p

② 对应元素相等,即

另外,用等式表示两个m×n矩阵相等,等价于元素之间的m×n个等式,例如

那么A=B,当且仅当

假设矩阵C

因为BC这两个矩阵的列数不同,所以无论矩阵C中的元素取什么数都不会与矩阵B相等。

(2)加法。

是两个m×n矩阵,则称矩阵

AB的和,记作

由定义可知,只有行数、列数分别相同的两个矩阵,才能进行加法运算。

同样地,可以定义矩阵的减法。

我们称DAB的差。

(3)数乘。

设矩阵λ为任意实数,若矩阵λ与矩阵A的数乘,则有,记作C=λA

由定义可知,λ乘一个矩阵A,需要用λ去乘矩阵A的每一个元素。特别地,当λ=-1时,λA=-A,得到A的负矩阵。

(4)乘积。

是一个m×s矩阵,是一个s×n矩阵,则称m×n矩阵为矩阵AB的乘积,记作C=AB。其中

由乘积定义可得出以下结论。

• 只有当左矩阵A的列数等于右矩阵B的行数时,AB才能进行乘法运算AB

• 两个矩阵的乘积AB也是矩阵,它的行数等于左矩阵A的行数,它的列数等于右矩阵B的列数。

• 乘积矩阵AB中的第i行第j列的元素等于A的第i行与B的第j列对应元素的乘积之和,因此简称其为行乘列的法则。

(5)转置。

将一个m×n矩阵的行和列按顺序互换得到的n×m矩阵称为A的转置矩阵,记作AT

由定义可知,转置矩阵AT的第i行第j列的元素,等于矩阵A的第j行第i列的元素,简记为

矩阵的转置满足下列运算规则:

6. 最优化理论

从本质上讲,人工智能的目标就是最优化:在复杂环境与多体交互中做出最优决策。几乎所有的人工智能问题最后都会归结为一个优化问题的求解,因而最优化理论同样是人工智能必备的基础知识。最优化理论研究的问题是判定给定目标函数的最大值(最小值)是否存在,并找到令目标函数取到最大值(最小值)的数值。如果把给定的目标函数看成一座山脉,最优化的过程就是判断顶峰的位置并找到到达顶峰路径的过程。

7. 信息论

近年来的科学研究不断证实,不确定性就是客观世界的本质属性。不确定的世界只能使用概率模型来描述,这促成了信息论的诞生。信息论使用“信息熵”的概念,对单个信源的信息量和通信中传递信息的数量与效率等问题做出了解释,并在世界的不确定性和信息的可测量性之间搭建起一座桥梁。

换言之,信息论处理的是客观世界中的不确定性;条件熵和信息增益是分类问题中的重要参数;KL散度用于描述两个不同概率分布之间的差异;最大熵原理是分类问题汇总的常用准则。

8. 形式逻辑

通俗地说,理想的人工智能应该具有抽象意义上的学习、推理与归纳能力,其通用性将远远强于解决国际象棋或围棋等具体问题的算法。

如果将认知过程定义为对符号的逻辑运算,则人工智能的基础就是形式逻辑;谓词逻辑是知识表示的主要方法;基于谓词逻辑系统可以实现具有自动推理能力的人工智能;不完备性定理向“认知的本质是计算”这一人工智能的基本理念提出挑战。