打印

计算机人工智能技术纵览-----3高端智能

[复制链接]
4446|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
三、高端智能(群聚技术,神经网络,遗传算法,机器视觉\听觉)




(1)群聚技术

我们之前所说到的,都只是单体智能技术,而群聚技术,正是面对两个以上,或者成千上万个机器人共同运动时做出的智能反应。


例如我们的乐高倒垃圾机器人,如果有三个四个这样的乐高机器人同时工作,让他们在不同的位置同时去相同的地方倒垃圾,这时就会有产生,碰撞,拥挤等问题,群聚技术正是用来解决这些问题的AI算法。


群聚行为中每个单独的个体都要考虑到周围其它个体的状况而做出决策。例如邻近单位的位置,他们的方向,以及他们和自身有多接近等信息。


这里有个很好用的开源群聚技术库,叫opensteer http://opensteer.sourceforge.net/


本吧大多数人都在讨论opencv,其实开源人工智能有三剑客,opencv openni opensteer,openni和opensteer很少有人知道,openni在后面的机器视觉会详细讲到。


我们先来看一下opensteer的几个功能截图,你就知道群聚技术可以用来干什么了。


1.人群跟随行为


点开网址可看到动态演示(需要安装java虚拟机)http://www.red3d.com/cwr/steer/CrowdPath.html



2.领队跟随行为



点开网址可看到动态演示(需要安装java虚拟机)http://www.red3d.com/cwr/steer/LeaderFollow.html




3.群体碰撞躲避穿行功能


点开网址可看到动态演示(需要安装java虚拟机)http://www.red3d.com/cwr/steer/Unaligned.html




4.群体排队进门功能

点开网址可看到动态演示(需要安装java虚拟机)http://www.red3d.com/cwr/steer/Doorway.html



当然opensteer可不止这些功能,想深入了解的还是去它的官网上看吧,有很多好玩的群聚行为演示。这样我们多台乐高机器人就可以协同倒垃圾啦,排队,避让应有尽有,人在多,也不会出事啦!

相关帖子

沙发
keer_zu|  楼主 | 2015-4-3 09:51 | 只看该作者
群聚技术背后的核心原理非常简单,世界任何复杂的现象,都是有若干个简单的基本规律组成的,群聚技术也不例外。无论多么复杂的群聚技术,最终都可以化解为三种基本行为,就和红绿蓝三原色一样,这就是凝聚、对齐、分隔!



【凝聚行为】
每个单位都往其邻近单位的平均位置行动

【对齐行为】
每个单位行动时,都要把自已对齐在其邻近单位的平均方向上。

【分隔行为】
每个单位行动时,要避免撞上其邻近单位


在计算机人工智能群聚技术学科中,不管有多复杂的群聚行为都是由这三大基本行为组合构成的,不信?我们可以分析以下上面那几个复杂的群聚行为

领队跟随,实际上是凝聚行为+分隔行为

排队进门,实际上是对齐行为+分隔行为

群体碰撞躲避穿行,实际上是分隔行为+分隔行为


是不是很简单呢,掌握了以上三大基本行为,你可以随意组合,创造出这世上无比复杂的群聚现象。

使用特权

评论回复
板凳
keer_zu|  楼主 | 2015-4-3 09:56 | 只看该作者
(2) 神经网络


我们从此技术开始,正式步入了机器人学习并进化阶段,人类的思维并不是有多聪明导致的,而是由于人类群体千万年的经验积累导致的,如果说没有这些经验,人类的单次智能,远远不能够跟运用博弈论技术后的电脑相比。



神经网络,就是模拟人类大脑的神经元网状结构来处理各种输入和输出的,在多次的信号输入后,神经元上的突触的阀值会不断的调整,直到最终输出结果达到预期目标,这就是人类的经验哲学,其实在大脑中无非是神经元上的突触电阻值的变化而已,改变了一个输入的最终输出。



为了降低本文的阅读门槛,我们通过一些日常都能够玩到的游戏来解读神经网络能够带给我们什么?



目前在游戏中运用神经网络的极少,大部分都是状态机实现的,我们对比两个游戏,一个是射击游戏CS的AI电脑,一个是卡马克大神的雷神之锤AI电脑。

vs



CS的电脑,例如经典blood地图,会有路点文件这个概念,路点就是机器人可以走的路线,例如blood地图就只能定义两种跑完全图的路线,一种向左走,一种向右走,由ai随机来挑选,发现人后,他们或者在0.xxx秒后开枪,或者隐避,跳跃等,这一切的概率都是人工设置好的,这是经典的模糊状态机技术。 打时间长后我们会发现电脑存在很大程度上的死板的规律,例如,电脑会无脑的从某一边冲出来,使用阻击的玩家可以轻松的预判好时间进行击杀。几乎每次如此。


而雷神之锤的AI会如何在这张地图上运行呢?第一次,雷神之锤的AI会很傻很天真的从一边冲出来,被玩家阻击,第二次,第三次依然如此,到了第四次,AI会选路点文件中另一条路冲出,同样被玩家阻击,到了第8次,AI再次改变了策略,他在冲出之前,会先向上回被伏击的地方扔一颗雷,然后冲出,或者改变了他冲出的移动速度。这就是运用了简单神经网络技术的AI行为,它会跟据前几次的结局,改变下一次的策略或数值。




据《Doom启示录》这本记实小说中记载,当年卡马克大神从麻省理工大学请了一个大学生写的这段神经网络代码,这一次也是游戏界唯一一次,之后鲜有听说某游戏采用了神经网络技术,就连雷神的后续作品也未曾使用,可见此技术还处在未成熟的阶段。再此向卡马克大神致敬。




我们明白了神经网络有什么作用后,就可以继续深入了解一下神经网络的原理,和实现方法。这里为了降低门槛,我们再次基于一款游戏来讲解,虫脑--BugBrain。


BugBrain是神经网络入门的最好游戏之一,别看它是款游戏,可没那么容易通关,极少的人可以打通这款游戏,可以说,玩通这款游戏,你的神经网络就已经基本入门了。(win7-64位无法运行)


BugBrain将让你从零开始构造一个大脑, 你开始完成的可能只是一个简单的电路,之后从生物思考最原始的原理出发完成的是一个瓢虫的大脑,他有躲天敌,越障碍等生物智能,之后你将给这个大脑加上学习和**的能力,最终你将编辑人的大脑。最终关将开放神经元编辑器


BugBrain下载,及攻略,详细介绍 http://hi.baidu.com/emtznxkjdgdfjve/item/b64526c831081757bcef6973


我们就通过这款游戏来讲解神经网络的实现原理



第一关相当简单,没有神经元,红色是输入,蓝色是输出,红色输入设备为一个电源按钮,按下就通电,蓝色输出设备为一个灯**,只要将输入和输出用一跟黄色的神经联起来,这关就过了,在右边的调试器上,我们可以看到红色设备的信号强度,和蓝色设备的信号强度。

这一关左边的红色输出电流信号会从弱变强,再由强变弱,反复运行,信号强度从0-100 这一关的科学家要得到的结果是信号强度>80时,灯**才亮,而<80时,灯**熄灭。


这时我们就要用到神经元,拖一个大绿球,这个就是神经元,神经元的两端分别用神经连接输入设备和输出设备。这时我们再次开启测试,发现结果没有变化,依然什么样的输入,就有什么样的输出,灯光忽暗忽灭,达不到最终要求。我们右键点击这个大绿球神经元,可以看到原来神经元有个重要功能就是阀值。

我们把这个神经元的阀值设置成80,这一关就顺利通过了。那么,什么是阀值?顾名思义,阀就是水龙头,起控制开关的作用,阀值为80的意义在于,只有输入进来的信号大于80,才进行输出。这样在红色输入设备的信号强度没有到80前,这个神经元都不会输出任何东西,只有超过了80,灯**才被点亮,之后慢慢的输入设备的信号又降到了80以下,灯**就会再次得不到输出而熄灭。


我们再来关注一下和神经元左边的蓝色突起小球,这个东西叫突触,突触的主要功能,你可以将它想象成电阻,他可以限制或加强输入的信号强度。例如:


我们把突触的权重值设为 50,就代表输入设备的信号0-100,被压缩成为0-50 ,输入信号为10的时候,经过突触后传给神经元的其实是5,输入信号为20的时候,经过突触后传给神经元的其实是10.


是不是很简单呢? 其实再复杂的智能和思考,说到最后,都是生物电通过无数个突触和神经元完成的,给我一个电阻和一个阀值,就能通过无数的神经元联接来创造无比复杂的智能与思考。


假如我们小的时候被蛇咬过,那么我们关联到存储蛇信息的神经元的阀值就会特别高,导致信号无法输出,如果没有特别高的信号刺激你,你是不会去摸蛇的,当你面临生命危险,必须抓住一条蛇来充饥时,这时大脑给你的信号强度就会超过这个神经元的阀值,于是你发现你突然就敢抓蛇了。一切一切的思考过程,都可以用神经元与突触创造。


这一关,神经元的阀值80是我们人工输入进去的,这就是神经网络技术训练AI的两个方法之一,有导师学习( Supervised Learning )与无导师学习( Unsupervised Learning )。


我们人类就是这一关这个简单大脑的导师,我们告诉它,阀值80或80以上,就可过关,那如果没人告诉这个大脑,该怎么办呢?这就是无导师学习( Unsupervised Learning )。


我们可以让机器人自己随机调整这个大脑的阀值与突触电阻,说的难听点就是蒙,总有一次,机器人会蒙对80-100这些数。例如机器人在100次的尝试下,分别蒙出了85 成功5次,95成功8次,75成功0次的记录。那么下次你再让机器人过这关的时候,他会把这个神经元的阀值设置成为这些记录里成功次数最高的那个阀值,例如85和95都是成功率100%,但是95的次数比85要多,所以机器人选择95!


我们上面介绍的例子相当简单,这就是单层神经网络,输出和输入之间,只有一层神经元,如果增加到两层或者多层,这就是多层神经网络,多层神经网络的结构非常复杂,但是核心原理逃不出上面这些。


请注意,神经网络的结构一旦编辑完成,是不能更改的,也就是说,神经网络AI不能自己进化自己的功能,而只是无限进化使用这些功能的技巧和时机,例如我们建立了一个会跑会跳的机器人神经网络结构,那么这个机器人只能会走的越来越好,跳的越来越准,但是他自己是不可能进化出听说功能的。




【乐高Ev3应用案例】


回到我们的乐高倒垃圾机器人的案例上来,我们可以给它加上什么样的神经网络功能呢?


回顾之前的技术,起初我们的机器人放到别人家就傻了叉了,不知道垃圾桶在那里,后来通过寻路技术,我们加入了A星算法,可以将别人家的地图传给他,他就知道该如何移动到达别人家的垃圾桶了。现在,拥有了神经网络技术,我们就可以撤底的扔掉地图。


1.有导师学习版( Supervised Learning )


我们可以写这样一个程序,你可以用乐高ev3的红外线遥控器控制机器人上下左右移动,在你遥控的时候,机器人会向你学习,记录你的指令集,例如你先移动了1米,然后左转,又移动了5米,这套指令集就会被机器人关联成网络并记录成功1次。然后你再次训练,因为人也不一定遥控的很准,所以有时会有误操作,会让机器人走远路,没关系,你只要多训练几次,机器人就会挑选成功次数最多,并且到达时间最短的指令集做为训练成果,这样机器人可以被放在任何人的家里,让主人遥控那么两三次,机器人就知道去垃圾桶应该怎么走了。




2.无导师学习版( Unsupervised Learning )


这次我们连遥控器都不需要,机器人完全通过自己找到垃圾桶,首先机器人进行第一次尝试,蒙一组指令集,例如移动2米,然后左转,再移动3米,发现没有到达垃圾桶。这时他会倒着执行指令集原路返回,并记录下这次的成绩,离目标对角线距离5米。然后开始第二次的尝试,再蒙一组指令集,如此反复几百次,其中有10个指令集成功到达了垃圾桶,那么机器人在以后的执行任务中,就会在这10个指令集中挑选到达速度最快的一个进行执行。






====================如果你没接触过编程,可以忽略此部分===================
想深入了解神经网络编程的请点击:http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html

使用特权

评论回复
地板
keer_zu|  楼主 | 2015-4-3 09:57 | 只看该作者
@yyy71cj 转来的

使用特权

评论回复
5
xlhtracy| | 2015-4-3 12:04 | 只看该作者
赞一个~

使用特权

评论回复
6
keer_zu|  楼主 | 2015-4-3 12:55 | 只看该作者

使用特权

评论回复
7
keer_zu|  楼主 | 2015-4-4 11:48 | 只看该作者
yyy71cj 发表于 2015-4-4 10:32
不错,按我的观点,这种策略,叫电脑心理学比较适合

既然有名字叫人工智能了,就别起那么多名字了吧

使用特权

评论回复
8
keer_zu|  楼主 | 2015-4-5 16:47 | 只看该作者
yyy71cj 发表于 2015-4-4 18:02
因为开始的时候,人工智能似乎不在心理学上转圈,可是现在变了

人工智能本来就是跨计算机科学,心理学,哲学,数学.....的交叉学科

使用特权

评论回复
9
阳光豆苗| | 2015-4-9 13:24 | 只看该作者
,完全看不懂系列。

使用特权

评论回复
10
keer_zu|  楼主 | 2015-4-10 09:06 | 只看该作者
yyy71cj 发表于 2015-4-10 09:01
有一些很著名的人工智能逻辑,它们是用来超越人类的,而不是模仿人类。例如有10个人,每人说了几句话,其 ...

计算能力早就超越了,智能嘛,还早。

使用特权

评论回复
11
keer_zu|  楼主 | 2015-4-13 09:10 | 只看该作者
yyy71cj 发表于 2015-4-10 23:44
但是,从你的帖子我感觉到,人工智能已经转入人类模仿了……

其实就是模仿人的。

使用特权

评论回复
12
keer_zu|  楼主 | 2015-4-13 10:50 | 只看该作者
yyy71cj 发表于 2015-4-13 09:24
这是人类在揣摩上帝的思想

人类一直在向上帝看齐

使用特权

评论回复
13
keer_zu|  楼主 | 2015-4-13 17:49 | 只看该作者
yyy71cj 发表于 2015-4-13 17:14
上帝的工作正是造人

他的工作是创造宇宙

使用特权

评论回复
14
yuyo1992| | 2015-4-20 20:59 | 只看该作者
好牛的说

使用特权

评论回复
15
stay_foolish| | 2015-4-27 17:32 | 只看该作者

大神,收了我吧,由浅入深,尽管后来看不太懂,但是又有点明白了,大赞……

使用特权

评论回复
16
keer_zu|  楼主 | 2015-4-27 17:37 | 只看该作者
stay_foolish 发表于 2015-4-27 17:32
大神,收了我吧,由浅入深,尽管后来看不太懂,但是又有点明白了,大赞…… ...

你明白了?很好,我还没明白,给我讲讲呗:lol

使用特权

评论回复
17
keer_zu|  楼主 | 2015-4-27 17:37 | 只看该作者
stay_foolish 发表于 2015-4-27 17:32
大神,收了我吧,由浅入深,尽管后来看不太懂,但是又有点明白了,大赞…… ...

你明白了?很好,我还没明白,给我讲讲呗:lol

使用特权

评论回复
18
stay_foolish| | 2015-4-27 20:20 | 只看该作者
keer_zu 发表于 2015-4-27 17:37
你明白了?很好,我还没明白,给我讲讲呗

高人啊,收我为徒吧,
还不知道咋入门呢,如何实现呢

使用特权

评论回复
19
keer_zu|  楼主 | 2015-4-28 12:07 | 只看该作者
stay_foolish 发表于 2015-4-27 20:20
高人啊,收我为徒吧,
还不知道咋入门呢,如何实现呢

一起学习啦。

使用特权

评论回复
20
yangwenguan| | 2015-5-23 15:35 | 只看该作者
人工智能就是一个伪命题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1349

主题

12426

帖子

53

粉丝