天才一秒记住【久久文学】地址:https://www.jjwxx.com
到此为止吧,在我撰写这篇文章的时候,一台普通的台式机已经没有足够的内存来存储四级围棋搜索树的状态了。
而通常一局围棋游戏要走大概200步,在围棋搜索树中存储200步走棋的搜索树状态数目,那是一个大到你我都无法想象的天文数字,它比我们宇宙中所有原子的数目还大几百个数量级。
无论对传统计算机技术做出怎样的改进,它们都无法完成这样可怕的搜索树。
搜索树这种迅速、荒唐的增长速度导致了无法想象的问题,我们称之为组合爆炸,它是人工智能所面临的最重要的实际问题,因为搜索技术在人工智能领域使用得非常广泛[25]。
如果你能够寻找到一个快速并且万无一失的办法解决搜索树的难题——发明一种方法,既能达成穷举搜索的目标,又无须占用这么恐怖的资源——恭喜你,你将青史留名,并且让许多人工智能目前所面临的困难迎刃而解。
可我不得不遗憾地说,你做不到。
我们没办法回避组合爆炸的问题,只能想办法处理它。
在人工智能发展初期,组合爆炸被认为是根本性问题,麦卡锡将其确定为1956年人工智能暑期学校的重要研究课题之一。
人们的关注点主要集中在提高搜索效率上,对此,有几种不同的解决方案。
深度搜索的主要优点在于不用存储整个搜索树,只需要存储当前正在处理的分支即可。
但它有一个很大的缺陷:如果选择了错误的分支进行探索,可能会在错误的路上越走越远,永远找不到解决方案。
所以,要想使用深度优先搜索,首先我们得确认哪个分支最值得搜索。
这时候,我们就需要启发式搜索来帮忙了。
启发式搜索的概念就是使用所谓的“经验法则”
来指导搜索的重点。
通常我们也无法寻找到直指正确搜索路径的启发式方法,但我们往往可以在感兴趣的问题上找到启发式搜索方向。
当然,我们也明白,有些情况下,启发式搜索的运行情况并不那么尽如人意。
启发式搜索是一个自然而然产生的概念,多年来它被重新定义了很多次,所以争论到底是谁发明了它已经毫无意义。
但是,我们可以确定,第一个应用在人工智能程序的启发式搜索来自一个玩跳棋游戏的程序[26],由IBM的亚瑟·塞缪尔(AithurSamuel)于20世纪50年代中期创造。
塞缪尔编写的跳棋程序,在许多方面为人工智能领域开辟了新天地。
首先,以棋盘为人工智能技术的试验场,这一传统就是塞缪尔的跳棋程序开创的。
即使在今天,这也是一种常见的技巧,虽然也有不少人提出反对意见。
其次,正如我们所提到的,也是即将展开详细讨论的一点,该程序是基于启发式搜索编写的。
最后,我们会在之后详细讨论,塞缪尔的跳棋程序是第一个真正意义上的机器学习程序:他的程序自学了怎么玩跳棋。
塞缪尔跳棋程序的关键点在于给棋盘的各个位置赋予不同的权重,用以评估对选手而言位置“好”
的程度:从直觉来说,某些“好”
的位置可能让某位选手更容易取得胜利,而一些“坏”
的位置则会导致失败。
为此,塞缪尔用一系列特征值来计算棋盘上的点位价值。
例如,某些比较关键的位置,能够让你形成连跳,这样的连跳越多,就意味着你在棋盘上的形势越占上风。
然后,程序将不同的评估参数整合起来,给出棋盘位置的一个综合评估价值分数,形成一个量化的评估标准。
再根据启发式搜索方法来选择最佳的棋盘移动路径。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!