猫史档案馆


【版本更新】编程猫积木实验室上线,人工智能AI来袭!

用户:技术喵技术喵查看: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们请尽情食用!


回复

上一页1 页 / 共 2下一页
糖醋排骨糖醋排骨

积木实验室???

点赞0


评论


浪日子的鲸浪日子的鲸

感觉难度有点大,希望能出更完整的教程

点赞0


评论


ftxqgfudiftxqgfudi

有难度,很喜欢,说不定就可以做出什么厉害东西出喵69;,身在外地只能留待回家再玩

点赞0


评论


LobelycityLobelycity

最好为AI做一个视频教程。


点赞0


评论


茶三岁茶三岁

(萌新表示一脸懵逼)

点赞0


评论


四九圣尊四九圣尊

编程猫转python语言后,第一行是import codemao

怎么下载到codemao这个包呢?

点赞0


评论


杰鸽杰鸽

冬令营AI高级班学这个的吗?

期待

点赞0


评论


ftxqgfudiftxqgfudi

你下载不到是因为你c没大写

点赞0


评论


I桔汁糖浆II桔汁糖浆I

希望技术喵能科普一下有关深度学习的相关资料!!!不然像我这样的萌新看这个简直一脸懵逼


点赞0


评论


四九圣尊四九圣尊

博士,有了这个方便快捷创建神经网络的模块,我是不是局可以创建(维度*位置*颜色)层,然后喵学习那些照片

点赞0


评论


四九圣尊四九圣尊

老哥不行啊


点赞0


评论


土豪·鼠土豪·鼠

我去-_-||看不懂(#-.-)

点赞0


评论


狗猫鼠狗猫鼠

会了

点赞0


评论


********

?迷茫ing

点赞0


评论


Yue.SYue.S

大家加油,接下来会陆续推出相应课程,你们可以自己训练模型,解决很多包括图像,语音识别的问题,潘博士也会定期上来和大家交流!

点赞0


评论


陌路丿善之陌路丿善之

大概明白了,就是一个什么都不知道的小学生,做一道又一百个选项的选择题,他先试了试a选项,老师告诉他出错在什么地方,第二次,他又选了b,老师又告诉他错在什么地方。。。。。。最后,他知道了答案是c,之后,就一直选c,知道有一次,老师告诉他错了。。。。。。后来他掌握了规律,变成了中学生。。。。。。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

点赞0


评论


DA萌新DA萌新

楼上解释的简单喵!一下就懂了!  


点赞0


评论


lazybone97lazybone97

没听懂。


点赞0


评论


病毒涉熙病毒涉熙

@_@晕

点赞0


评论


小螺旋小螺旋

没错!这就是我们梦寐以求的…………










外挂


点赞0


评论


NoctfomNoctfom

萌新表示脑容量太小,一个积木也看不懂

点赞0


评论


无情的AC自动鸡无情的AC自动鸡

希望技术喵能科普一下有关深度学习的相关资料!!!不然像我这样的萌新看这个简直一脸懵逼


点赞0


评论


yee089yee089

技术喵谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

点赞0


评论


宇宙无敌宇宙无敌



点赞0


评论


ftxqgfudiftxqgfudi

时隔一个多月我现在还是有点晕乎乎的……

点赞0


评论


轻灵如画轻灵如画

半懂不懂吧。。。跑去购买代码去。。。期待人机对战!

点赞0


评论


上邙上邙


点赞0


评论


过去是星能猫副本过去是星能猫副本

又出个云变量使我们联机游戏的梦想有可能成功了!!

点赞0


评论


陌、林陌、林

我看到分图层的那个图已经是脸懵逼了,谁喵会用啊!!!最多只会用云变量······


点赞0


评论


加贝G加贝G

期待云Ö喵;量(๑˙ー˙๑)

点赞0


评论