导读:很多朋友问到关于人工智能搜索树是干什么的的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
alphago中的蒙特卡罗搜索树是怎样实现的
AlphaGo依靠精确的专家评估系统(value network)、基于海量数据的深度神经网络(policy network),及传统的人工智能方法蒙特卡洛树搜索的组合,以及可以通过左右互搏提高自己的水平,这个真的是有的恐怖了有木有。李世石九段固然厉害,可人类毕竟是动物,机器软件程序是无休止的工作,这一点也是客观因素了。
AlphaGo依靠精确的专家评估系统(value network)、基于海量数据的深度神经网络(policy network),及传统的人工智能方法蒙特卡洛树搜索的组合,以及可以通过左右互搏提高自己的水平,这个真的是有的恐怖了有木有。李世石九段固然厉害,可人类毕竟是动物,机器软件程序是无休止的工作,这一点也是客观因素了。比赛已经结束了,李世石一比四不敌alphago。
有一种观点人为,只要下AlphaGo棋谱中所未记载的招数就能获胜,哪怕这些下法根本不符合围棋棋理。这种做法的可行性并不高。
AlphaGo并非是对人类棋手弈棋棋谱记忆后的简单再现,而是具备了一定模拟人类神经网络的“思考”能力,既不是像过去那样采用穷举法寻找最有选项,也不是复制棋谱中
所记载的定势或手筋。而是会对选择进行“思考”,删除那些胜率低的选择,并对具有高胜率的选项进行深度“思考”,最终从无数个落子的选择中基于自己的“思考”选择一个最优项。 因此,若是人类棋手想凭借下几步不符合围棋棋理,或未被棋谱记载的围棋下法,就轻而易举战胜AlphaGo的可能性并不高。因为AlphaGo是人工智能,而不是一台只会复制人类棋手招数的机器。
什么是人工智能的搜索方式?
什么是搜索?搜索是人工智能领域的一个重要问题。它类似于传统计算机程序中的查找,但远比查找复杂得多。传统程序一般解决的问题都是结构化的,结构良好的问题算法简单而容易实现。但人工智能所要解决的问题大部分是非结构化或结构不良的问题,对这样的问题很难找到成熟的求解算法,而只能是一步步地摸索前进。就像是甲、乙两个不同的网络,甲网络中的某一台计算机A要想找到乙网络中的数据。乙网络位于广域网中,A的目标就是要找到乙网络(实际上就是找到甲主路由器的IP),但是A不知道目标的具体位置,只能试探着去找。像这样摸索着前进,不断搜索前进方向的过程称为搜索。从理论上讲,只要乙不犯规 (不会关闭设备),A终究是会找到乙的(当然这必须是在甲、乙本来是可以互通的基础上)。当然,A找到乙所需的时间是无法预测的。如果A以前就访问过乙网络上的某台主机,在找的过程中,可以得到路由器中更新的路由表的支持,很快会找对了方向,可能花费的时间就会少些。相反,也有可能A找遍了所有的地方,最后才找到乙(极端情况)。 搜索,通常可分为盲目搜索和启发式搜索。盲目搜索是按预定的控制策略进行,在搜索过程中获得的中间信息不用来改进控制策略 。这在复杂网络中的路由选择会经常用到。广域网中的动态路由协议,为了学习相邻路由器的路由,为了确定最短路径,总是主动地去搜索相邻的路由设备。由于路由选择总是按预先规定的方式进行,未能考虑到环形结构或不可到达情况,因此效率不高,具有盲目性,往往会因此占去不少的网络带宽。启发式搜索是在搜索过程中根据问题的特点,加入一些具有启发性的信息,如从上一级路由器中找到相应的路由表来确定下一步搜索的路线,加速问题的求解过程。显然,启发式搜索的效率比盲目搜索要高,但由于启发式搜索需要与网络本身特性有关的信息,而这对非常复杂的网络是比较困难的,因此盲目搜索在目前的应用中仍然占据着统治地位。而盲目搜索中最行之有效、应用最广泛的搜索策略就是:宽度优先搜索和深度优先搜索。这两种搜索方法在很多人工智能的资料中都有介绍,关于算法也给出了简单的设计思路。这里只对简单应用及体会做简单介绍。 宽度优先搜索,又称为广度优先搜索,是一种逐层次搜索的方法。在第n层的节点没有全部扩展并考察之前,不对第n+1层的节点进行扩展。设V1为起始节点,则搜索的顺序为:V1V2V3V4V5V6V7 Flash5中Action Script功能非常强大,其实它涉及到的最主要的问题就是动作怎么通过指定路径或一个大概的方式去完成动作的结果。利用此算法可以很好地解决这个问题。打红警,玩帝国时,指挥坦克或炮车去指定位置,计算机控制坦克通过此算法找到最短路径行进只需要将屏幕分成多个区间并编成号码,实际上从源地址到目标地址就是找到到达目标地址的一串区间号码。这样问题就可以程序化了。至于具体的设计流程和源程序这里就不多讲了。 Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。 实际上网络上许多协议和应用程序都会用到类似的思想。例如,生成树协议中,为了确定生成树的树根。它要确定每一台交换机的树值并不断地更新结果。象使用网络下载某个软件时,它的每个线程都会去找目标地址,来确定到达的路径。 因为宽度优先搜索是针对非结构化或结构不良的问题,所以只要碰到类似的情况只是将具体条件转化一下,就可以应用此算法了。
人工智能的搜索方式就搜索策略是否被预先确定一般可以分为
人工智能中的搜索策略大体分为两种:无信息搜索和有信息搜索。无信息搜索是指我们不知道接下来要搜索的状态哪一个更加接近目标的搜索策略,因此也常被成为盲目搜索;而有信息搜索则是用启发函数f(n)来衡量哪一个状态更加接近目标状态,并优先对该状态进行搜索,因此与无信息搜索相比往往能够更加高效得解决问题。
要衡量一个搜索策略的好坏,我们需要从四个方面对其进行判断:完备性、时间复杂度、空间复杂度和最优性。因此以下通过这四个方面来比较常见搜索策略之间的优劣。
无信息搜索策略
宽度优先搜索(BFS)
首先扩展根节点,然后扩展根节点的所有后继,接着再扩展它们的后继,从而一层一层的对节点进行扩展。BFS是一个简单的搜索策略,在搜索过程中会对所有状态进行遍历,因此它是完备的;假设搜索树每个节点有b个后继,深度为d,则时间复杂度和空间复杂度均为O(bd);最后考虑最优性,因为我们总会在最浅那一层找到目标状态,因此当且仅当每一步的代价都一致的时候,BFS可以得到最优解。
一致代价搜索
在BFS的基础上,一致代价搜索不在扩展深度最浅的节点,而是通过比较路径消耗g(n),并选择当前代价最小的节点进行扩展,因此可以保证无论每一步代价是否一致,都能够找到最优解。
深度优先搜索(DFS)
DFS扩展根节点的一个后继,然后扩展它的一个后继,直到到达搜索树的最深层,那里的节点没有后继,于是DFS回溯到上一层,扩展另外一个未被扩展的节点。在有限状态空间中,DFS是完备的,因为它可以把所有空间遍历一遍;而在无限空间中,DFS则有可能会进入深度无限的分支,因此是不完备的。DFS的时间复杂度为为O(bd),而空间复杂度仅为O(d),因为我们只需要保存当前分支的状态,因此空间复杂度远远好于BFS。然而DFS并不能保证找到最优解。
深度受限搜索
深度受限搜索设定一个最大深度dmax,当搜索深度大于dmax的时候立即回溯,从而避免了在无穷状态空间中陷入深度无限的分支。
迭代加深的深度有限搜索
迭代加深的深度有限搜索也设定一个最大深度dmax,开始我们把dmax设为1,然后进行深度受限搜索,如果么有找到答案,则让dmax加一,并再次进行深度有限搜索,以此类推直到找到目标。这样既可以避免陷入深度无限的分支,同时还可以找到深度最浅的目标解,从而在每一步代价一致的时候找到最优解,再加上其优越的空间复杂度,因此常常作为首选的无信息搜索策略。
有信息搜索
贪婪最佳优先搜索
贪婪最佳优先搜索总是扩展距离目标最近的节点,其启发函数f(n)=h(n)其中:
f(n)=节点n到目标节点的最小代价路径的估计值
贪婪最佳优先搜索的最大问题是它往往不能找到最优解。
A*
为了找到最优解,A*算法对一个节点的评估结合了h(n)和g(n)从开始节点到节点n的路径代价,即f(n)=g(n)+h(n)
f(n)=经过节点n的最小代价解的估计代价
因为A*搜索总是搜索f(n)最小的点,因此它总能找到最优解。
人工智能搜索技术是什么?
1、所谓搜索,就是为了达到某一目标,而连续进行找寻的过程。搜索技术就是对寻找目标进行引导和控制的技术。这是人工智能最早形成的基本技术之一。
2、从求解问题角度看,环境给智能系统(人或机器系统)提供的信息有两种可能。
(1)完全的知识:用现成的方法可以求解,如用消除法来解线性方程组,这不是人工智能研究的范围。
(2)部分知识或完全无知:无现成的方法可用。如下棋、法官判断、医生诊病问题,有些问题有一定的规律,但往往需要边试探边求解。这就需要使用所谓的搜索技术。
给你科普一下,为何AlphaGo这么牛?
在最近火的不行的围棋人机大战中
“人类最后的希望”
——柯洁
连续两场败给了人工智能阿尔法狗
最后一战即将在今天打响
一时间科技界人心惶惶
人们开始担心AI有天会取代人类
摧毁人类麻辣小龙虾鸳鸯火锅等文明
那么问题来了
阿尔法狗究竟是何方神圣?
人工智能(AI),指的是
跟人类智能相似的智能机器
例如机器人、语音图像识别等
这次的阿尔法狗
就是谷歌旗下DeepMind公司
开发的一款围棋人工智能程序
它横扫欧亚顶级围棋高手
去年打败了围棋世界冠军李世石
并且在今年推出了2.0版本
其等级分已超过人类第一的柯洁
于是有了这次的
人类荣誉之战
想了解阿尔法狗
就需要知道算力和算法
要知道,人类的算力十分有限
比如一个密码锁只有两位
有人会从00试到99解锁
但如果是四位就会智商捉急了
这就是算力不够
如今AI对弈国际象棋的算力基本达到
但对弈围棋的算力尚未实现
比方说
国际象棋棋盘上能够产生的
不同可能大约是10的46次方
而围棋却有10的170次方左右
两者对比相当于
所以在AI眼里
围棋是个还未跨越的里程碑
这种情况下就要考虑算法
阿尔法狗不得不选择
更智能的方法啃下这块骨头
它采取了一种大智若愚的方法
——蒙特卡洛搜索算法
比方说
你家到火锅店有ABC三条未知的路
同时出发300人,每条路100人
假设半小时内走A路的人最快到达
那么A路则是条好路
注:实际算法相当复杂
当然,路口越多,分析会越复杂
但放出的人越多,结果就越精确
相比一条路走到黑的穷举法
这种搜索算法大大前进了一步
而且阿尔法狗还会进行深度学习
它啃下了大量历史棋局
分析数据后能以最高质量下棋
不至于把所有概率都考虑一遍
惊人的算力+高效的算法
让阿尔法狗直指围棋巅峰之座
并且,它还以惊人的速度进化着
提升一个版本只需仅仅一周时间
对阵李在石的版本为V18
这次版本已经达到V60
当下版本的阿尔法狗的厉害之处
是只要没断电
它就能每时每刻学习棋艺
不但如此,他甚至还跳出了
学习人类棋盘的方法
进入了左右手互搏
自己跟自己对练的局面
它的出招也越来越没有套路可言
但归根结底
大家也不用太担心
人工智能真正需要面对的
是诸如情感分析、智能对话等问题
阿尔法狗的核心还是树搜索的计算方法
距离“自主思考”还有一定距离
但是朕已经研究出打败阿尔法狗
为全人类扳回一局的方法
那就是
拉
电
闸
【原创不易,转载请注明来源:朕说】
朕说:做最有趣有料的历史IP。历史也可以不端着,换种方式让更多人喜欢历史!
结语:以上就是首席CTO笔记为大家整理的关于人工智能搜索树是干什么的的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~