赞
踩
像人一样思考 | 合理地思考 |
---|---|
像人一样行动 | 合理地行动 |
计算机需要具有的能力:
Agent通过传感器感知环境并通过执行器堆所处环境产生影响。
Agent函数描述了Agent的行为,将任意给定感知序列映射为行动
理性:
理性Agent:对每一个可能的感知序列,根据已知的感知序列提供的证据和Agent具有的先验知识,理性Agent应该选择能使其性能度量最大化的行动。
理性是使期望的性能最大化,而完美是使实际的性能最大化。
信息收集是理性的重要部分
Agent依赖于设计人员的先验知识而不是它自身的感知信息,这种情况我们说该Agent缺乏自主性。
任务环境: 性能度量(Performance)、环境(Environment)、执行器(Actuators)、传感器(Sensors)。
性质:
AI的任务是设计Agent程序,实现把感知信息映射到行动的Agent函数。假设该程序要在某个具备物理传感器和执行器的计算装置上运行–称为体系结构。
**形式化、搜索、执行 **
基于当前的情形和Agent的性能度量进行目标形式化(goal formulation)是问题求解的第一步。
问题形式化(problem formulation):是在给定目标下确定需要考虑哪些行动和状态的过程。
为达到目标,寻找这样的行动序列的过程被称为搜索。
良定义的问题及解:
Agent 的初始状态
描述Agent的可能行动:给定一个特殊状态s,ACTIONS(s)返回在状态s下可以执行的动作集合
对每个行动的描述:正式的名称是转移模型,用函数RESULT(s,a)描述:在状态s下执行行动a后达到的状态(后继状态)。
初始状态In(Arad)、行动、转移模型定义了问题的状态空间。
目标测试:确定给定的状态是不是目标状态。
路径耗散函数:为每条路径赋的一个耗散值。
可能的行动序列从搜索树中根节点的初始状态出发,连线表示行动,结点对应问题的状态空间中的状态。
搜索算法基础:
简单搜索策略,先扩展根节点,接着扩展根节点的所有后继,然后再扩展它们的后继,依此类推。一般地,在下一层的任何结点扩展之前,搜索树上本层深度的所有结点都应该已经扩展过。
每次总是扩展深度最浅的结点。
假设搜索一致树(uniform tree) 的状态空间中每个状态都有b个后继。搜索树的根结点生成第一层的b个子结点,每个子结点又生成b个子结点,第二层则有b2个结点。第三层则得到b3个结点。假设解的深度为d。在最坏的情况下,结点总数为:
b + b2 + b3 + … + bd = O(bd) – 时间复杂度
空间按复杂度:O(bd)
一致代价搜索(uniform-cost search)
扩展的是路径消耗g(n)最小的结点n。通过将边缘结点集组织成按g值排序的队列来实现。
一致代价搜索与宽度优先搜索有两个不同:
一致代价搜索堆解路径的步数并不关心,只关心路径总代价。
深度优先搜索(depth-first search)
总是扩展搜索树当前边缘结点集中最深的结点。
深度优先搜索算法的效率严重依赖于使用的图搜索还是树搜索。
时间复杂度:O(bm) m是指任一结点的最大深度。
空间复杂度:对于图搜索,深度优先搜索只需要存储一条从根结点到叶结点的路径,以及该路径上每个结点的所有未被扩展的兄弟结点即可。一旦一个结点被扩展,当它的所有后代都被探索过后该结点就从内存中删除。所以分支因子为b,最大深度为m,只需存储O(bm)个结点。
深度受限搜索(depth-limited search)
在无限状态空间深度优先搜索会失败,可以通过设置界限l来避免。深度为l的结点被当做没有后继对待。
深度受限搜索解决了无穷路径的问题,但是如果选了 l < d,即,最浅的目标结点的深度超过了深度限制,这种搜索算法是不完备的。
时间复杂度为O(bl),空间复杂度为O(bl)。
迭代加深的深度优先搜索(iterative deepening search)
迭代加深的深度优先搜索(iterative deepening search)是一种常用策略,它常和深度优先搜索结合使用来确定最好的深度界限。做法是不断地增大深度限制——首先为0,接着为1,然后为2,依此类推——直到找到目标。
空间复杂度为: O(bd)
时间复杂度为:O(bd)——与宽度优先搜索相近。
双向搜索(bidirectional search)
同时运行2个搜索,一个从初始状态向前搜索搜索,同时另一个从目标状态向后搜索,希望它们在中间某点相遇,此时搜索终止。
理由是:bd/2 + bd/2 << bd
时间复杂度与空间复杂度都为:O(bd/2)
**有信息搜索(informed search)**策略:使用问题本身的定义之外的特定知识。
最佳优先搜索(best-first search) 是一般TREE-SEARCH和GRAPH-SEARCH算法的一个实例,结点是基于**评价函数f(n)**值被选择扩展的。
大多数最佳优先搜索算法的f由**启发函数(heuristic function)**构成:
h(n) = 结点 n 到目标结点的最小代价路径的代价估计值
**贪婪最佳优先搜索 **
**贪婪最佳优先搜索(greedy best-first search)**试图扩展离目标最近的结点。它只用启发式信息,即 f(n) = h(n)。
贪婪最佳优先搜索与深度优先搜索类似,即使是有限状态空间,它也是不完备的。
A*搜索:缩小总评估代价
它对结点的评估结合了g(n),即到达此结点已经花费的代价,和h(n),从该结点到目标结点所花代价:
假设启发式函数h(n)满足特定的条件,A*搜索既是完备的也是最优的。
保证最优的条件:可采纳性和一致性
h(n)是一个可采纳启发式—指它从不会过高估计到达目标的代价。
一致性(单调性):如果对于每个结点n和通过任一行动a生成的n的每个后继结点n。,从结点n到达目标的估计代价不大于从n到n。的单步代价与从n。到达目标的估计代价之和:
h(n) <= c(n, a, n。) + h(n。)
A*算法的最优性
如果h(n)是可采纳的,那么A*的树搜索版本是最优的;如果h(n)是一致的,那么图搜索的A*算法是最优的。
对于一致代价搜索(A*搜索中令h(n) = 0 ),同心带是以起始状态为圆心的“圆”。如果采用更精确的启发式,同心带将向目标节点方向拉伸,并在最优解路径的周围收敛变窄。若C*是最优解路径的代价值,可以得到:
完备性要求代价小于等于C*的结点都是有穷的,前提条件是每步代价超过e并且b是又穷的。
A*算法不会扩展f(n)>C*的结点。
剪枝:无需检验就直接把他们从考虑中排除。
存储受限的启发式搜索
迭代加深A*算法(IDA*),IDA*与典型的迭代加深算法的主要区别是所用的截断值是f代价(g+h),而不是搜索深度。每次迭代截断值取超过上一次迭代截断值结点中最小的f代价值。
递归最佳优先搜索(RBFS) ,是一个简单的递归算法,只使用西安行的存储空间,与递归深度优先搜类似。但它不会不确定地沿着当前路径继续,它用变量f_limit跟踪记录从当前结点的祖先可得到的最佳可选路径的f值,如果结点超过这个限制,将回到可选路径上。递归回溯对当前的每个结点用其子结点的最佳f值代替其f值。
RBFS算法有时比IDA*算法效率高,但是它同样需要重复生成大量结点。
IDA*和RBFS的问题在于它们使用的内存过于小了。在两次迭代之间,IDA*只保留一个数字:当前的f代价界限值。RBFS在内存中保留的信息多一些,但也只用到线性空间。
在多Agent环境中, 每个Agent的目标之间是有冲突的,这就引出了对抗搜索的问题,称为博弈。
在人工智能的“博弈”称为有完整信息的、确定性的、轮流行动的、两个游戏者的零和游戏。
零和博弈是指在同样的棋局实例中所有人的总收益都一样的情况。
初始状态、ACTIONS函数、和RESULT函数定义了游戏的博弈树,其结点是状态,边是移动。
给定一颗博弈树,最优策略可以通过检查每个结点的极小极大值来决定,记为MINMAX(n)。假设2个游戏者始终按照最优策略行棋,那么结点的极小极大值就是对应状态的效用值。显然,终止状态的极小极大值是他的效用值自身。MAX喜欢移动到极大值状态,MIN喜欢移动到有极小值的状态。
使用了简单的递归算法计算每个后继的极小极大值,直接实现上面定义的公式。递归算法自上而下一直前进到树的叶结点,然后随着递归回溯通过搜索树吧极小极大值回传。
极小极大算法对博弈树执行完整的深度优先探索。如果树的最大深度是m,每个结点合法的行棋有b个,那么极小极大算法的时间复杂度是O(bm)。一次性生成所有后继结点的算法,空间复杂度是O(bm),二每次生成一个后记的算法,空间复杂度是O(m)。
如图所示,每一结点上标出了可能的取值范围。
注意:极小极大搜索是深度优先的,所以任何时候只需考虑树中某条单一路径上的结点。
a = 到目前为止路径上发现的MAX的最佳选择(极大值)。
b = 到目前为止路径上发现的MIN的最佳选择(极小值)。
本章讨论的是如何更有效的求解更多种类的问题。使用成分表示来描述状态:即一组变量,每个变量有自己的值。当每个变量都有自己复制的同时满足的所有关于变量的约束时,问题就得到了解决。这类问题称为约束性满足问题,简称CSP。
本章首先给出各类学习形式的概述,在第3节描述决策树学习,接下来结束奥学习的理论分析:线性模型、非线性模型(神经网络)、非参数模型和支持向量机。
Agent任何部件的性能都可通过从数据中进行学习来改进。改进机器改进所有的技术依赖于四个主要因素:
要改进哪一个部件;
Agent具备什么杨的预备知识;
数据和部件使用什么样的表示法;
对学习可用的反馈是什么。
表示法和先验知识:
要素化表示法:属性值向量,输出的是连续数字值或是离散值。
归纳学习:从特定“输入-输出”对学习通用函数或规则。
分析或演绎学习:从已知通用规则走线被其逻辑蕴含的新规则,由于有助于更高效的处理,这种规则是有用的。
用于学习的反馈:
无监督学习:在不提供显示反馈的情况下,Agent学习输入中的模式。
最常见的无监督学习任务是聚类:在输入样例中发行有用的类集。
强化学习:Agent在强化序列——奖赏和惩罚组合的序列——中学习。
奖惩之前的哪些动作需要为结果负主要责任。
监督学习:Agent观察某些”输入-输出“对,学习从输入到输出的映射函数。
在半监督学习中,给定少数标注样例,而要充分利用大量未标注样例。
给定由N个”输入-输出“对样例组成的训练集:
(x1,y1),(x2,y2),…,( xN , yN )
其中,每个 yj 由未知函数 y = f(x) 生成。
生成一个函数h,它逼近真实函数f。
函数h是一个假说,学习是一个搜索过程,它在可能假说空间寻找一个不仅在训练集上,而且在新样例里上具有高精度的假说。为了测量假说的精确度,一般给学习系统一个由样例组成的测试集,它不同于训练集。所谓一个假说泛化的好,是指它能正确预测新样例的y值。
当输出y的值集是有限集合时,学习问题称为分类,若值集仅含2个元素,称为bool或二元分类。
若假设空间包含真实函数,学习问题是可实现的。但由于真实函数未知,一个给定的学习问题是否是可实现的不总是可判定的。
通过选择在给定数据下具有最大可能性的假说h*,能够实现监督学习。 h*的定义如下:
由贝叶斯公式,上式等价于:
决策树归纳是一类最简单也最成功的机器学习形式。
由算法图可看出,决策树学习的关键是第8行,即如何选择最优划分属性。一般来说,随着划分过程的不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。
信息增益
E n t ( D ) = − ∑ i = 1 ∣ y ∣ p k l o g 2 p k ( 4.1 ) Ent(D) = -\sum_{i=1}^{|y|} p_{k}log_2p_k\qquad \qquad \qquad(4.1) Ent(D)=−i=1∑∣y∣pklog2pk(4.1)
Ent(D)的值越小,则D的纯度越高。最小值为0,最大值为log2|y|。
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) ( 4.2 ) Gain(D, a) = Ent(D) -\sum_{v=1}^{V} \frac{|D^v|}{|D|} Ent(D^v)\qquad\qquad (4.2) Gain(D,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。