您的位置:首页 > 理论基础 > 计算机网络

神经网络深入(连载10)一个demo程序

2017-01-25 13:50 330 查看
游戏编程中的人工智能技术



连载10 一个demo程序



11.4.6 运行Demo程序

为了实际演示NEAT程序,我已把第8章“为你的 Bot提供知觉”中的扫雷机代码外挂了(pluggedin)进去,我想你一定会因NEAT执行得如此相似而感到惊喜!你可以自己编译源程序再来运行,也可以直接运行执行程序Sweepers.exe。源程序和可执行程序均能在光盘相关的文件夹中找到。

和以前一样,F键用来加快演化过程,R键用来重新开始(复位),按下数字键1-4显示扫雷机的“足迹”。

和第8章不同,我们这一次还建立了一个附加的窗口,在其中画出了被创建出来的4个最好的扫雷机的表现型,如图11.22所示。

激活的前向连接用灰线画出,抑制的前向连接用黄线画出。激活的联接用红线画出,抑制的联接用蓝线画出。从偏移神经细胞来的任何连接显示成绿色。连接线的粗细指示了权重的大小。

表11.4  列出了本工程的缺省值设置。






  图11.22  NEAT扫雷机在行动

     表11.4  NEAT 扫雷机工程的缺省设置

扫雷机参数
参    数    名    称
缺 省 设 置 值
触觉器数目
5
触觉器探测距离(单位:pixel)
25
扫雷器数目
50
最大产出(turn)率
0.2
大小(Scale)
5
 

演化用参数
参    数    名    称
缺 省 设 置 值
每1代(epoch)的“滴答”(tick)数
2000
加入1个链接(link)的几率
0.007
加入1个节点(node)的几率
0.003
加入1个链接的几率
0.005
杂交(crossover)率
0.7
权重突变率
0.1
最大突变骚扰率
0.5
权重被置换概率
0.1
激励响应突变率
0.1
物种相容性阈值
0.26
物种老龄期阈值
50
物种老年惩罚
0.7
物种青春期阈值
10
物种年轻奖励
1.3




11.5 本章小结(Summary)

在这一章中你已经走过了一段很远的路程,在此过程中你也学到了许多的东西。为了帮助你理解,我在本章所介绍的NEAT I 程序已经作过了简化,为了好奇,去考察一下Ken Stanley和Risto Miikkulainen的原始程序是值得的,从那里你能获得有关NEAT的更完整的见识。你可以在下面的网站上找到有关NEAT的源码和其他文章:

        http://www.cs.utexas.edu/users/kstanley/



11.6 练习题(Stuff to try)

     L.在原有代码工程中加进一段代码,使物种的数目由用户规定大小范围。

     2.设计一些不同的突变操作。

     3.在原有代码工程中增加种内配对杂交。

     4.为本章前面描述的其他的一种网络拓扑演化方法进行编码。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息