用户:技术喵查看:3 回复:37 评论:3 创建时间:2018-01-25T18:51:29
【2018.01.25版本更新内容】
编程猫积木实验室上线
1、分类AI
2、GameAI
做好准备!今天的信息量很大!!!!
人工智能(Artificial Intelligence),英文缩写为AI
它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术
及应用系统的一门新的技术科学
据此,编程猫开发出了人工智能相关积木
从【积木实验室】中就可以添加使用哦
有了AI学习积木,人工智能编程不再遥远
使用此类积木,训练师们可以制作出能进行智能学习的角色游戏
使用分类AI前,技术喵先带你们了解下分类AI的基础知识!
1)什么是分类器
分类器是数据挖掘中对样本进行分类的方法的统称。
举个例子:
酒类识别:我们测量一瓶酒的颜色(波长)、酒精浓度数据,把这些数据输入机器中,那么机器就可以根据这些去判断酒的种类,是啤酒红酒还是白酒。
这种可以对输入数据进行自动分类的机器,就叫做分类器。
实现分类器有很多方法,基于神经网络的深度学习就是其中一种。
2)神经网络
神经网络是将模仿神经元的脑神经单位进行连接,形成的网络状图。
完整的神经网络包括输入层、隐藏层、输出层
(如图:输出层4个输入单元,隐藏层有2层,分别4个和3个隐藏单元,输出层有2个输出单元)
输入层:输入需要预测事物的特征值。
比如在酒类识别中,酒的特征值就是酒的颜色、酒精浓度。
↓
隐藏层:隐藏层可以是单层的,也可以是多层的。
通过复杂的隐藏层结构,提取输入数据中的显著特征,
将结果传到输出层
↓
输出层:拥有不同的输出分类结果。
比如在酒类识别中,输出的结果是啤酒、红酒、白酒。
3)神经网络训练和预测
分类器需要通过训大概地预测出分类结果。
每一组的训练数据都需要包含所有的特征值及分类类别。
而预测结果是否准确,与神经网络的结构、训练次数、甚至训练时的一些随机发生的因素都有关系,真正能够熟练地训练出效率、准确率高的神经网络,需要更多的努力!
【分类AI积木用法】
选择添加指定AI功能就会看到积木盒子列表添加了相应的AI积木
▽
1、矩阵数据积木
作用:用来直接调取指定列或行的矩阵数据。
矩阵数据分为两种:
1)训练师们自行上传相关数据的excel表格,系统会存作矩阵数据。
2)系统预制的4组矩阵数据。
2、设置训练数据积木
作用:分别设置需要训练的数据的特征和分类。
训练数据特征:必须是数字类型,非数字类型,会被自动忽略。
训练数据分类:支持数字和字符串形式,系统自动识别总共的类别数量。
(目前输出层只支持2种类别,否则无法运行)
3、神经网络隐含层结构积木
作用:设置神经网络隐藏层结构。
不同的神经网络隐藏层结构,对最后的训练结果会产生不同的影响
4、后向传播算法(训练积木)
作用:对训练数据使用特定算法进行训练,并存为模型
在训练的过程中,舞台中也会出现该模型的相关训练信息
当输出层为非2时,无法显示预测的图像
▽
当输入层也就是训练特征为2时,还会出现模型预测的训练图像。
▽
随着训练次数的增多,预测的模型也会更加准确
▽
5、预测分类积木
作用:用训练数据训练完存作的模型,对新的输入特征进行分类预测。
注意:预测的特征值数量需要与原训练数据的特征值数量一致,
否则无法预测结果。
预测出的结果分为两种形式:
(1)预测分类结果
作用:直接显示预测的分类结果,输出形式为变量。
(2)预测分类概率
作用:显示该组特征值中,不同分类结果的概率,输出形式为列表。
【分类AI效果展示】
人工智能的发展是全方位的,在游戏领域也是这样。
传说中战胜围棋世界冠军的人工智能程序AlphaGo(阿法狗)
它主要工作原理,就是利用神经网络的深度学习算法。
那么AI是如何利用神经网络结构来工作的呢?
还记得分类AI的工作原理吧?
一个完整的神经网络包括了输入层、隐藏层、输出层
GameAI也是相同的
▼
输入层负责收集信息,就是游戏中实时变化的数据;
比如自己角色的坐标、自己的血量、敌人的坐标、敌人的数量等等。
这些信息导入隐藏层后进行运算和处理;
最终从输出层中输出的分类结果,就相当于我们玩游戏时做出的决策。
比如控制角色移动,控制角色跳跃,控制角色发射子弹等等。
那么为了让GameAI做出正确的决策,
我们也需要对整个神经网络结构进行训练,得到我们需要的模型。
以《FlappyBird》这款游戏为例,介绍如何通过GameAI让人工智能自己玩起Flappy Bird
▼
【遗传算法--让AI自己学会玩游戏】
通过生成大量的随机模型,让AI角色在游戏中不断的尝试,
这些模型有的会很快淘汰掉,有的却可以得很高的分。
然后通过遗传算法,将得分高的模型结构保留下来,像生物一样让他们相互之间进化,
最终训练出一代更比一代强,能够获得更高分,表现地更好的模型。
1、模块初始化
首先选择需要作为AI的角色:小鸟
初始化一个模型:模型1
其中输入层和输出层的数据先空着,隐含层可以自己调整,这里设置为单层4个神经元
对于遗传算法来说,如果每次只运行一个角色,效率太低了,
因此我们设置每轮运行数量100
然后启动GameAI
2、角色变量、事件启动
为了让这100只小鸟独立运行,我们需要改变一些游戏设置:角色变量和事件启动积木。
1)设置角色变量
对于这个游戏来说,需要修改小鸟Y方向的速度为角色变量。
修改脚本积木中涉及到的变量:
2)修改触发事件积木
因为克隆出100只小鸟需要一定时间,为了避免部分小鸟比其他小鸟先行动,我们需要把游戏开始时的触发事件改为“当GameAI启动”使所有小鸟同步行动。
3、确定输入输出信息
1)确定输入层的信息
对于FlappyBird的这个游戏,决定小鸟能不能通过柱子最重要的因素就是:小鸟与柱子下的Y坐标。 所以我们选择的两个特征是:1、小鸟的Y坐标值,2、柱子下的Y坐标值。
将中心点设置在小鸟中间,以及柱子下的顶部中心
(如图所示的位置↓)
2)确定输出层的信息
我们自己玩这个游戏时,会有两种操作结果:什么都不做,和点击鼠标
那么对应到GameAI,就会是两个输出结果:1、不操作,2、使小鸟飞行。
我们需要先把游戏本身鼠标点击触发的事件(飞行),用函数封装起来。
然后才能选择AI角色使用行为:不操作和飞行,AI的使用行为必须是函数形式。
设置AI角色喵亡条件:
然后设置实时读取的AI角色特征值:
3)完善输入输出数量
确认了输入输出信息后,还要记得在初始化模型的位置填入输入层和输出层的数量,完成整个模型的设定。
输入层输入的特征是小鸟的Y坐标和柱子下的Y坐标,所以是2个;
输出层输出的是不操作和飞翔,所以也是2个。
4、GameAI决策
让AI基于当前的特征值做出使用行为的决策,即不操作或飞行。
5、遗传算法
当AI角色喵亡时,记录AI角色的得分,等到所有AI角色都喵亡,就能从中找出这一批里更好的模型。
当所有的AI角色都喵亡后,使用“遗传算法”优化模型,并重启GameAI进行下一次预测。
训练完毕后,如果想保留之前的训练结果,记得移开初始化模型积木哦,这样程序才会在之前模型1的基础上继续优化模型!
6、使用模型
模型训练完毕,我们可以使用模型,让AI角色自动游戏啦!
使用模型,启动GameAI。
【GameAI效果展示】
(建议购买代码,实际操作一下哦~)
如果对模型满意的话,我们还可以用AI模型制作AI游戏哦~
像是改编游戏,控制水管,给AI角色制造难度
▽
积木实验室后续还会增加更多功能块,以及《源码图鉴》的相关更新内容哦!
咳咳,此次更新内容略有难度,萌新们别担心,之后会有详细教学哦~
dalao们请尽情食用!
大概明白了,就是一个什么都不知道的小学生,做一道又一百个选项的选择题,他先试了试a选项,老师告诉他出错在什么地方,第二次,他又选了b,老师又告诉他错在什么地方。。。。。。最后,他知道了答案是c,之后,就一直选c,知道有一次,老师告诉他错了。。。。。。后来他掌握了规律,变成了中学生。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
点赞0
评论
yee089技术喵谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
点赞0
评论