由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Military版 - 我觉得围棋AI算法难度小于dota AI算法
相关主题
3大阅兵中国政府庄严宣布裁军30万美国、加拿大与卢森堡科学家分享诺贝尔医学奖
五代机普遍处于技术攻关状态 六代机研发已起跑美国也搞人肉
铁路改革方案胎死腹中魏则西主治医生曾是央视红人,删979条微博后,现查无此人,我们还能相信谁?
ZT 山西东方机械厂破产真相CS本质上是技校,属于职业培训
最火的深度学习人工神经网络就和中医理论很相似敲CCR5基因真的是为了防艾滋吗?你懂的!
钱璐璐教授又有新突破: DNA 人工智能网络识别手写数字清华研发的类脑芯片登上 Nature 封面,自动驾驶自行车要来了?
高能物理学家的“加速”梦:谢家麟的科研人生人体防御病毒的免疫力究竟是什么?
---- 要更聪明的抵制日车新研究表明,白人比黄人更易感染武肺
相关话题的讨论汇总
话题: 棋子话题: dota话题: 指令话题: 角色话题: 电脑
进入Military版参与讨论
1 (共1页)
s*******e
发帖数: 1389
1
围棋算法多少还能理解,人工智能就难多了。转载一篇文章:
基于神经网络的人机对抗人工智能系统
作者:Harreke
摘要
人工智能是一门科学名称。自电子计算机发明后不久,人工智能学科即宣布创立,其目
的就是要模拟人类的智力活动机制来改进计算机的软件硬件构成,使他们掌握一种或多
种人的智能,以便在各种领域内有效替代人的脑力劳动,特别是解决用传统软硬件方法
难以解决的问题,如模式识别,复杂的控制行为或对海量的数据进行实时评估等。
所谓人工智能,就是由人工建立的硬件或软件系统的智能,是无生命系统的智能。智能
是人类智力活动的能力,是一个抽象的概念。一个软件或硬件系统是否有智能,只能根
据它所表现出来的行为是否和人类某些行为相类似来做判断。
人工智能在计算机上的实现,有两种不同的方式。一种是采用传统的编程技术,使系统
呈现智能的效果,而不考虑所用方法是否与人或生物机体所用的方法相同。这种方法称
为工程学方法,它的编程方式虽然简单,智能效果显著,可是算法和程序一旦固定下来
,智能就很难再进一步提高。另一种是模拟法,它不仅要看智能效果,还要求实现方法
和人类或生物机体所用的方法相同或类似。人工神经网络是模拟人类或生物大脑中神经
元的活动方式,属于模拟法。
人工神经网络入门难度大,编程者需要为每一个对象设置一个智能系统来进行控制,新
设置好的智能系统,虽然一开始什么都不懂,但它拥有学习的能力,可以通过学习,不
断提升智能,不断适应环境、应付各种情况。通常来讲,使用人工神经网络虽然编程复
杂,但编写完成后的维护工作,将比使用其他方式编程后的维护更加省力。
本文采用人工神经网络构建一个完整的人工智能系统,并将该人工神经网络理论应用于
电脑领域的项目DOTA。
关键词:人机对抗,神经网络,人工智能,DOTA
目录
第一章神经网络系统概述
1.1 生物学神经网络
1.2 人工神经网络
1.2.1 人工神经网络系统概念
1.2.2 人工神经网络系统的组成
1.3 神经网络的训练
1.4 相关数学知识
1.4.1 人工神经元输出的计算
1.4.2 反向传播方法
第二章人工神经网络应用的设计
2.1 应用设计
2.2 DOTA简介
2.2.1 DOTA概念
2.2.2 DOTA规则
2.2.3 DOTA现状
2.2.3 DOTA AI概念
2.2.4 现有DOTA AI弊端
2.3 新版DOTA AI的理论设计
2.3.1 巡查系统
2.3.2 控制系统
2.3.3 指令中心
第四章数学算法的实际应用
4.1 确定三大系统的参数和意义
4.1.1 巡查系统
4.1.2 控制系统
4.1.3 命令中心
4.2 三大系统的具体实现思路
4.2.1 巡查系统
4.2.2 控制系统
4.2.3 命令中心
第五章总结
参考文献
附录
第一章神经网络系统概述
1.1 生物学神经网络
人工神经网络系统是模拟人思维的一种方式,仿照生物的大脑来工作。为了帮助理解,
首先介绍一下生物大脑的工作方式。
生物的大脑拥有称为皮层的组织。大脑分为两层:灰色的外层和白色的内层。灰色层只
有几毫米厚,但其中却紧密地分布着数十亿个被称为神经元的微小细胞;白色层占据了
皮层组织的绝大部分空间,是由无数神经元相互连接组成的。
神经元的构成是独特的。每个神经元都长有轴突,用来将信号传递给其他神经元。
神经元由一个细胞体、树突和一根轴突组成。树突由细胞体向各个方向长出,用来接收
信号;轴突也有很多分支,通过分支的末梢和其他神经元的树突相接触,形成突触。一
个神经元是通过轴突和突出把产生的信号送至其他神经元。每个神经元通过它的树突,
与大约1万个其他神经元连接。
神经元利用电化学过程交换信号。输入信号来自另一些神经元。这些神经元的末梢和本
神经元的树突相遇形成突触,信号就从树突上的突触进入本细胞。虽然信号在大脑中的
传输过程极其复杂,但也可以把它看做与计算机一样,利用二进制的0与1进行操作。
每个神经元只有两种状态:兴奋和不兴奋。神经元把所有从树突的突触上接受来的激励
信号,通过我们目前还未知的的方式相加。如果相加所得结果超过某种阈值,则该神经
元就会被激励,变得兴奋,同时产生一个激励信号,通过它轴突的突触,把产生的信号
传给其他神经元;如果相加所得结果没有超过阈值,该神经元就不会被激励。
虽然单个神经元的结构极其简单,功能有限,频率大约只有100Hz,但正因为有数量巨
大的神经元,相互连接构成一个庞大的并行处理网络,所以整个神经网络系统具备难以
置信的能力:
1)能实现无监督的学习
功能完整的神经网络系统可以实现自行学习,而不需要导师的监督教导。如果一个神经
元在一段时间内受到较高频率的刺激,则它和输入信号的神经元之间的连接强度就会在
一定程度上改变,使得该神经元下一次受到刺激时,更容易兴奋。
2)对损伤有冗余性
神经网络系统即使受到了损伤,它依然能执行复杂的工作。
3)处理信息的效率极高。神经元之间的信息传递速度,与计算机CPU中数据传递的速度
相比,是非常非常慢的。但因为神经网络系统采取了并行处理方式,使得整个系统可以
同时处理巨量的数据,因此整体处理速度得到极大的提升。
4)善于归纳推广
神经网络系统和计算机不同,前者极其擅长模式识别,并能根据已经掌握的信息进行归
纳推广。比如,一个人可以阅读另一个人手写的文字,即使这前者以前从未见过后者写
的东西。
5)拥有意识
这是神经学家和人工智能研究者至今仍在商讨的话题。人拥有意识,这是无可辩驳的,
但除了人以外,拥有完整神经网络系统的其他事物,是否也拥有意识?
综上所述,一个人工的神经网络系统,所要完成的任务,就是在现有计算机规模的约束
下,尽可能地模拟生物学大脑的这种并行处理机制,并且在其运作时,能够显示出许多
与生物学大脑相类似的特性。
1.2 人工神经网络
1.2.1 人工神经网络系统概念
生物学大脑中的神经网络系统是由很多神经元组成的,模拟大脑的人工神经网络系统也
是由很多称为人工神经元的单元组成。
人工神经元其实就是生物学神经元的简化版,但却是采用电子方式来模拟的。一个人工
神经网络系统里使用的人工神经元数量,差别可以非常大,从简单的数个,到数千个,
这完全取决与要用人工神经网络系统要实现的功能。
下面是一个人工神经元的结构图:
w称作权重,是浮点数。进入人工神经元的每一个信号都会与一个权重相联系。而正是
有这些权重,一个人工神经元才会有活跃性,才会对输入的信号做出判断。
假设所有权重w的取值为-1到1之间的一个随机小数。因为权重有正有负,所以能够影响
与它有关联的信号输入。如果权重为正,就会对相关联的信号输入起激发作用;如果权
重为负,就会对相关联的信号输入起抑制作用。
一个人工神经元会把所有的输入信号,与其对应的权重分别相乘,然后把相乘的结果作
为给神经元核的输入。神经元核把这些经过权重调整过的输入全部加起来,形成最终激
励值,激发这个人工神经元进入兴奋或非兴奋状态。最终激励值也是一个浮点数,如果
它超过这个人工神经元的某个阈值(假设阈值为1.0),则人工神经元会向外输出一个
数值为1的兴奋信号,反之则输出一个数值为0的非兴奋信号。
这就是人工神经元最简单的一种激励方式。这里激励值产生输出值的过程,是由一个函
数来完成,这个函数就叫阶跃激励函数。
1.2.2 人工神经网络系统的组成
生物学大脑里的神经元是和其他神经元相互连接在一起的。为了创建一个人工神经网络
,人工神经元也要以相同的方式互相连接在一起。
所有人工神经网络系统中,中最容易理解并且也是最广泛地使用的,是前馈网络。该网
络把人工神经元一层一层地连接在一起,每一层的人工神经元都向前一层馈送,直至获
得整个网络的输出。
前馈网络共有3层。输入层中的每个输入都亏送到了隐藏层,作为该层的每一个人工神
经元的输入;从隐藏层的每个人工神经元的输出,都连到了输出层的每一个人工神经元。
作为前馈网络,实际上可以有任意多个隐藏层,每一层也可以有任意数目的人工神经元
,这完全取决与要解决目标的复杂性。
1.3 神经网络的训练
一旦神经网络构建完毕,就可以对其进行训练,使其处理数据的能力符合最初的设计要
求。
假设需要该神经网络识别物体A。
①为神经网络中,每一个层、每一个人工神经元里每一个权重赋予初始数值。
②对输入层中的人工神经元输入需要识别的一系列数据。
③对于每一种输入配置,检查它的输出是什么,并调整相应的权重。
输入一张图片,里面画的不是物体A,而是其他物品。这时网络应输出一个0。
对与每个非物体A的图片数据,都要调节网络权重,使得它的输出趋向于0;对于每个物
体A的图片数据,也要调节网络权重,使得它的输出趋向于1。
④成功识别出物体A后,通过再次训练,就可以使网络识别其他物体B、C、D等等。
这种类型的训练称为有监督的学习,用来训练的数据成为训练集。调整权重可以采用许
多方法,这里采用反向传播方法。
第二章人工神经网络应用的设计
2.1 应用设计
本文将使用神经网络技术,设计一个人机对抗项目,并将这个人机对抗项目,应用于电
脑上的一个多人的人人对抗项目DOTA中。
2.2 DOTA简介
2.2.1 DOTA概念
DOTA是电脑领域上新兴的一个多人对抗项目,全称为Defense Of The Ancients,即守
卫遗迹。它的编写者名为Ice Frog。
2.2.2 DOTA规则
DOTA是一个多人的人人对抗项目。但它的规则在某些方面与象棋类似。
1)参与对抗的对抗者最多为10人,分为两大阵营,每方阵营各5人。
2)每个参与者扮演一名“棋子”。每个棋子拥有生命力、战斗力等属性,可以通过学
习不同的技能,购买不同的物品提升自身的实力。
3)双方所有棋子在一定的地域内活动。同时,双方各有一座遗迹,和数个保卫遗迹的
建筑物。
4)每一方的棋子都必须不计一切代价保护己方的建筑物和遗迹,同时利用一切可行方
式去摧毁敌方的建筑物和遗迹。
5)一旦一方棋子率先突破防御,摧毁了对方的遗迹,该方立即获胜,并宣告对抗终结。
2.2.3 DOTA现状:
DOTA于几年前年开始流行。随着它的编写者Ice Frog不断努力,DOTA的平衡性越来越高
,内容越来越丰富,因此,DOTA迅速风靡全球。世界各地都频频举办大型DOTA竞技比赛
,我国也在今年5月举办过世界级的竞技大赛(WCG2009)。
2.2.3 DOTA AI概念:
但正因为DOTA是多人对抗项目,为了能进行对抗电脑必须联网,而且还必须有他人参与
。如果因为某些原因,比如电脑无法联网,或者参与的人数不足等,便无法正常进行对
抗。
为了解决这些问题,一名国外编程高手Lazyfiend,简称RGB,于数年前编写了一套人工
智能系统,可以生成数个电脑控制的角色(简称AI),来顶替人数的空缺,跟真正的人
类竞技。这就是DOTA上最初的人机对抗项目。
这个人机对抗系统极大地缓解了因为电脑无法联网或人数不足等原因,而不能正常进行
对抗的问题。使用DOTA 人工智能系统进行竞技的人不计其数。
因此,DOTA人机对抗项目独立出来,成为与DOTA人人对抗项目齐名的新形项目——DOTA
人工智能系统,简称DOTA AI。人们也分成了两大类,一类跟其他人通过DOTA对抗,一
类跟电脑通过DOTA AI对抗。
2.2.4 现有DOTA AI弊端
可是,随着时间的推移,RGB的DOTA AI的弊端也就浮现出来。RGB由于完全采用了工程
学方法编程,电脑角色的一切行为全都固定化,电脑角色控制的棋子的行动套路全部是
事先编好的,不会随机应变。虽然这种人工智能系统在当时打败了不少人,击溃了不少
挑战,但现在,人们已经看破了这种人工智能系统的运作方式,找出了它的致命破绽。
这可以用一个例子来比喻,人跟电脑下象棋时,电脑很厉害,人下不过,但多下几局后
,人发现,电脑下棋的方式是完全固定的,每一步走棋都严格重复上一把的套路。因此
,人可以从电脑这一成不变的下法中找出破绽,摸索出完全克制电脑的套路,从而击败
电脑。一旦有了克制的套路,人就可以一点都不动脑筋,只要简单地按这种套路下棋,
就能轻易击败电脑——因为电脑不懂得随机应变。
遗憾的是,RGB只对他的DOTA AI更新过几次,就退出不再干了。流传至今的,还只是他
数年前编写的、不懂得随机应变的那套人工智能系统。
现在DOTA的版本飞速更新换代,由于一直没有人接替RGB的工作,从根本上改变DOTA AI
智力底下的现状,导致DOTA与DOTA AI之间的差距越来越大。
还是用下象棋举例。电脑的程序更新之后,电脑就多了几种下法,不再一成不变地使用
那套已经被人看破的套路了。一下棋,人自然又被电脑击败了。但再多下几次,人又发
现了电脑的致命破绽——多出来的那几种套路,也全是固定不变的。只要人摸清了电脑
全部的套路之后,自然能摸索出克制这些固定下法的套路。总而言之,就算程序再更新
几次,也没有实质的用处;电脑的固定的套路无论有多少种,人只要多花点时间就能全
部看破。
DOTA AI参与者的抱怨之声越来越大,这时候国外又出现一名编程高手BuffMePlz,简称
BMP。但他同样没有能力从根本上改变DOTA AI智力低下的现状。他所做的,只有一件事
,那就是不停地更新程序,为人工智能系统机械地加入更多的固定的算法。
人跟电脑下象棋,如果电脑只有固定的一种套路,人很快就能看破;如果电脑更新程序
,多了几种不同的但仍然固定的套路,人就需要多花点时间看破;但如果电脑有了十几
种、几十种、乃至上百种不同的套路,虽然每种套路还是固定的,可由于数量激增,人
要想看破,就需要花巨量的时间。这种机械式的程序更新,从某种意义上来说,能极大
缓解DOTA AI智力低下的问题。
固定套路数量的激增带来的,首先是程序容量的剧增——程序容量越大,就可能隐藏越
多的错误,导致电脑出问题;其次是工作量的剧增——编写套路需要非常多的时间。
人们看破了电脑的套路后,编写者就要编出另外的套路。可人们会更快地看破,因此编
写者又需要加快速度,绞尽脑汁再编写更多的套路——这种固定套路的人工智能系统,
陷入了一个恶性循环,它的弊端无需置疑。
本人于去年开始尝试设计新的DOTA AI。
2.3 新版DOTA AI的理论设计
不同于RGB的完全工程学方法、完全固定套路的算法,本人将采用以模拟法为主导,工
程学为辅助的算法,在理论上构建一个人工智系统。
理论上,一个完整的人工智能系统,应包含如下几大部分。
2.3.1 巡查系统
DOTA AI是建立在DOTA的基础上的,所以最重要的一点,是必须严格遵守DOTA的各项规
则,电脑角色的各种行为不能超出DOTA规则所允许的范围之外。
这些规则将通过一个巡查系统实现。由于规则是完全固定的,不会,也不容许有任何更
改,因此该系统使用工程学方法编程。
巡查系统是独立于所有电脑角色之外的裁判,应该有如下功能:
1)信号转化
把进行对抗时,所有传递给人类的、人类大脑可以识别的视觉、听觉等信息,转化为电
脑角色可以识别的数字信号。
这个功能为电脑角色提供知觉能力。
2)行为限制
因为人类角色在进行对抗前,已经熟知了对抗规则,所以会自觉地避免让所控制棋子做
出违规行为的情形。
而巡查系统就起着实时监控电脑角色行为的功能,如果某个电脑角色的数据,有可能指
引它控制的棋子做出违规的行为,则巡查系统就对该电脑角色发出警告,使其修正数据。
2.3.2 控制系统
为了使电脑角色有效地控制它的棋子,必须有一个系统,能够接收电脑角色发出的指令
,并使棋子执行该指令。
由于棋子应对电脑角色发出的指令绝对服从,因此控制系统也使用工程学方法编程。
控制系统应该有如下功能:
1)发布指令
电脑角色可以通过这一功能,对它控制的棋子下达各种指令,比如移动、攻击、撤退、
防守,等等。
2)响应指令
电脑角色发布一个指令后,棋子就必须立刻响应该指令,并严格执行。
3)执行结果反馈
棋子执行指令后,要对电脑角色汇报指令的执行情况。如果由于一些不可抗拒因素,指
令未被执行,或者指令执行不到位,电脑角色就要迅速做出其他决策。
2.3.3 指令中心
指令中心是整个人工智能系统的核心,它起着人类大脑的思维的作用。没有指令中心,
所有电脑角色也只不过是一堆堆数据;有了指令中心,电脑角色就是真人一样的存在,
才有类似真人一样的思维和行为。
指令中心应该有如下功能:
1)知己知彼
所谓“知己知彼,百战不殆”,电脑角色想要正确做出决策,必须全面掌握己方和敌方
的详细数据。
虽然电脑角色可以控制的棋子种类很多,每个棋子的实力也不同,但由于棋子所有的能
力(生命力、战斗力等)都可以用具体的数据来表示,因此无论任何时候,一个由电脑
角色控制的棋子,它的整体实力都可以靠一系列实数完整地描述。所以这个功能用完全
工程学方法实现。
2)探索活动区域
DOTA的活动区域很大,而棋子的视野很小,所以电脑角色需要通过让棋子探索活动区域
来掌握战场状况。因为存在少数几处固定的“兵家必争之地”,但由于其他(不论人类
还是电脑)角色控制的棋子是活动的,懂得转移阵地或建立临时阵地,所以这个功能可
以由半工程学方法、半模拟法共同实现。
3)提升棋子实力
为了战胜敌人,需要使自己控制的棋子变得更强。增强棋子实力的方式是获得经验值、
提升等级、学习技能、购买物品。
DOTA中每个棋子都有经验值的设定,通过与敌人对抗,每次对抗的胜利者都会获得经验
值。
每当经验值累积到一定程度,棋子的等级就会提升。
棋子每提升一次等级,就可以学习一个技能。一个棋子可以从它的技能库中选择一个技
能(五选一)进行学习。
DOTA中有数量众多的物品可供电脑角色购买,并装备给它控制的棋子。通过与敌人对抗
,每次对抗的胜利者都会获得金钱奖励,当金钱奖励累积到一定程度,就可以从物品库
中购买一个物品(多选一),装备给它的棋子。
每个电脑的棋子实力都不相同,因此不同技能和不同物品对棋子起到的能力提升作用也
不同,组合数量非常巨大。虽然在技能学习和物品购买方面,存在一些已有的常识性规
则,但更多时候还要靠模拟法实现。
4)实时评估
就算电脑角色知己知彼,也知道如何提升自己棋子的实力,但真正面对敌人时,就需要
有快速反应能力,评估战场局势,是攻是退、是坚守阵地还是呼叫支援。
RGB的人工智能系统最大的弊端就在于,这一战场评估功能也采用了完全工程学编程,
使得电脑角色没有主动的、实时的评估能力,只有被动的、反应速度慢的评估能力,而
被人类角色用计谋轻易击败。
而新版人工智能系统采用模拟法编程,能使电脑角色拥有较强的分析能力和计谋使用能
力,让其更不易被击败。
另外,电脑角色的实施评估能力要受到巡查系统的制约,即电脑角色不能以违规的方式
对付敌方角色,敌方角色也不能以违规的方式对付己方角色。
拥有上述三大系统后,这个人工智能理论设计就完成了。
下面可以开始将数学算法应用于理论当中。
第四章数学算法的实际应用
4.1 确定三大系统的参数和意义
三大系统为巡查系统、控制系统和指令中心。每个系统都有传入、传出两类参数。
4.1.1 巡查系统
巡查系统使用完全工程学方法编写。
巡查系统的参数有:
1)信号转化方面
传入参数:
①内容:己方角色总数量及棋子总数量、每个己方角色当前金钱资源、每个己方棋子当
前的实力数据(生命力、战斗力、已学技能、已购买物品),以及所处位置
敌方角色总数量及棋子总数量、每个敌方棋子当前的实力数据(生命力、战斗力、已学
技能、已购买物品),以及出现在己方棋子视野中的每个敌方棋子的位置
②类型:视觉信号
③描述:对于人类角色,上述信号都是通过人类的双眼,以视觉图像方式传入大脑。
传出参数:
①内容:内存中的数据
②类型:实数组
③描述:上述各项信号虽然以视觉图像表达出来,通过人类的双眼传入大脑,但这些信
号在电脑内存中都有对应的内存地址。信号转化实际上,是直接将这些信号对应的内存
中的数据,传送给指令中心。
2)行为限制方面
传入参数:
①内容:每个电脑角色通过控制系统下达给棋子的指令
②类型:句柄——发布指令的电脑角色,句柄——执行指令的棋子,整数——指令本身
,句柄——目标单位或目标地点
③描述:巡查系统检查电脑角色下达的指令,将其与内置的固定规则进行运算、比较
传出参数:
①内容:“允许”或“否决”
②类型:布尔值
③描述:如果下达给棋子的指令没有违反最根本的规则,就允许该指令;反之否决该指
令,并给电脑角色一个“警告”惩罚,让其重新调整角色。
4.1.2 控制系统
控制系统也使用完全工程学方法编写。
控制系统的参数有:
传入参数:
①内容:电脑角色通过指令中心实施评估后,下达的指令
②类型:句柄——发布指令的电脑角色,句柄——执行指令的棋子,整数——指令本身
,句柄——目标单位或目标地点
③描述:棋子接收到指令后会立刻响应。
传出参数:
①内容:棋子执行指令的结果
②类型:浮点数——指令完成度
③描述:用于反馈给命令中心,这次下达/响应指令是否成功。
4.1.3 命令中心
命令中心的参数有:
1)知己知彼方面
该功能使用完全工程学方法编写。
传入参数:
①内容:经过巡查系统转化过的各种信号
②类型:实数组
③描述:巡查系统为电脑角色提供知觉
传出参数:
①内容:己方角色及其控制的棋子的整体实力、敌方角色及其控制的棋子的整体实力
②类型:实数组
③描述:命令中心接收到巡查系统传来的数据后,经过相关计算,生成敌我双方目前实
力的评估报告(一系列实数),储存于电脑角色的记忆数组中。
2)探索活动区域方面
该功能使用半工程学、半模拟法——前馈网络编写。
传入参数:
①内容:经过巡查系统转化过的各种信号
②类型:实数组
③描述:传入的信号主要是己方棋子的位置分布,和敌方棋子的活动记录。因为敌方棋
子不可见,只有进入己方棋子的视线内才会被察觉,所以命令中心会根据传入参数,预
测敌人出现的地点。
传出参数:
①内容:三维坐标,及坐标的重要程度
②类型:实数组
③描述:整个活动范围是三维的空间,用三个实数变量x、y、z表示一个三维坐标(x,y,
z)。传出的三维坐标表示目的地,目的地所处的地域不同,重要性也不同。重要性是固
定的,但命令中心会根据目的地的重要程度,自行决定是否派棋子去探索。
3)提升棋子实力方面
该功能使用半工程学方法、半模拟法编写。
传入参数:
①内容:经过巡查系统转化过的各种信号
②类型:实数组
③描述:传入的信号主要是跟电脑角色自己有关的数据,为自身当前拥有的金钱资源(
用于购买物品),和棋子当前的实力(为了学习技能)。
传出参数:
①内容:技能的编号和物品的编号
②类型:整数
③描述:为了实现“有效提升”棋子实力这一目的,需要先掌握电脑角色和棋子当前的
数据(一系列实数),然后输进一个训练好的神经网络系统。神经网络识别这一系列数
据后,将迅速并准确地给出对应的具体实施方案。
4)实时评估方面
该功能使用模拟法——竞争网络编写。
传入参数:
①内容:经过巡查系统转化过的各种信号
②类型:实数组
③描述:电脑角色的棋子遇到敌方单个棋子时,需要迅速评估自己棋子和敌方棋子的实
力;如果己方数个棋子同时遇见敌方数个棋子时,不仅需要评估每一个棋子的实力,还
得考虑敌我双方棋子之间,互相配合的能力(换句话讲,就是计谋)
传出参数:
①内容:电脑角色对它的棋子发布的指令
②类型:句柄——发布指令的电脑角色,句柄——执行指令的棋子,整数——指令本身
,句柄——目标单位或目标地点
③描述:电脑角色经过实时评估后,就会做出决策。决策的内容就是一系列指令,控制
棋子做出一系列能够击败敌方棋子,或保全己方棋子的行动。行动包括直接上前攻击、
迂回、诱敌深入、埋伏落单棋子、辅助己方棋子,或者撤退、掩护友方棋子等等。
4.2 三大系统的具体实现思路
4.2.1 巡查系统
1)信号转化功能
由于各种信息的视觉信号,都与电脑内存中具体的数据相对应,所以,只要将这种对应
关系整理出来,列成一个可查询的表格,就能实现信号转化功能。
输入待转化信号→查询表格→得到输出结果
2)行为限制功能
违反规则的行为共有下列几种:
使用作弊工具,非法修改角色的金钱资源→非法改变金钱
使用作弊工具,非法修改棋子的实力→非法提升实力
以任何方式利用DOTA自身的漏洞→利用BUG
利用任何手段,直接侦测到敌方棋子的位置等不可见的数据→非法侦察情报
在附近没有敌方棋子防守的情况下,偷袭敌方建筑物→非法进攻
一方阵营的角色为它们棋子购买的特殊物品的总数量超标→违反物品限制
这些违规行为都可以通过多组数据描述。
一旦一个电脑角色发出的指令,其具体数据通过逐条比较后,与违规行为数据组中的数
据整体相似,就可以认定这个指令违规。
4.2.2 控制系统
为了实现指令的发布与响应功能,这里构造一个指令队列系统。
构造方式如下:
1)系统为每一个电脑角色的棋子分配一个指令队列
2)每个指令队列中包含有编号1至编号10,一共10个(总数可变)指令单元
3)每个指令单元均有6项数据,分别是指令单元的指令、指令的目标单位、指令的目标
地点、指令的计时器、指令的描述、指令的描述注解。
4)指令单元每项数据的作用:
数据名称描述
指令表示该棋子需要执行的指令
目标单位表示该单位需要对谁执行指令
目标地点表示该单位需要在哪里执行指令
计时器表示该单位执行该指令最多花费多长时间
描述表示该指令的行为描述,影响后续实时评估结果
描述注解表示其他必要的描述,影响后续实时评估结果
完成度表示这个指令完成度如何
表2
5)指令队列中若存在指令,棋子将按编号从1至指令总数量(最大数量10),依次执行
指令单元中的指令。
6)电脑角色对指令队列进行的操作,共有如下几种:
①下达一个立刻执行指令
下达的指令会直接替换编号1的指令单元中的指令,无论棋子刚才在做什么,现在都会
立刻执行新下达的指令。
②在指定编号的指令单元中下达一个非立刻执行指令,或在指令队列最后附加一个非立
刻执行的指令
这可以让棋子拥有做出一系列指定动作(即使用计谋)的能力。
③清除指令队列中所有指令
这可以让棋子处于原地待命状态。
④计算指令完成程度
如果指令根本没被执行,则输出0,否则输出完成度数值(百分比)
7)指令队列原理
发布指令给事物(电脑角色发布指令给队列)——事物接收指令并执行(棋子接收到指
令,并执行),这一方式模拟了人类“思考”——“行动”的过程。
4.2.3 命令中心
1)知己知彼功能
一个角色的整体实力包括其拥有的金钱资源,棋子本身实力(生命力、战斗力)和技能
、物品对棋子本身实力的提升。
由于DOTA的设定,一个角色和它控制的棋子自身各种数据一旦确定,就一定会有一个确
定的整体实力数值。
设一个角色金钱资源为M,棋子本身生命力为H,棋子本身战斗力为A,棋子已经学习的
技能对生命力、战斗力的提升为S、I,棋子已经购买的技能对生命力、战斗力的提升为
S'、I',整体实力为T。
则会有一个线性函数F,使得T=F(M,H,A,S,I,S',I')。
对于每一个角色(无论敌我),由于它各种数值(除了坐标数值)虽然会改变,但在一
定时间范围内(数秒到数分钟)可以保持稳定不突变(就算现在突然改变了,但也再会
保持一定时间,才再次改变),因此在这段稳定期内,可以使用函数F求出整体实力T。
2)探索活动区域功能
①半工程学方面,由于整个活动区域内各项地形数值不会改变(地面不会在这里凸起一
块,或凹进一块等),因此一个地域内的地形的重要性(是否利于防守、是否毫无战略
价值等),在一开始就被设置好了,不会改变。
所以目标地点所处的地域,重要性也能通过一个可查询表格实现。
输入目标地点坐标→查询表格→得到输出结果
而目标地点坐标,可以通过对敌方棋子活动记录预测(敌人最后出现在哪里,就尝试去
哪里探索),或者反向查询表格(输入重要性,得到目标地点)来求出。
②半模拟法方面,由于电脑角色只需要求出自身、敌方每个未露面棋子整体实力,然后
通过简单权重计算,算出棋子到达未探索的目的地时,万一遇见敌方棋子时,是否敌得
过即可。
所以构建一个只有一个神经元的系统。
神经元有五个输入,为自身棋子的整体实力,与敌方每个未露面棋子的整体实力的大小
比较。如果自身棋子的整体实力比一个敌方棋子强大,对应的输入就为1,否则为0.
神经元依次把五个输入与其对应的权重(电脑角色对于每个敌方角色的实力预估)相乘
,并求积的总和。如果最终激励值超过神经元的阈值,则去目标地点探索承担的风险可
以接受;否则表示去目标地点探索承担的风险太大,不可接受。
3)提升棋子实力功能
提升棋子实力主要通过两点,技能的(多选一)学习和物品的(多选一)购买。
技能的学习:
技能可以提升棋子的生命力或战斗力。
每个棋子每一等级可以学习一个技能(从自身技能库中五选一),由于一个技能不会同
时提升生命力和战斗力,因此需要评估所有类别的技能的各项数据,找出学习哪一个技
能后,棋子整体实力提升最明显。
对于一些棋子的部分技能,存在一些常识性学习规则,这些规则是人类角色通过无数次
试验,得到的常识。如果一个棋子技能学习部分存在常识性学习规则,技能将优先按照
该规则以固定的方式学习技能。
如果一个棋子没有或只有很少常识性学习规则,那么就需要使用一个通用技能学习神经
网络,通过该网络求最优解。
由于通用技能学习神经网络需要做到五选一,存在竞争关系,因此需要使用竞争网络。
构建一个只有输入层和竞争层的双层竞争网络。
输入层由处理单元构成,处理单元的作用是将输入的,可以完整描述一个棋子自身实力
的所有数据,转化为一个输入模式。对于每一个棋子,输入模式是通用的,但因为每个
技能都不相同,所以竞争单元也不相同。
竞争层由五个竞争单元组成。每个竞争神经单元都与输入层的处理单元相连接,如果一
个竞争单元输入的加权和最大,则该竞争单元对应的技能成为优胜者,被棋子学习。
由于技能的复杂性,这个竞争网络必须由人工监督训练。
物品的购买:
物品也可以提升棋子的生命力或战斗力。
物品总量众多,而且物品的购买不受棋子种类限制(就是说对于每一个棋子,它能购买
的物品都是相同的)。物品的购买仅仅受限于电脑角色的金钱资源,和棋子所携带物品
总量(一个棋子最多可以携带6个物品)。
电脑角色在为棋子购买物品时,不可能把每一个物品都买一遍,因此需要评估所有类别
的物品的各项数据,找出购买哪一个物品后,棋子整体实力提升最明显。
对于一些棋子的部分物品,也存在一些常识性购买规则,这些规则是人类角色通过无数
次试验,得到的常识。如果一个棋子物品购买部分存在常识性购买规则,物品将优先按
照该规则以固定的方式购买。
如果一个棋子没有或只有很少常识性学习规则,那么就需要使用一个通用物品购买神经
网络,通过该网络求最优解。
由于通用物品购买神经网络需要做到多选一,存在竞争关系,因此需要使用竞争网络。
构建一个只有输入层和竞争层的双层竞争网络。
输入层由处理单元构成,处理单元的作用是将输入的,可以完整描述一个棋子自身实力
的所有数据,转化为一个输入模式。对于每一个棋子,输入模式都通用,竞争单元也通
用的。无论棋子是什么种类的,只要它的输入模式与已知的符合,就可以购买对应的物
品。
竞争层由多个竞争单元组成,数量取决与物品总数。每个竞争神经单元都与输入层的处
理单元相连接,如果一个竞争单元输入的加权和最大,则该竞争单元对应的物品成为优
胜者,被棋子购买。
由于物品的复杂性,这个竞争网络必须也由人工监督训练。
4)实时评估功能
发生遭遇战时,巡查系统会对每个电脑角色进行通告,并为其提供战况情报与数据。
对敌我双方临近战场棋子整体实力的评估,是通过一个神经元进行的。这个神经元构造
与实现“探索活动区域”功能的神经元相似,只不过目的地坐标被自动设定为战场。
这个评估是告诉一个电脑角色,加入战斗有多大风险,多大的胜算。电脑角色将评估结
果于自身的性格值结合,最后决定是否加入战斗。
电脑角色谋略的使用,是靠一个竞争网络实现的。
这个竞争网络的处理单元,将战场的地形、坐标、范围,以及参与战斗的敌我双方的棋
子整体实力等详细数据,转化成一个输入模式。对于每一个棋子,输入模式都通用,竞
争单元也通用。无论棋子是什么种类的,只要它的输入模式与已知的符合,控制它的电
脑角色就会做出相应的一系列动作(即实施谋略)。
竞争层有多个竞争单元组成,数量取决与一个角色可以做出的谋略或配合的总数。对于
电脑角色,它们一开始并不了解,也不能识别不同输入模式对应的行为的意义。所以这
个竞争网络必须由监督人工训练,由人告诉电脑角色,什么样的行为是迂回、是诱敌深
入或埋伏落单敌方棋子等,以及什么样的输入模式对应什么样的行为,等等。
第五章总结
上述全部内容就是一个DOTA人工智能系统的构建理论和实现思路。
理论的核心内容是通过三大系统,即巡查系统、控制系统和命令中心,来实现一个人工
智能的完整功能。
1)巡查系统就像是个裁判,它为电脑角色提供知觉能力,同时每时每刻监督电脑角色
的行为,如果发现电脑角色违规,就会警告该角色并责令改正。
2)控制系统是一个带有反馈环节的控制手段,它为电脑角色提供对棋子的绝对控制权
力,使电脑角色能够有效地将思维通过棋子的行为表现出来。
3)命令中心类似于人类的大脑,它为电脑角色提供思维能力,电脑角色通过这个系统
产生意识,会对感知环境,并对对各种复杂状况做出反应。
整个人工智能实际制作起来的难点,一是理论的建立,二是算法的设计,而算法的设计
又依赖于现有数据的输入。
理论为实际算法和程序代码提供思路,反过来实际算法和程序代码会通过自身的设计、
执行来支持理论的正确性。
编写一个DOTA人工智能系统虽然是非常费时的工作,但它由于使用了人工神经网络系统
,因此不论是功能方面、排错维护方面,还是算法复杂度、实际代码所需量,都比完全
工程学方法编写的人工智能系统强大。
目前,整个DOTA AI的程序代码已经实现了第一大系统巡查系统的“信号转化”功能,
和第二大系统控制系统的全部功能“指令的发布/响应与执行结果反馈”。
所有系统中,以第三大系统命令中心“实施评估”功能最为重要。可以说一切其他的智
能,都建立在电脑角色正确识别当前环境、当前棋子实力等数据的基础上。
要完整、精确地实现第第三大系统的功能,需要以各种数据录入完毕、各个算法设计完
毕、所有神经网络正确训练完毕为前提。
目前整个DOTA AI的制作正在进行的阶段,就是数据的录入。只有将所有必要的数据录
入完毕后,所有依赖于数据完整的后续功能(算法设计、神经网络训练)才有实现的可
能。
1 (共1页)
进入Military版参与讨论
相关主题
新研究表明,白人比黄人更易感染武肺最火的深度学习人工神经网络就和中医理论很相似
最新中日两国空军海军整体实力对比(转载)钱璐璐教授又有新突破: DNA 人工智能网络识别手写数字
中国整体实力超过美国了吧?高能物理学家的“加速”梦:谢家麟的科研人生
山大数学排名第二不是完全靠名人,是整体实力,包括学生的素质---- 要更聪明的抵制日车
3大阅兵中国政府庄严宣布裁军30万美国、加拿大与卢森堡科学家分享诺贝尔医学奖
五代机普遍处于技术攻关状态 六代机研发已起跑美国也搞人肉
铁路改革方案胎死腹中魏则西主治医生曾是央视红人,删979条微博后,现查无此人,我们还能相信谁?
ZT 山西东方机械厂破产真相CS本质上是技校,属于职业培训
相关话题的讨论汇总
话题: 棋子话题: dota话题: 指令话题: 角色话题: 电脑