人工智能笔记01

绪论

人工智能有多种不同的定义:

  • 像人一样思考:认知建模的途径
  • 像人一样行动:图灵测试的途径
  • 合理地思考:“思维法则”的途径
  • 合理地行动:合理Agent的途径

人工智能建立在多种学科,包括数学,神经科学,哲学,心理学,计算机工程学,控制论,语言学等学科之上。在过去的十几年中不断发展,取得了比以往更快速的进步。

智能Agent

1.Agent和环境

Agent通过传感器感知环境并通过执行器对所处环境产生影响。机器人Agent的感知器包括红外测距仪,摄像头等,马达,机械臂为执行器。

Agent的感知序列是所有输入数据的完整历史,Agent的行动依赖于整个感知序列。Agent函数将感知序列映射为行动,描述了Agent的行为。

人工智能笔记01_第1张图片

2.理性Agent

  • 理性Agent:对于每一个可能的感知数据序列,根据已知的感知序列和Agent具有的先验知识,理性Agent应该采取能使其性能度量最大化的行动。
  • 理性判断的四个因素:
    • 性能度量
    • 先验知识
    • 可以完成的行动
    • 感知序列
  • 理性Agent需要具有自主性,并能够进行学习。

3.任务环境

对于每一个Agent,必须说明其任务环境参数。不同的任务环境有不同的性质,任务环境的规范描述称为PEAS。

  • 任务环境:性能P,环境E,执行器A和传感器S。
  • 任务环境的性质:
    • 完全可观察的和部分可观察的
    • 单Agent和多Agent
    • 确定的与随机的(指环境的下一个状态是否取决与当前状态和动作)
    • 片段式的与延续的
    • 静态的与动态的(环境在Agent计算时是否变化)
    • 离散的与连续的
    • 已知的与未知的

4.Agent的结构

Agent = 程序 + 体系结构

  • Agent程序:感知为输入,执行器的行动为输出,仅以当前感知为输入
  • Agent的四种类型
    • 简单反射Agent:基于当前感知选择行动,不关注感知历史
    • 基于模型的反射Agent:Agent根据感知历史维持内部状态,Agent随时更新内部状态信息
    • 基于目标的Agent:除了感知信息之外,还需要根据目标信息来选择行动
    • 基于效用的Agent:当达到目标的行为有多种时,基于效用进行决策
  • 学习Agent:由性能元件,评判元件,学习元件,问题产生器构成

问题求解

1.搜索问题

  • 搜索问题求解Agent求解问题包含以下步骤:
    • 形式化
    • 搜索
    • 执行
  • 搜索策略有两种:盲目搜索,启发式搜索
  • 一个问题可以由五个组成形式化的描述:
    • 初始状态(状态)
    • 行动
    • 转移模型
    • 目标测试
    • 路径消耗

nQueens的形式化描述:

人工智能笔记01_第2张图片

2.搜索策略

  • 搜索策略的性能评价指标:
    • 完备性:如果问题存在解,算法即可找到解
    • 最优性:算法找到的解是最优解
    • 时间复杂度
    • 空间复杂度
  • 无信息搜索策略:只能区分状态是不是目标状态,无法比较非目标状态的好坏。
    • DFS:对于树搜索可能进入无穷分支,非完备,如果避免重复状态和冗余进行图搜索,在有限状态空间是完备的
    • BFS:是完备的,若路径代价是基于结点深度的非递减函数,则是最优的
    • 一致代价搜索:扩展未扩展节点中代价最小的(g(n)最小),队列按照代价从小到大排序,是最优的;如果每一步的代价大于等于小的正常数ε,则是完备的
    • 深度受限搜索(非完备,无最优性)
    • 迭代加深的深度优先搜索:不断增大深度限制,直到找到目标解

人工智能笔记01_第3张图片

  • 有信息(启发式)的搜索策略
    • 贪婪最佳优先搜索:对每个结点计算评价函数值,根据结点的评价函数值进行排序,评价函数值表示到达目标结点的代价估计值,找到代价估计值最低未扩散的结点。 f ( x ) = h ( x ) f(x) = h(x) f(x)=h(x),h(x)为启发函数。扩展的是估计离目标最近的结点。该算法是不完备的,也不是最优的。
    • A*搜索:A*搜索中,评价函数计算到达x的实际代价加上x到达目标节点的最优路径代价估计值,即 f ( x ) = h ( x ) + g ( x ) f(x)=h(x)+g(x) f(x)=h(x)+g(x)。A*算法每步的代价都大于某个常数e,并且分支有限,则是完备的。如果h(n)是可采纳的,则A*进行树搜索是最优的;如果h(n)是一致的,则图搜索和树搜索的A*算法是最优的。

对于启发式搜索策略,关键在于启发式函数,启发式函搜索的性能分析可以使用有效分支因子。假设有N个结点,解的深度为d, N + 1 = 1 + b ∗ + ( b ∗ ) 2 + . . . + ( b ∗ ) n N+1 = 1 + b^* + (b*)^2+...+(b*)^n N+1=1+b+(b)2+...+(b)n,b*即为有效分支因子。有效分支因子越小,算法性能越好,h(n)越大,有效分支因子越小。

3.超越经典搜索

搜索算法可以分类为:

  • 基本搜索算法
  • 启发式搜索算法
  • 博弈算法(对抗搜索)
  • 智能优化算法(启发式优化算法)

智能优化算法属于启发式搜索算法,是根据自然界的现象,规律的启发而得出的算法,具有全局优化性能。

本章主要介绍局部搜索算法,局部搜索算法从单个当前结点触发,通常只移动到邻近状态,不关心搜索路径。

爬山算法

爬山算法是一种局部择优的算法,是对深度优先搜索的一种改进,每次从当前解的临近空间中选择一个最优解作为当前最优解,直到达到一个局部最优解。优点是避免遍历,提高搜索效率。

人工智能笔记01_第4张图片

主要缺点是会陷入局部最优解,不一定能搜索到局部最优解,因此是不完备的。

模拟退火

模拟退火是模拟物理退火过程的算法。

人工智能笔记01_第5张图片

人工智能笔记01_第6张图片

束搜索

记录k个状态,从k个随机生成的状态开始,每一步生成所有的后继状态,如果有目标状态则停止,否则选择k个最佳的后继结点,重复这个过程。

遗传算法

遗传算法是模拟自然选择的进化准则和生物的遗传学原理的计算模型。核心思想是适者生存,通过选择,交叉,变异实现种群进化。

人工智能笔记01_第7张图片

该算法对问题的解进行编码,定义一个适应值函数来评价解的好坏,适应值大的解有较高的存活率。以k个随机产生的状态开始,通过选择,交叉,变异的操作产生下一代的解。

4.对抗搜索

MINIMAX

竞争环境中多个Agent的目标存在冲突的问题,称为对抗搜索问题。常用的算法是MINIMAX算法,在博弈树中,轮流选择MIN和MAX值的节点扩展。

人工智能笔记01_第8张图片

α-β剪枝

搜索过程中,游戏状态数目指数级增长,需要通过剪枝来消除对部分分支的搜索,且被剪掉的分支不影响最终的决策。α-β搜索不断更新α和β值,当α>=β,剪去该节点的子树。剪枝的效率依赖于检查后继状态的顺序。

  • α:当前节点能够选取的评价值的下界,初始化为-∞
  • β:当前节点能够选取的评价值的上界,初始化为+∞
  • 对于MAX层,下界是子节点的最大α,β取父节点的β,父节点要取最小值,如果α>=β,即子节点下界大于父节点上界,子节点不可能被选择,不需要继续搜索,且应该返回自己的下界α
  • 对于MIN层,上界是子节点的最小β,α取父节点的α,父节点取最大值,如果α>=β,即父节点下界大于子节点上界,子节点不可能被选择,不需要继续搜索,且应该返回自己的上界β
  • 叶节点没有α和β

综上,MIN求最小上界,MAX求最大下界,当α>=β时进行剪枝,子节点直接返回评估值。(在当前结点考虑是否可能被父节点选择,例如当前是MIN,父节点是MAX,则要用父节点的下界与自己的值比较进行剪枝(比下界小就不会被选),当前是MAX,父节点是MIN,则用父节点的上界与自己的值比较进行剪枝(比上界大就不会被选))。

5.约束满足问题

CSP问题

约束满足问题CSP由一个变量集合和一个约束集合组成。每个变量有自己的值域,当每个变量都有自己的赋值且满足所有约束条件时,问题得到解决。约束满足问题由以下部分构成:

  • 问题定义:变量集合,约束集合,变量值域
  • 目标测试:测试变量的所有赋值是否同时满足约束条件

实例:

人工智能笔记01_第9张图片

形式化定义

CSP问题可以形式化定义。变量可以分为两种:

  • 离散变量:有限值域/无限值域
  • 连续变量:线性约束

而约束条件可以分为:

  • 一元约束
  • 二元约束
  • 高阶约束
  • 全局约束(变量个数任意)

约束传播

CSP中可以进行约束传播,使用约束来减小一个变量的合法取值范围,从而影响到跟此变量有约束关系的另一变量的取值,与搜索交错进行,提高搜索效率。

约束传播的核心是局部相容性,局部相容性有以下几种:

  • 结点相容:单个变量值域中的所有取值满足其一元约束
  • 弧相容:变量值域中的所有取值满足该变量的所有二元约束
  • 通用弧相容:变量值域对于某个n元约束是满足的
  • 路径相容:两个变量集合对于第三个变量是相容的,指对于两个变量的任何取值,第三个变量都有合适的取值使他们是相容的
  • k相容:如果对于任何k-1个变量的赋值,第k个变量总能被赋予一个和前面k-1个变量相容的值,则为k相容

CSP搜索

CSP问题通用的搜索模式如下:

  • 初始状态为空
  • 给一个没有赋值的变量赋值,该赋值不与当前已赋值的变量冲突
  • 目标测试:如果所有赋值完成并且满足约束条件,则搜索结束

CSP采用深度优先搜索方法,每一个结点对一个变量进行赋值。当检测到不相容时,返回上一次赋值。

提高算法效率的策略:

  • 选择变量赋值的顺序:可以优先选择以下几种
    • 最少约束值:选择使剩余变量赋值空间更大的值
    • 约束最多变量:选择最能约束其他变量的变量进行赋值
    • 最受约束变量:选择最少剩余值的变量进行赋值
  • 选择值域中赋值的顺序
  • 更早地检测不可避免的失败

CSP问题的一些情况

  • 前向检验,追踪未赋值变量的剩余合法赋值,当有剩余变量没有合法赋值时搜索终止。

  • 智能回溯。当搜索回溯无法解决冲突时,会导致无解回溯,解决方法是建立冲突集,回溯到冲突集中时间最近的赋值。

  • CSP中的独立子问题可以通过连通子图找到。而树结构的CSP可以应用拓扑排序解决。

附录 实验一

实验一:A*搜索

1.A*搜索的评估函数

​ A算法是一种启发式算法。A*搜索对结点的评估包含两部分,一部分是到达此结点已经花费的代价,记为g(n);另一部分是该结点到目标结点的最小代价的估计值,记为h(n)。因此,经过结点n的最小代价解的估计代价为:
f ( n ) = g ( n ) + h ( n ) f(n) = g(n) + h(n) f(n)=g(n)+h(n)
​ 每次扩展结点时,首先扩展f(n)最小的结点。假设启发式函数h(n)满足特定的条件,则A
搜索既是完备的也是最优的。

2.保证最优性的条件

​ A*算法保证最优性的条件是可采纳性和一致性。

​ 可采纳性是指估计到达目标的代价时,估计值一定小于实际值,即f(n)一定不会超过经过结点n的解的实际代价。因此当搜索到目标结点时,得到的一定是最优解,没有其他结点的估计值更小。

​ 一致性只作用于图搜索。如果对于每一个结点n和通过任一行动a生成n的每个后继结点n’,结点n到达目标的估计代价不大于从n到n’的单步代价与从n’到达目标的估计代价之和。这保证了h(n)是经n到达目标结点的下界。
h ( n ) ≤ c ( n , a , n ′ ) + h ( n ′ ) h(n)\leq c(n,a,n') + h(n') h(n)c(n,a,n)+h(n)
​ 如果h(n)是可采纳的,则A*进行树搜索是最优的;如果h(n)是一致的,则图搜索的A*算法是最优的。在搜索时,由于A*算法的可采纳性,扩展的结点是下界值最小的,当扩展出目标结点时,得到的一定是最优解。因为目标结点的h(n)=g(n),而这个值小于等于任何其他结点的下界,又根据一致性,之后扩展的目标结点代价不会更低,因此第一个扩展到的目标结点一定是最优解。

3.完备性

​ 完备性要求代价小于等于C*(最优解路径的代价值)的结点是有穷的,每步代价都超过ε并且b是有穷的。

你可能感兴趣的:(人工智能,人工智能)