1、三种模式。这些模式至关重要,因为落子于(x,y)处可能不会立即赢但也许会为稍后的胜利埋下伏笔。II-单元两层的连通有值为1.0的固定连通优势,因为网络必须被迫识别相关联模式的重要性。既然我们的编码方案中棋盘位置以0到1之间的值代表,II-单元具有的连接数量越多(在L3中连接会上升到14个)得到的启动越弱。为了抵消此影响,启动会通过取决于连接数量的归一化因子来增加。子网络的最终层是带有上文描述过的单一输出单元的输出层。它和前置层L3中的所有单元有可训练的连接,并且和L2层中II-单元的一部分有固定连接(1.0),这代表了(x,y)的星型环境中的五子链条(包括(x,y)位置在内)。如果网络要选(x
2、,y)位置作为下一处落子位置来赢得(或者不输)比赛,那么这些固定的连接优势是必须的。某种意义上而言,这些有固定连接优势的连接也许可以被看做提供给网络的关于此游戏的一些基本知识,类似于解释给人类新手的比赛规则。固定的连接权重实现了如下功能:只有那些允许形成己方颜色五子连珠的那些棋链会被认为是重要的,然后对方的一个棋子将会通过它的0.0编码产生一个相应II-单元中值为0.0的启动。(2)学习如何比赛 学习是为了优化网络对棋盘位置的评估。具体按如下步骤进行。第一步,L3和L4之间的连接权重被初始化为随机值,然后网络和传统的、讲规则的五子棋程序或者人类选手进行多盘比赛。第二步,所有这些比赛中的步骤被记
3、录下来并被用作训练阶段的输入向量。然后所有的比赛由网络再次单独玩一遍。由于不可能知道那些步骤对最终的输赢有影响,所以被网络丢失的对手的所有步骤也要考虑,结合当前那些权重,一个针对当前情况的评估便产生了。如果由网络决定的步骤不同于由对手决定的步骤,网络的步骤被惩罚并且对手的步骤被奖励。这样一个奖-惩机制以一个特定的加强学习算法比较训练的变种实现,来修改L3和L4之间的连接权重。为了能这么做,网络输出间的不同和对手的步骤都会被计算。这些不同的绝对值会根据针对II-单元的偏差反向传播程序(8中有描述)分发给L3中的单元以便计算L3中单元i产生的相应偏差。针对对方的步骤,偏差赋正号,因为估值一定是增加
4、的,对于网络提出的步骤赋负号。最终,L3和L4之间的连接权重wi按下式修正:其中0是学习参数,y(t)是L4中单元的输出。用这种方法,网络学习获胜的对手的更好的下棋步骤,因此能提高自身表现。此外,不仅不同的步骤,而且网络和对手相同的步骤会以一个小的带正号偏差的形式被学习以奖励网络做出了一个已经正确的步骤。这种奖励也被应用到网络获胜的比赛的所有步骤中。3.3 实现和性能所述网络已经在C在不同的机器上实现(APOLLO DN 4000, SUN SparcstationSLC, IBM RS 6000)7。此外,一个玩五子棋游戏的简单的用户图形界面也已经成熟。网络的性能已经在一系列的比赛中被测试过
5、。他们都由两个阶段组成。第一阶段,随机初始化的网络和五子棋程序或者人类进行50场对抗赛,并且输赢的数目被记录下来。第二阶段,进行总共400场对抗赛,每一场比赛后根据之前章节描述的程序进行相应步骤的学习。在接下来的一系列比赛中这两个阶段被一直重复。在IBM RS 6000机上运行完一个系列比赛的这两部需要6.5小时(步骤1要30分钟,步骤2要6个小时)。第一个对手是一个简单的五子棋程序,它仅仅通过考虑4子的星型环境来评估棋盘空闲位置。网络开始分数是50场中赢21场,但在两轮比赛后增加到赢29场。当一个更适当(依然是随机)的初始化网络一开始就表现的比对手好时,这种针对对手棋力的适应性能被观察到。例
6、如,网络在经过两轮训练后会减弱棋力从最初赢30场到后来赢25场。这并不奇怪,因为用到的学习模式取决于对手的棋力。在神经网络输掉的比赛中,对手的落子步骤被认为比网络的步骤要好,这样,网络的棋力会一直提高到和其相匹配。在用来训练的对手的棋力较次的情形中,网络的性能因此也会下降。这就是为什么在后续测试中当神经网络和自己的副本对抗时,棋力不会有大的提升,虽然网络最终实现在这一系列比赛中赢31场,而不是像在最初用简单的五子棋程序训练时赢29场。然而,没有理由据此认为网络从自身学到了什么,这种差异也许仅仅是由随机的位置选择具有等量的高估值。在最终的测试中,训练最好的神经网络接受了与商业五子棋软件的对决:1
7、0场比赛胜9场;也和高级人类选手进行了对决,以7:3胜出。3.4 本章小结本章提出了一种可以学习玩五子棋游戏的神经网络。一种适当的网络体系结构被发展用来评估棋盘上每一空闲位置以决定下一步。通过加强学习算法比较训练的一种变体,来学习和提高估值函数,并应用在一系列与五子棋程序对抗的游戏中。在这种学习方法中,网络的棋力取决于对手。已被展示,经训练的网络能在和商业五子棋软件以及专业人类棋手中取得好成绩。不过此算法也可有改进之处:首先,具有相等的高估值的随机选择程序要经过分析,对网络表现的观察揭示了某些情况下,网络表现的更好。第二,应该研究空闲棋盘的位置和编码方式,这也许会扩展重要模式的数目。第三,在训
8、练阶段,对对手棋力的固有依赖应该减少,但这将要求发展一套完全不同的学习方案。2最后,暂时信任分配问题的解决方案,也就是使所有游戏步骤对最终赢输同等负责必然可以改良。当然,这将要求详细分析大量的比赛情形,并且重要和有大影响的步骤也许难以鉴别。第4章 博弈树算法及其优化4.1 算法概述博弈树是一种处理人机对弈问题的算法,在这里,我们首先申明博弈的概念。博弈本意是指下棋,后来引申为:在一定规则下,一个或多个绝对理性团队从各自能选择的策略中选择策略并实施以经行对抗,最后承担从每一步所实施的策略中获得的损益及最终损益。在本课题中我们虽然用的是博弈的本意,但是,博弈树算法却可以应用于政治,经济,生活中的各
9、种博弈过程,博弈的三大特点是:对抗、多步和相应损益。博弈树算法基于以下的思想:当前状态下所选择的博弈策略是好是坏,能带来多少损益,在当前状态下并不是显而易见的,但随着博弈另一方做出反应,己方在反应,多步之后才会变得清晰,而当前的这一步就像是一个状态开关,决定了接下来所有可能的状态集,每一步的策略都具有这样的特征,从而使得不确定性逐渐坍缩为确定性的损益(回环情况除外,其实这也是一种状态坍缩)。这相当类似于人类在博弈(比如下棋)时的思维过程:这一步有哪几种下法,每一步下面又可以有哪几种可能,这样考虑多步之后,上面的这些步骤为最终损益所带来的贡献才会被明朗意识到。形式化的表示出来正好符合数据结构里树
10、的形象,故而得名博弈树。博弈树算法的大致运作过程如下:树根节点为当前状态或初始状态,每一博弈方按博弈中的顺序规则占据接下来的相应每一层,例如,如果规定根节点是第一层,且假设只有两方博弈,则第2n(n为正整数)层为博弈一方(这里简称A方),第2层的所有节点都是根节点的孩子,每一个节点代表A当前情况下采用一种合法博弈策略后所形成的状态空间,第2层将穷尽纇z纇.脹鉀騀(辬蜀搀鰀蠀氀蠀蜀讀缁蜰H缀窢狝蠀椀缂唃唆唆夆洆甆甆甆鴆鴆鴆鴆鴆鴆鴆鴆鴆鴆鴆鴆鴆鴆鴆鴆朇椈鰈晒N桧搀漀挀攀愀攀戀攀戀愀攀挀挀昀最椀昀鰀晒N桧搀漀挀尀尀挀攀搀戀戀愀挀戀挀吀伀夀琀椀洀焀瀀搀刀稀洀礀愀吀礀甀倀欀儀最椀昀漀堀堀唀洀琀儀鰀晒昀戀愀愀挀搀愀搀攀昀昀猀眀漀琀猀眀猀琀爀攀渀最琀栀眀攀愀欀渀攀猀猀漀琀漀瀀瀀漀爀琀甀渀椀琀礀琀栀爀攀愀琀猀瀀攀猀琀稀屝爀夀氀猀椀刀樀瀀栀琀氀焀樀唀瘀愀欀圀瘀漀圀吀栀匀戀伀戀稀猀眀渀眀爀猀