人工智能导论期末复习合集
AI导论知识点目录
〇、绪论
重点:人工智能定义、人工智能研究内容(了解、理解即可)
一、知识的概念
重点:知识的概念、知识的表示
知识是人们在长期的生活及社会实践中、在科学研究及实验中积累起来的对客观世界的认识与经验。
知识的形式:事实、因果关联
知识的特性:相对正确性(明确前提)、不确定性(真假之外)、可表示性(形式描述)、可利用性(学以致用)
练习题
- 知识的概念
二、基本搜索
2.1 状态空间法
· 状态:表示问题解法中每一步问题状况的数据结构
· 操作:状态变换的手段
· 状态空间:表示问题全部可能状态及其关系的图
· 状态空间的解:从初始状态到目标状态的操作算子序列
2.2 无信息搜索
只按预定的控制策略进行搜索,在搜索过程中获得的中间信息不会用来改进控制策略。
每个节点的分支数为b,最浅解位于第s层,搜索空间共m层。
2.2.1 宽度优先搜索【队列】
时间复杂度:O( b s b^s bs)
空间复杂度:O( b s b^s bs)
具有完备性、最优性
2.2.2 深度优先搜索【栈】
时间复杂度:O( b m b^m bm)
空间复杂度:O( b m bm bm)
可能不具有完备性(图有环时需进行约束)、不具有最优性(最左的解)
2.2.3 一致代价搜索【优先队列】
解代价为
C
∗
C^*
C∗,边最小代价为
ε
ε
ε
时间复杂度:O( b C ∗ / ε b^{C^*/ε} bC∗/ε)
空间复杂度:O( b C ∗ / ε b^{C^*/ε} bC∗/ε)
具有完备性、最优性
练习题
- 一致代价搜索的终止条件:
- 无信息搜索
2.3 启发式搜索
在搜索中加入了与问题有关的启发性信息,用于指导搜索朝着最有希望的方向进行,加速问题的求解过程并找到最优解。
2.3.1 贪婪搜索【优先队列】
搜索策略: 拓展看起来离目标最近的节点
评估函数:
f
(
n
)
=
h
(
n
)
f(n)=h(n)
f(n)=h(n)【
h
(
n
)
h(n)
h(n)表示从
n
n
n节点到目标节点最佳路径的估计代价】
最坏情况下退化为DFS,时间复杂度为O( b m b^m bm)
空间复杂度:O( b m b^m bm)【存储所有节点的信息】
不具有完备性和最优性
2.3.2 A*搜索【优先队列】
搜索策略: 避免拓展耗费已经很大的路径
评估函数:
f
(
n
)
=
g
(
n
)
+
h
(
n
)
f(n)=g(n)+h(n)
f(n)=g(n)+h(n)【g(n)表示初始节点到n节点的实际代价、h(n)表示估计代价】
- 可纳性
如果对任意节点 𝑛 𝑛 n, h ( n ) ≤ h ∗ ( n ) h(n)≤h^*(n) h(n)≤h∗(n)成立, 则启发式函数是可纳的(admissible), 其中, h ∗ ( n ) h^*(n) h∗(n)是结点 𝑛 𝑛 n到目标状态的真实代价。
定理:若 h ( n ) h(n) h(n)可纳,则A*搜索算法具有最优性。
- 一致性(一致->可纳)
若对于任意节点 n n n和通过操作 a a a生成的后续节点 n ′ n' n′,则 h ( n ) ≤ c o s t ( n , a , n ′ ) + h ( n ′ ) h(n)≤cost(n,a,n')+h(n') h(n)≤cost(n,a,n′)+h(n′)成立,则启发式函数是一致的
定理:若 h ( n ) h(n) h(n)一致,则A*搜索算法具有最优性。
-
优势性
对于任意节点 n n n,可纳启发式函数 h 1 ( n ) < h 2 ( n ) h_1(n)<h_2(n) h1(n)<h2(n) ,称 h 2 h_2 h2优于 h 1 h_1 h1 -
最优性
假设A是最优目标节点,B是次优节点,则A比B更早被搜索。
-
A*算法性能分析
b b b表示每个节点的后继节点数, d d d表示解的深度, ε ε ε表示相对误差 h ∗ − h h ∗ \frac{h^*-h}{h^*} h∗h∗−h , h ∗ h^* h∗为真实代价, h h h为估计代价
最坏时间复杂度:O( b ε d b^{εd} bεd)
空间复杂度:O( b m b^m bm) -存储所有节点的信息
启发式函数设计
- 问题松弛化
八数码问题:棋子可以从方格A->方格B,如果A与B水平或竖直相邻且B为空。
去掉相关条件,形成松弛问题:
A与B相邻,棋子可从A移到B(距离)
如果B空,棋子可从A移动B
棋子可从A移动到B(不在位)
-
子问题分解
原问题分解为多个子问题,考虑子问题的解代价。 -
模式数据库
存储子问题模式解代价,从目标反向搜索计算模式代价,针对子问题,查找模式数据库。 -
从经验中学习
总结
- A * 算法综合了后向路径代价和前向估计代价;
- 如果启发式函数可纳/一致, A*是最优的;
- 启发式函数设计是关键,应选具有优势的启发式函数。
练习题
- A*搜索
- 修道士问题(M-C问题)
- 各种搜索算法的搜索过程
三、约束满足问题
3.1 回溯法
以N皇后问题为例,从初始状态开始,按行逐一摆放皇后,遇到矛盾时返回上一状态,重新摆放皇后。
由此,搜索空间是一棵搜索树,直至搜索至第N层即可找到可行解。
回溯搜素 = DFS + 变量分配【每次一个变量】 + 约束检查【考虑与前面分配不冲突的变量值】
具有完备性
具有最优性
时间复杂度:O(N!)
空间复杂度:O(N)
3.2 排序策略
3.2.1 最少可取值
(对节点排序,每次选择值域最少可取值的变量)
3.2.2 度启发式
(对节点排序,每次选择度最大的变量)
3.2.3 最少约束值
(对颜色排序,选择给近邻变量留下更多选择的值)
3.3 推理策略
3.3.1 约束传播-局部相容性
- 节点相容(单个变量值域的所有取值满足其一元约束)
- 边相容(满足所有的二元约束)
- 若X去除某个值,X的近邻需要再次检查,边相容比前向检查更早检测出错误
- 路径相容(通过观察变量得到隐式约束来加强二元约束)
- …k阶相容
- 强k阶相容(k-1,k-2,…,1也相容,无需回溯就可求解问题)
3.3.2 智能回溯
- 搜索失败时返回前一个变量,尝试另一个值,回溯到哪个变量?
3.3.3 前向检查
3.4 问题结构特性
极端情况:大问题由独立子问题构成,独立子问题可认为是约束图的连接组件(连通子图)
3.4.1 树状约束满足问题-图转树
-
变量(拓扑排序):
选择一个根变量,对变量进行排序,先父母后孩子。
两变量最多有一条路径,所以n个结点的树有n-1条边。 -
边相容:
应用Remove Inconsistent(Parent( X i X_i Xi), X i X_i Xi) -
变量分配:
对于 i = 1 : n i = 1:n i=1:n,相容地分配 X i X_i Xi
练习题
3.5 局部搜索
优点
- 通常只用常熟级的内存
- 通常能在标准约束满足算法不适用的很大或无限的(连续的)状态空间中找到合理的解
- 对于解决纯粹的最优化问题十分有用,其目标是根据目标函数找到最佳状态
- 如果存在解, 最优的局部搜索算法可找到全局最大/最小值
CSP局部搜索
- 初始变量分配违反一些约束
- 重新分配变量值
基本思想
变量选择:随机选择任何有冲突的变量
值选择:最小冲突启发式
- 选择一个违反最少约束的值
- 爬山法——启发式信息h(n)=违反约束的总数
- 其他局部搜索方法:模拟退火、局部束搜索
3.5.1 爬山法
从任意初始状态开始,每次移动到最好的近邻状态,若无近邻状态比当前更好,则退出循环,得到爬山法的解。
- 不具有完备性
- 不具有最优性
- 时间复杂度较低
- 空间复杂度:O(N)
- 可从任意地方开始
- 重复:移动到最好的近邻状态
- 若无近邻状态比当前更好,则退出
无最优性的概念,不具有完备性。
特点:速度快,但易于陷入局部最优。
改进爬山法
- 随机爬山法:概率随机选择下一步,可能找到更好的解
- 首选爬山法:随机直至选到优于当前的结点,后继多时较好
- 随机重启爬山法:多次尝试,算法完备性的概率接近1
3.5.2 模拟退火
在爬山法的基础之上,允许“下山”动作跳出局部最优解,从而能有更大概率找到全局最优解。
- 不具有完备性
- 具有最优性
- 时间复杂度比爬山法高
- 空间复杂度:O(N)
3.5.3 局部束搜索
从k个随机生成的状态开始,每一步全部k个状态的所有后继被生成。如果其中有一个是目标状态,则算法停止;否则从整个所有后继列表中选择k个最佳后继,重复直至达到目标状态。
- 不具有完备性
- 不具有最优性
- 时间复杂度比爬山法高
- 空间复杂度:O(N)
(随机)束搜索:
在所有后继列表中随机选择k个后继,其中选中概率是状态值的递增函数,类似于自然选择。
3.5.4 遗传算法
遗传是随机束搜索的一个变形。把两个父状态结合(选择、交叉、变异)来生长后继,而不是通过修改单一状态进行。
- 具有完备性
- 具有最优性
- 时间复杂度比爬山法高
- 空间复杂度:O(N)
练习题
-
回溯算法优化方法有哪些,其主要思想是什么,可以带来哪些好处?
-
编程实现N皇后回溯搜索算法,至少采用一种优化策略加速搜索过程。
-
实现N皇后至少一种局部搜索方法,并分析其算法的性能(四个搜索算法评价指标)。
四、对抗搜索
4.1 Minimax
搜索:自顶向下
计算:自底向上
搜索方法:类似DFS
时间复杂度:O(
b
m
b^m
bm)
空间复杂度:O(
b
m
bm
bm)
面临问题:搜索空间巨大
4.2 Alpha-Beta剪枝
一种找到最佳minimax步骤的方法,同时可以避免搜索不可能被选择的步骤的子树。
Alpha:可能步骤的最大下界
Beta:可能步骤的最小上界
任何新节点被认为是可能路径节点 当且仅当
α
≤
V
a
l
u
e
(
N
)
≤
β
α≤Value(N)≤β
α≤Value(N)≤β
剪枝性质:
- 剪枝不影响根节点Minimax值
- 中间节点值可能不同
- 子节点的次序影响剪枝效率
- 最好时间复杂度:O( b m / 2 b^{m/2} bm/2)
4.3 优化
- 减少搜索范围
- 设置下棋风格
- 利用多线程
- 增大搜索层数
- 使用置换表
- 启发式搜索
- 自学习
- 蒙特卡洛树搜索(多次模拟博弈,并尝试根据模拟结果预测最优的移动方案)
练习题
五、贝叶斯推理
5.1 推理(参考离散数学)
5.2 贝叶斯推理(概率论与数理统计回顾)
- 联合分布
- 边缘分布
- 去除联合分布中变量的子表
- 边缘化:累加去除变量后的行
- 条件概率
P ( x ∣ y ) = P ( x , y ) p ( y ) P(x|y) = \frac{P(x,y)}{p(y)} P(x∣y)=p(y)P(x,y) - 全概率公式
P ( A ) = ∑ i P ( B i ) P ( A ∣ B i ) P(A) = \sum_i{P(B_i)P(A|B_i)} P(A)=i∑P(Bi)P(A∣Bi) - 链式规则
P ( x 1 , x 2 , x 3 ) = P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 1 , x 2 ) P ( x 1 , x 2 , . . . , x n ) = ∏ i P ( x i ∣ x 1 . . . x i − 1 ) P(x_1,x_2,x_3) = P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)\\ P(x_1,x_2,...,x_n)=\prod_iP(x_i|x_1...x_{i-1}) P(x1,x2,x3)=P(x1)P(x2∣x1)P(x3∣x1,x2)P(x1,x2,...,xn)=i∏P(xi∣x1...xi−1) - 贝叶斯规则
P ( A , B ) = P ( A ∣ B ) P ( B ) P ( A , B ) = P ( B ∣ A ) P ( A ) P ( A ∣ B ) = P ( B ∣ A ) P ( B ) P ( A ) P(A,B)=P(A|B)P(B)\\ P(A,B)=P(B|A)P(A)\\ P(A|B)=\frac{P(B|A)}{P(B)}P(A) P(A,B)=P(A∣B)P(B)P(A,B)=P(B∣A)P(A)P(A∣B)=P(B)P(B∣A)P(A)
后验 \qquad 调整因子 \qquad 先验
-
条件独立
∀ x , y , z : P ( x , y ∣ z ) = P ( x ∣ z ) P ( y ∣ z ) \forall x,y,z:P(x,y|z)=P(x|z)P(y|z) ∀x,y,z:P(x,y∣z)=P(x∣z)P(y∣z)
【给定z,x条件独立于y】 -
贝叶斯网络=图拓扑结构+局部条件概率
练习题
- 利用贝叶斯公式解决问题
- 利用概率公式解决问题
- 推理问题
六、专家系统
【重点】启发性、知识库、属性约简、决策规则
6.1 基本概念
练习题
七、机器学习
【重点】机器学习概述、研究内容、基本概念
7.1 机器学习概述
机器学习(Machine Learning):致力于研究如何通过计算的手段,利用经验来改善系统自身的性能–(周志华-机器学习)
形式定义:假设用P来评估计算机程序在某任务类T上的性能,若一个程序通过利用经验E在T中任务上获得了性能改善,则程序对E进行了学习
经验:数据驱动,概率、统计和优化方法
学习算法:从数据中产生“模型”的算法
7.2 相关问题
7.3 研究内容
有监督学习
任务:给定一组带类别标记信息的数据,如何训练有效的模型对未知类别的数据进行预测(有师学习)
标记信息:离散型(分类),连续型(回归)
常见有监督算法:
线性回归
线性判别分析
朴素贝叶斯
决策树
支持向量机
神经网络
K近邻
无监督学习
任务:给定一组无类别信息的数据,如何训练模型推断出数据的一些内在结构信息(无师学习)
常见无监督算法:
k-means
Fuzzy k-means
DBSCAN
谱聚类
层次聚类
PCA
NMF
PageRank
半监督学习
任务:给定少量有类别信息和大量无类别信息的数据,如何训练模型进行预测或推断出数据的一些内在结构
常见半监督算法:
主动学习
协同学习
分岐模型
图模型
半监督SVM
半监督聚类
研究内容
7.4 基本概念
假设空间
演绎与归纳:科学推理的两在基本手段
归纳学习:“从样例中学习”–特殊到一般的“泛化”(generalization)过程,机械学习
假设空间:多个与训练集一致的“假设”(hypothesis)集合
奥卡姆剃刀(Occam‘s razor):若有多个假设与观察一致,则选最简单的那个-假设也即模型
模型评估与选择
错误率(error rate): 分类错的样本数目占样本总数的比率;相应地,可定义精度(accuracy),即精度=1-错误率
误差(error): 模型的预测输出与样本的真实输出之间的差异
训练误差(training error):模型在训练集上的误差
泛化误差(generalization error):模型在新样本上的误差
泛化误差小,但预测样本未知,实际只能使训练误差小
数据集的划分
1) 留出法
2)交叉验证法(cross validation)
3)验证集(validation set)—— 调参
性能度量
练习题
-
[1] 影响模型泛化性能的因素在哪些?
-
[2] 例举一个机器学习的应用,并尝试分析其背后的技术。
八、维度约简
【重点】维度约简概述、特征选择、过滤式方法、互信息特征选择
8.1 概述
高维特征数据可能存在不相关的特征,特征之间也可能存在相互依赖,引起维数灾难问题:
维度约简:机器学习领域中一个重要的研究方向,是一种在保持数据某种特性情况下去除无关和冗余特征的过程
特征变换:高维特征空间映射至低维空间
• 将原始高维特征空间进行空间变换
• 选择变换后重要的且冗余性小的特征构建低维空间
特征选择:去除无关和冗余特征/保留有用特征
• 选择的特征应与分类/预测任务强相关
• 选择的特征彼此之间冗余性小
8.2 特征选择(不考)
特征选择:其目标是保留用于学习的相关特征并去除冗余和不相关的特征从而达到减少特征个数,提高模型精确度,减少运
行时间的目的
一般过程:特征子集选择,评价函数,停止准则,验证过程
常见的特征选择方法大概可以分为三种:
过滤式
过滤式方法:先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习过程相互独立
思路:对每一维的特征打分,即给每一维的特征赋予权重,这样的权重就代表该维特征的重要性,然后依据权重排序
主要方法:
• 相关系数
• 卡方检验
• 信息增益,互信息
过滤式方法根据其对特征评价的方式可分为:特征排序(Feature Ranking)和特征子集(Feature subset)
特征排序:对每个特征分别度量其重要性,赋予一个“相关统计量”,并按大到小的排序-相关系数
设计一个阈值,然后选择比阈值大的相关统计量分量所对应的特征;或者指定欲选取的特征个数𝒌,然后选择相关统计量指数最大的指定个数特征(Top k)
特征排序:相关系数
相关系数最早是由统计学家卡尔·皮尔逊设计的统计指标,是研究变量之间线性相关程度的量
特征子集:根据特征重要性的度量,选择保持数据某种特性不变的特征子集-互信息特征选择设计特征和特征子集重要性度量准则,启发式加入带来最大效益的特征,直至找到与原所有特征集合在度量值上相等的特征子集(无参)
包裹式
包裹式方法:选择在将要使用的学习器上最好性能的特征子集
思路:将子集的选择看作是一个搜索寻优的问题,生成不同的
特征组合,对组合进行评价,再与其他的组合进行比较,由此将特征子集的选择作为一个优化问题求解包裹式特征选择的目的就是为给定学习器选择最有利于其性能、“量身定做”的特征子集
主要方法:
• 完全搜索
• 启发式搜索
• 随机搜索
包裹式方法:特征子集产生过程是搜索特征子集空间的过程,
搜索策略可分为三类:
完全搜索(Complete)
• 广度优先搜索(Breadth First Search)
• 分支限界搜索(Branch and Bound)
• 定向搜索 (Beam Search)
• 最优优先搜索 (Best First Search)
启发式搜索(Heuristic)
• 序列前向选择(SFS , Sequential Forward Selection)
• 序列后向选择(SBS , Sequential Backward Selection)
• 双向搜索(BDS , Bidirectional Search)
随机搜索(Random)
• 模拟退火算法(SA, Simulated Annealing)
• 遗传算法(GA, Genetic Algorithms)
嵌入式
嵌入式方法:将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,在学习器训练过程中自动地进行特征选择
思路:在给定学习任务(目标)的情况下,获得对于提升预测准确性最重要的属性,即在确定模型的过程中,挑选出对于学习任务相对重要的属性。
8.3 互信息特征选择
信息熵:两个椭圆表示的部分
联合熵:是信息熵的并集,两个椭圆的并
条件熵:是差集。左边的椭圆去掉重合部分就是
H
(
X
∣
Y
)
H(X|Y)
H(X∣Y)
互信息:是信息熵的交集
信息度量标准:
互信息最大化:
互信息保持:
练习题
- 特征选择的方法有哪些,简述各方法的优缺点。
九、深度学习绪论
【重点】卷积神经网络
9.1 神经网络基础
神经网络:是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应
神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术,它是目前最为火热的研究方向–深度学习的基础
9.2 经典神经网络
M-P模型
单层感知机
感知器包含有两个层次,分别是输入层和输出层。输入层里的“输入单元”只负责传输数据,不做计算。输出层里的“输出单元”则需要对前面一层的输入进行计算。
多层感知机
多层前馈神经网络
反向传播算法
训练过程
9.3 卷积神经网络
图像表示-灰阶、矩阵、RGB颜色、HSV颜色、彩色转灰度、直方图
十、集成学习
【重点】 AdaBoosting Bagging
10.1 集成学习基础
集成学习通过构建并结合多个学习模型(学习器)来完成学习任务,也称多分类器系统.
个体学习器(Individual Learner):学习算法从训练数据产生的学习模型;学习算法如决策树,贝叶斯分类器,神经网络等;
同质集成(Homogeneous Ensemble):个体学习器的学习算法相同,此时个体学习器也称基学习器(Base Learner)
异质集成(Heterogenous Ensemble):个体学习器的学习算法不相同,此时个体学习器也称组件学习器(Component Learner)
理论基础:PAC(Probably Approximately Correct)
弱学习器:泛化性能略优于随机猜测的学习器
强学习器:泛化性能好的学习器
任意给定仅比随机猜测略好的弱学习器,可以将其提升为强学习器√
10.2 个体生成
集成学习主要问题
- 个体生成:多个学习器的构造生成
- 个体差异:学习器之间的差异性度量
- 个体数量:学习器的数目
- 集成策略:学习器的集成方法
个体生成
个体生成-Boosting
AdaBoosting(Adapting Boosting)- 带权采样
Bagging-自主采样
自主采样: 给定包含m个样本的数据集D,每次随机抽取一个样本放入采样数据集D‘,然后将该样本放回数据集D,使得该样本在下次采样时仍有可能被采到,重复执行m次,得到包含m个样本的数据集D’.
AI导论总结
期末加油~!