写在前面

人工智能学科是进来计算机科学领域热门学科,人工智能导论作为一门导论性课程,对我们对机器学习、人工智能、数据挖掘的概念了解还是十分有好处的。

虽然平时这门课没上几节,最后考试也不难,遂把期末复习的笔记整理发布出来,一方面可能有以后的学弟学妹可能有帮助,二来也是做一个小小的记录。

如果对人工智能感兴趣的话,还是十分推荐学弟学妹们平时多多听一点,其实基本概念并不难,不要像我一样,一开始就被吓唬住了。

推荐一些我复习过程中看的科普文章,可能对理解串联这些概念有所帮助:

知识点整理

老师给考点复习文档,晚上有一个比较全的答案,但是比较乱,下面是我自己整理的和我个人的笔记整理在一起了。

第一章 绪论

(这一章主要考的就是概念,背下就可以了,可能在简答题和填空题中考)

1.什么是人工智能?人工智能的意义和目标是什么?

人工智能是智能机器所执行的通常与人类智能有关的智能行为;

人工智能研究的近期目标是使现有的计算机不仅能做一般的数值计算及非数值 信息的数据处理而且能运用知识处理问题能模拟人类的部分智能行为。

2.完整的物理符号系统的基本功能
输入符号、输出符号、存储符号、复制符号 建立符号结构(通过找出各符号间的关系,在符号系统中形成符号结构)、 条件性转移(根据已有符号,继续完成活动过程)

3.人工智能有哪些主要学派?他们的认知观分别是什么?

心理学派, 认为人工智能源于数理逻辑。
生理学派,认为人工智能源于仿生学,特别是对人脑模型的研究。
控制论学派,认为人工智能源于 控制论。

4.人工智能的研究领域包括哪些?

数据挖掘、模式识别、机器视觉、自然语言处理、智能系统、专家系统、机器学习、神经 网络、机器人学、人工生命、智能 CAD、组合优化问题、自动定理证明、分布式人工智能 系统、智能通信等(背几个就行了)

5.什么是图灵测试? (这个不用背,理解了就好了,考了一个选择题)

让一位测试者分别于一台计算机和一个人进行交谈,而测试者事先并不知道哪一个被测者 是人,哪一个是计算机。如果交谈后测试者分不出哪一个被测者是人,哪一个是计算机, 则可以认为这台被测的计算机具有智能。

第二章 知识表示

(一些概念会考填空器,主要是考知识表示的两种方法:一阶谓词表示和语义网络表示)

1.知识的层次及其概念?(没考,理解了就很好背)
噪声-》数据-》信息-》知识-》元知识

数据:信息的载体和表示
信息:数据的语义
知识:把有关信息关联在一起形成的结构
元知识:有关知识的知识,是知识库的高层知识

2.知识的属性及引起不确定性的因素?(没考)

相对正确性
不确定性(引发因素:随机性、模糊性、不完全性、经验)
可表示性
可利用性

3.知识的分类?(没考)

按作用范围:常识性知识、领域性知识
按作用及表示:事实性知识、过程性知识、控制性知识
按结构及表现形式:逻辑性知识、形象性
按知识确定性:确定性知识、不确定性知识

4.什么是知识表示?(考了一个填空题)

就是知识的符号化形式化的过程,是研究用机器表示知识的可行性、有效性的一般方法,是一种数据结构与控制结构的统一体,既考虑知识的存储又考虑知识的使用。

5.常用的知识表示方法及其衡量标准?

  • 表示方法

    • 一阶谓词表示法
    • 产生式表示法
    • 框架表示法
    • 语义网络表示法
    • 面向对象表示法
    • 状态空间表示法
    • 问题规约表示法
  • 衡量标准

6.会用一阶谓词表示知识

三步走:

  1. 定义谓词P(x1,x2…)(表示的含义就是x1 是/属于 P。谓词 = 谓词名P+个体x1/x2(个体是一个常量/变量/函数整体))。首先谓词是什么?谓词就是命题的一种符号化形式。命题就是一句可以判断正误的陈述句(比如:老张是一名教师,谓词就是Teacher(LaoZhang))。
  2. 连接词(非) (或) (与) (蕴含) (等价) )和量词(全称量词∀和存在量词∃)连接各个谓词,形成谓词公式

举个例子:

Every dog has bitten a postman.

定义谓词

Dog(x) : x is a dog

Postman(y):y is a postman

Bite(x,y) x has bitten y

连接谓词:∀x∃yBite(Dog(x),Postmain(y))

7.会用语义网络表示知识

重要的理解语义网络,其实就是一个有向图。既然是有向图,一定有节点和有向边(弧)(表示两者的关系)。语义网络还多一个"无向边",表示节点的属性。

此外,节点不仅可以表示一个对象,还有两种特殊的节点:合取节点析取节点,通过和普通的对象节点使用有向边连接,可以表示并且或者的关系。

举个例子:
例如:与会者有男,有女,有年老的,有年青的。 (其中,A,B,C,D分别代表四种不同情况的会者)

8.会用框架表示知识

这里主要理解框架就可以了。

框架就是一种能数据结构,这种结构用来描述一个对象的属性。

框架结构如下:

举个例子:

  框架名:〈教师〉
      姓名:单位(姓、名)
      年龄:单位(岁)
      性别:范围(男、女)
      缺省:男
      职称:范围(教授,副教授,讲师,助教)
                     缺省:讲师
      部门:单位(系,教研室)
      住址:〈住址框架〉
      工资:〈工资框架〉
      开始工作时间:单位(年、月)
      截止时间:单位(年、月)

把具体信息填入框架的侧面,就得到了事例框架

    框架名:〈教师-1〉
               姓名:夏冰
               年龄:36
               性别:女
               职称:副教授
               部门:计算机系软件教研室
               住址:〈adr-1〉
               工资:〈sal-1〉
               开始工作时间:1988,9
               截止时间:1996,7

9.面向对象的基本特征及其表示

模块性、封装性、继承性、多态性、易维护性。

第三章 搜索和推理

1.搜索的分类?

首先我们得搞懂,搜索是什么?搜索不是指广义的搜索,而是问题的求解方式。

我们可以把问题看做一个图,一个图包含很多状态(节点)。解决问题就是搜索到目标状态

所以我们研究的搜索可以说是图搜索

  • 搜索方向

    • 数据驱动
    • 目的驱动
    • 双向搜索
  • 搜索策略(这个是我们要重点掌握的)

    • 盲目搜索(其实就是图的遍历,盲目就是说节点的权值是相同的,我们没用运用任何提示信息,告诉我们某条路径搜索成功的可能性更大,只是盲目的搜索所有可能的路径,判断是否是问题的解决)

      • 深度优先遍历
      • 宽度/广度优先遍历(层次遍历)
    • 启发式搜索(和上面相反,使用启发性信息使用估价函数给每个节点不一样的优先级(权重),这样能够减少搜索的时间)

      • A搜索算法
      • A*搜索算法

2.宽度优先与深度优先搜索算法过程的不同点

宽度优先

搜索过程中,我们需要定义了两个数据结构:

  • open表:存储这样的节点,节点已经被访问过,但是该节点的子节点(不包括孙子辈分的)没有被访问过
  • closed表:存储已经扩展过的节点。这里"扩展过"的意思就是,已经把该节点的子节点加入到open表了。具体可以看下面的例子。

比如在上面图中,我们需要搜索节点9,我们的操作过程是这样的:

我们先把0节点放到open表,表示从0开始访问,如果0是目标节点,结束。

否则把open表的第一个节点(0节点)放到closed表中,然后看0节点是否可以扩展(是否有子节点)。

如果可以扩展,就先把子节点(这里是1,2)放到open表的尾部,再判断该节点的子节点是不是目标节点。

如果不是,继续从opn表取出第一个节点重复上述操作(这里是先取出1放到closed表,然后把3,4,5依次放到open表尾部,然后再取出2,把6,7,8放到open表尾部,再取出3,把9,10放到open尾部,其中9是目标节点,结束搜索)

整个过程可以抽象成下面的流程图:

从上面过程可以看出,open表是一个队列结构,先进先出,每次都是把扩展的子节点放到open表末尾排队,每次取出队首的第一个元素。整个过程也是一层一层的遍历。

深度优先

理解了宽度优先过程,深度优先与前面区别就是每次把扩展的子节点放到open表的队首,每次取出队首的第一个元素。这其实一个栈的结构,后进先出

仍然以上面为例,说明过程:

一开始把0放入open,取出放入closed,扩展节点1,2放入open表队首。此时2在队首,取出2,扩展节点6,7,8放入队首,此时8在队首,取出放入closed,无法扩展,再次从open取出队首7,无法扩展,再次从open表去除6,无法扩展。

然后再从open取出队首1,把扩展节点3,4,5放入open表,取出5和4都无法扩展。再取出3,扩展节点9和10放入open,其中9是目标节点,结束搜索。

总结,两者区别如下:

宽度优先是队列结构

深度优先是堆栈结构

3.理解A*算法,能找出算法可扩展的节点数和最短路径?

前面也已经说过了,启发式搜索就是利用启发式信息通过估价函数,给每个节点确定代价。

A算法:每次扩展后的节点加入到open表中,都要按照估价函数,按代价从小到大,对open表的节点进行重新排序,然后取出队首的元素(代价最小的节点)。

估价函数为f(x) = g(x) + h(x)

  • f(x) 从初始结点经过x结点到达目的结点的路径的最小代价估计值
  • g(x)是初始节点到节点x的实际代价
  • h(x)是节点x到目标节点的最优路径的估计代价

举个例子

八数码问题也称为九宫问题。在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格,与空格相邻的棋子可以移到空格中。要求解决的问题是:给出一个初始状态和一个目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动步骤。

题目如下:

对于八数码问题来说,每个状态就相当于一个节点。

先把初始节点移入open表中,计算代价是4,然后移出队首元素进入closed表,看能否扩展(上图中深蓝色空格可以与相邻上、左、右交换),扩展出3个节点A、B、C(括号内是它的代价),排序后移入open表,每次取出代价最小的,即B节点,B节点又扩展D/E/F三个节点。D节点扩展C/H节点,与之前的E/F一起排序。

再从open表取出E节点,扩展I/J节点。以此类推……


A*算法:思想和上面一样,就是估价函数变化了一点。

4.理解产生式系统的推理方式?

知识库 + 推理机

这里介绍两个概念:

产生式

产生式重点是规则知识的表示,因为产生式系统其实就是一个专家系统,根据规则库来判定。

产生式系统分为三部分:

  • 规则库(用产生式表示的规则知识)
  • 综合数据库(包括事实库和中间产生一些结果)
  • 推理机(就是用来将已知事实根据规则库推理到另一个事实)

举个例子

规则库:如果一个人很帅,他的性格也一定不错(只是举个例子哈)

事实库:小明很帅

推理结果:小明性格也不错

5.规则推理的冲突消解方法?能根据要求进行简单的推理。

冲突发生条件是,一个事实匹配上了多个规则,这样就会得到多个结论。

处理冲突方法有:按针对性排序/按已知事实新鲜性排序/按匹配度排序/按条件个数排序/按上下文限制排序/按冗余限制排序/按领域问题的特点排序(这个背下来就可以了)

6.什么是不确定推理?

推理分为确定性推理和不确定推理。

很好理解,比如上面推理小明性格也不错,就是确定性推理,因为它基于确定性的规则

  • 确定性推理的方法有:自然演绎、归纳演绎、与/或型
  • 不确定推理方法有概率方法(经典概率、逆概率(贝叶斯公式,这个公式很简单,不要被名字吓到了),就是概率论的概率推导)、可信度方法(C-F模型)、模糊推理法

7.能求解证据和结论的不确定计算方法。

C-F模型

首先我们需要明确两个概念:不确定知识和模糊知识,这两个是不一样的。

举个例子:

小明很帅(概率是0.8,小明可能不帅,也可能帅)

小明比较0.8帅(帅的程度是0.8,小明一定很帅,但是不帅贼帅那种)

对于不确定知识,可信度表示是不确定知识真实(存在)的可能性

对于模糊知识,可信度表示的是模式知识存在的程度(已经肯定是存在的了)。


说完了可信度,那么C-F模型到底是什么东西?

C-F模型是特指对不确定知识可信度的符号化。 C-F全称是可信度因子(certainty
factor)。通过C-F模型(可信度)可以对不确定知识(规则)进行推理

C-F模型表示知识(规则)的不确定性

CF(H,E)的取值范围: [-1,1]。
若由于相应证据的出现增加结论 H 为真的可信度,则 CF(H,E)> 0,证据的出现越是支持 H 为真,就使CF(H,E) 的值越大。
反之,CF(H,E)< 0,证据的出现越是支持 H 为假,CF(H,E)的值就越小。
若证据的出现与否与 H 无关,则 CF(H,E)= 0。

反映前提条件与结论的联系强度。

举个例子:

IF 头痛 AND 流涕 THEN 感冒 (0.7)

C-F模型表示证据的不确定性

证据的可信度取值范围:[-1,1] 。
对于初始证据,若所有观察S能肯定它为真,则CF(E)= 1。
若肯定它为假,则 CF(E) = –1。
若以某种程度为真,则 0 < CF(E) < 1。
若以某种程度为假,则 -1 < CF(E) < 0 。
若未获得任何相关的观察,则 CF(E) = 0。

CF(头痛) = 0.7 即表示真的头痛的概率是0.7

组合证据的不确定性的计算

结论的不确定性的计算

多个结论的不确定性的合成

第二步的计算公式,不需要过分理解,直接背下来就可以,就是为了保证计算结果的值在定义[-1,1]范围内的前提下保证它的含义。


小结一下,C-F模型中2个表示,3个计算,如果你都会了,欧了,看下下面题目:

结论H有好几个,我们一个个求。


然后根据多个结论不确定性合成方法即可:

8.什么是模糊集与隶属度函数?

前面说了,不确定知识和模糊知识不一样。

C-F模型就是进行不确定知识推理,而模糊集就是用来解决模糊知识的推理的。

模糊集到底是什么东西?

就像名字所说的,模糊集就是一个集合。集合谁都学过。是相同元素的堆在一起。

对于模糊集合,就是一些对同一属性程度相似的元素集合。模糊集合讨论是论域(就是另一个大的元素集合)中的元素是属于该模糊集合的程度。

举个例子:有一个集合(论域)U={1,2,3,4,5}

模糊集合A含义是数字大的元素集合。

那么uA(1) = 0,uA(2)表示数字1和2不属于A集合,因为1和2不大。

uA(3) = 0.1 uA(4) = 0.6 uA(5) = 1 表示3、4、5属于模糊集合A,但是程度分别为0.1,0.6和1

其中uA(x) 就是论域中元素属于模糊集合A的隶属函数。其中0.1、0.6 这些数字叫做隶属度

换句话说,模糊集合和我们之前学的确定性元素集合不同。论域中每个元素都属于模糊集合(只要程度不为0即可),只是隶属的程度不同,我们用隶属函数来衡量论域中元素隶属该模糊集合的程度

模糊集合的表示方法

有模糊集合一定要有论域,这两个是分不开的,只讨论模糊集合没有意义。因为模糊集合就是讨论论域中的每个元素隶属模糊集合的程度。

一般用序偶表示法比较简单直接。

A={(3,0.1),(4,0.3),(5,0.6),(6,1)}

9.模糊集的计算和模糊关系的合成

模糊集的计算
  • 交、并、补(非)

这里模糊集合的表示方法和前面说的有一点变化,是Zadeh表示法,我们能看懂就行了。

交即对应元素的隶属度取最小值

并即对应元素的隶属度取最大值

补即元素的隶属度为1-原来的隶属度

结果为:

  • 代数运算(代数和、代数积、有界和、有界积)

什么叫代数运算,就是值运算呗,什么值,隶属度呗。即隶属度值的运算。

代数积,就是对应元素隶属度值直接相乘

代数和,同理,对应元素隶属度直接相加

有界和,其实也很好理解,先代数和,但是不能超过1,所以是min{1,代数和}

有界积,这个比较难理解,记住就行了。元素隶属度为 max{0,ua(x) + ub(x) - 1}


模糊关系

模糊关系就是两个模糊集合每个元素之间的关系。这种关系用矩阵表示。

为什么会有这个概念出现呢?

比如一个模糊集合表示身高高A = {(180,1),(175,0.8),(170,0.6)},另一个模糊集合表示体重重B={(160,1),(150,0.8),(140,0.7),(130,0.5)}

一般来说,身高高的人,体重也会重一点,两者有一定的模糊关系的。我们可以用模糊矩阵表示两种关系。

模糊矩阵的计算也很简单,就是A矩阵的转置 * B矩阵。就是简单的矩阵乘法,只不过把乘号变成(即取两个值的最小值)

模糊关系的合并

就是两个模糊矩阵的乘积,只不过把乘号变成(即取两个值的最小值),加号变成(即取两个值的最大值)

10.模糊综合评判方法及其求解方法(大题考了一题)

模糊推理

第四章 神经计算

1.神经网络模型的基本组成?

  • 神经元
  • 活化函数
  • 神经元之间的连接方式
神经元

这里的神经元是计算机中的概念。

  • 多输入单输出。
  • 传播的是脉冲信号,信号的强弱与脉冲频率成正比。

如下图就是神经元的数学模型:

其中的非线性函数就包括了活化函数和输出处理

活化函数

一般是非线性函数,对输入进行进一步的处理

2.理解感知器模型的二值逻辑运算

什么是感知器

了解这个之前,我们先了解什么是神经网络。神经网络就是很多个神经元相互连接成一个图状结构。

感知器就是一个多输入,单输出的一个结构。(是不是和神经元定义很像,一个神经元就可以看错一个简单的感知器)

感知器之所以感知,因为有一个学习的过程:

简单感知器模型

如下图就是一个简单感知器,其实就是一个神经元。

输入x1,x2,输出y。

其中w1,w2叫做权值。

感知器和神经网络的区别?

感知器可以说就是神经网络模型。

我们上面说的是简单感知模型,能够训练实现 的运算。

而BP神经网络就属于多层感知器模型。

多层感知器模型

在输入和输出层间加上一层或多层的神经元(隐层神经元),就可构成多层前向网络,这里称为多层感知器。

3.开发一个神经网络的基本阶段(步骤)?

  • 设计输入层和输出层,确定隐藏层及其结点
  • 归一化输入输出集合
  • 初始化权值
  • 选择活化函数
  • 网络学习/训练阶段
  • 网络工作阶段

4.理解Hebb学习规则、感知器学习规则及其梯度下降法学习规则

  • Hebb学习规则:是一种无监督学习规则,使网络能够提取训练集的统计特性(过程),从而把输入集按照他们相似程度分成若干类(结果)。什么是无监督学习?
  • 感知器学习规则:是一种线性分类器,以{前向神经网络}为主,不能处理线性不可分问题
  • 梯度下降学习规则:沿着梯度下降的方向一步一步的迭代求解,直到收敛,即为解

5.理解并会编写BP算法(不做要求)

第五章 计算智能(进化计算)

1.试述遗传算法的基本原理,并说明遗传算法的求解步骤。

遗传算法是什么?

一类借鉴生物界自然选择和自然遗传机制的随机搜索算法。

能解决什么问题?

非常适合处理传统搜索方法难以解决的复杂和非线性优化的问题。

步骤是什么?
  • 参数编码
  • 初始群里的确定
  • 适应度函数设计
  • 遗传操作设计
  • 确定终止规则

2.遗传算法的三个重要的操作算子及其作用?

  • 选择:优胜劣汰,使群体更快的收敛,维持种群的多样性
  • 交叉:增加物种的多样性
  • 变异:维护物种多样性,为选择、交叉过程中可能丢失的某些遗传基因进行修复和补充

3.会编写基本的遗传算法程序。(上机作业)

第六章 专家系统

1.专家系统的类型?

什么是专家系统

是一个具有专门知识和经验的程序系统,进行推理和判断,模拟人类专家的决策过程。解决那些需要人类专家处理的复杂问题。(前面说的产生式系统就是一种专家系统)

类型

有解释、诊断、预测、设计、规划、控制、监督、修理、教学、调试的类型

2.专家系统的基本组成?

分为6个部分,2个库(数据库、知识库),1个推理机,2个机构(解释机构、知识获取机构),1个接口

这个数据库包括我们需要推理的事实和中间产生的结果。

3.会编写小型专家系统。(上级作业)

其实就是根据规则库进行推理事实

4.专家系统与一般应用程序的不同

我们可以分成3个方面:

  • 编程思想:

    • 专家系统核心是 是知识库 + 推理机
    • 传统程序核心是 数据库结构 + 算法
  • 体系结构

    • 专家系统:知识单独形成知识库,与推理机分离
    • 传统程序:知识包含在程序中
  • 处理对象

    • 专家系统:符号
    • 传统程序:数组和数据

第七章 机器学习

1.什么是机器学习

机器学习也叫深度学习,是指计算机利用已有数据,得出某种模型,并利用模型预测未来。

(这个概率是不是和前面的感知器模型/神经网络很类似,确实,这两个概念有交叉的部分)

2.机器学习的范围

数据挖掘、统计学习、计算机视觉、语音识别、自然语言处理

期末考试说明

考试的话其实很简单,分为五个部分:

  • 填空题:和往年的考试的题目都是差不多了,学校可以买到前几年的卷子,把选择填空都做一遍就差不多了,考试的时候基本是原题。
  • 选择题:同上
  • 知识表示题:一般来说,只考一阶谓词表示和语义网络表示两种(把PPT上第二章相关的的例子都看了就没问题了)
  • 计算简答题:我们这次是考了两道计算和一道简答题。计算题分别是第三章的可信度推理和模糊决策(分别对应PPT第四章的61页和113页)
  • 神经网络:有两道计算题:

    • 第一题就是A搜索算法,其实不算神经网络的知识点的,可以看PPT第三章的37页,把例题中的宽度优先算法换成了A搜索算法(启发式搜索),最终也是求搜索树的。
    • 第二题是神经网络中的最简单的感知器模型的理解,给定了输入和权值以及活化函数,求最后的输出,这个很简单。

除此之外,可能考几个比较偏的在填空和选择题,但不会超过5分。比如神经网络的拓扑结构有哪两种。还有一个是与/或图搜索搜索的一个选择题

希望有所帮助

以上。

最后修改:2019 年 03 月 23 日
喜欢我的文章吗?
别忘了点赞或赞赏,让我知道创作的路上有你陪伴。