AI玩捉迷藏的七点启示

捉迷藏的游戏自古已有之,它给无数小孩带来了童年乐趣。如果让一群AI来玩躲猫猫,会发生什么呢?看看下面这个视频:

该实验主要基于两种人工智能算法:多智能体学习以及强化学习。从上面结果可以得出以下几点启示:

启示一:DeepMind和OpenAI在游戏领域运用AI最牛的两个公司,DeepMind搞出了AlphaGO等一些列产品,而OpenAI则搞出了玩dota的机器人。尽管都是用“深度强化学习”玩游戏,但在技术流派上,还是有些许的差别。DeepMind推崇Value-based RL的思想,搞出了Deep Q-learning, DDPG之类的东西;而OpenAI则推崇Policy-based RL,它的TRPO以及后来的PPO,都是在实验中几乎必用的算法。照理讲,Policy-based应该是强化学习的终极目标,但架不住DeepMind背靠谷歌这颗大树,Value-based更消耗资源也能跑起来,DeepMind让其他研究者只能远观。

启示二:在模拟人类物理环境的智能体行为中,多个智能体之间是可以学习出人类的技能,比如借助工具,甚至还能出现一些意想不到的结果,找到环境的bug,就如同下面捉迷藏游戏中学会了飞。在OpenAI另一个项目《

Neural MMO》中,出现了机器人的族群概念和迁徙动作。

cf08a266da903d6decc6731c641710e9.gif

8afa74e44655e821c232d650c49d1cc8.gif

启示三:人工智能一旦用于实际应用中,一定要小心翼翼,只要有一点点小bug,会被智能体无限放大,很容易出现极端情况。就像这个捉迷藏游戏一样,智能体进化出能起飞这种完成超出常理的状态。虽然谁这个环境是人为构造的,但是人会陷入既定的思维模式,而AI就可以跳出这个思想牢笼,没准 AI 才是许多奥秘的关键。

启示四:诞生于DeepMind和OpenAI等一系列好玩的AI程序,之所有诞生在我们看起来的“民营”企业,主要有四个原因:一是这些企业以实际产业需求作为研究的推力,二是做研究时申请项目压力较小,三是日常事务效率高,四是有多种专业背景的人密切交流。真的很羡慕这些顶级的研究机构,想研究什么就研究什么。国内学术机构要人工智能原创研究,恰恰缺乏这些推动力。近年来BAT等为代表的互联网公司,花了大量资源研究人工智能,也出了不少成果,但是离国外差距仍然很大。

启示五:OpenAI与DeepMind还有一个差别,DeepMind每个成果都会发一篇《Nature》,详细解释设计的细节和步骤,OpenAI完全没有打算发顶级杂志。从这次他们发的论文就看得出来,只给了程序结果,最关键的模型细节一概不说,却在附录里给出了模型的参数,这叫人怎么复原嘛,要想了解其中的奥秘,只能花时间看他们的源代码。

启示六:金融领域的投资者行为,与多智能体竞争过程非常类似,面对一个开放的问题,上亿投资者参与其中。金融市场是一个经典的多智能体生态系统,其中普遍存在着二阶效应:每个智能体根据生态系统的变化调整各自策略和行为,智能体之间会互相影响。而计算机可以在没有监督的情况下学习复杂的策略和技能,用模拟人类投资过程,经过一段时间的博弈,得到与现实生活非常类似的投资者结构。

启示七:人工智能在金融领域的应用中,目前绝大多数还只是依赖“深度学习”算法,对金融领域的大数据建模。但金融领域很多场景涉及连续决策问题,且对单次决策的评价和衡量存在滞后效应。需要利用强化学习方法,解决连续决策的问题。强化学习之所以在游戏领域能够成功,是因为环境边界确定而且规则简单,能自动生成海量样本数据,但大量数据难以基于固定不变规则模拟现实金融运行场景自动生成数据,限制了强化学习技术的应用。


下面是躲猫猫的具体的过程,还是很有意思的。

在2500万场捉迷藏游戏后,智能体们掌握了四种基本的游戏策略。

第一阶段:追逐和隐藏。游戏一开始设定红队队员有一段时间是不能动的,蓝队就趁着这段时间赶快躲起来。

1f6cdbbe2d2417f7a9df7661f9850fb5.gif

第二阶段:把自己藏起来。经过几百万次失败,光是躲起来很快就会被红队发现,蓝队很快就找到了新的方法:用场地中黄色方块把路堵住。

426f82b5a9fdb69391177971ecf7042d.gif

7c0e0163e53b2c859ffb22aa1674dfc3.gif

第三阶段:突破掩体。红队发现有带着斜坡的木块,红队突破了蓝队的防护。

4956df671735fd4f9ff5e9595fb9d812.gif

第四阶段:防止冲浪。蓝队也很快学会了在游戏开始阶段,先把斜坡藏起来。

e4d4d101faef3da561b85bd41730ba32.gif

第五阶段:合理运用“潜”规则。红队找到一处 BUG ,居然能站在方块上滑行,很快又突破了蓝队的障碍。因为在游戏设定中,只要人和木块有接触就可以移动木块。而蓝队发现以一个特殊角度,可以把木块推到训练地图之外。这个小小的 “ BUG ”,在现实生活中人是很难发现的,在游戏中经过多轮进化很快被机器人发现了。

fa3ad18f228d3cbf2a3f4b585fe16762.gif

0b0901ae15ee1190188f1cdc5c60e4c4.gif

第六阶段:“起飞”。在不断尝试后,红队发现有个特殊角度能飞起来,欣赏下面这个动画。

81a96786a026f9b8e283ce0ae4e4ceec.gif


8241deefb1697f6b3cd062304326858d.jpeg

0ff9e245045e969f2112589c87508911.jpeg


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python 作为一种功能强大的编程语言,可以用于开发各种类型的游戏,包括人工智能游戏。以下是一些常见的方法,可以使用 Python 开发人工智能游戏: 1. 游戏环境与交互:使用 Python 中的游戏开发库(如 Pygame)创建游戏环境,然后编写代码以实现游戏交互逻辑。这可以包括处理用户输入、更新游戏状态、渲染游戏图形等。 2. 强化学习:使用 Python 中的强化学习库(如 OpenAI Gym)来训练人工智能代理游戏。强化学习是一种通过与环境进行交互来学习最佳行动策略的方法。你可以编写代码来定义游戏状态、动作和奖励,并使用强化学习算法(例如 Q-learning、深度强化学习等)来训练代理。 3. 机器学习:使用 Python 中的机器学习库(如 Scikit-learn、TensorFlow)来创建模型,让人工智能代理游戏。你可以使用监督学习方法来训练模型,通过输入游戏状态和期望动作来建立一个模型,然后使用该模型来预测最佳动作。 4. 计算机视觉:使用 Python 中的计算机视觉库(如 OpenCV)来处理游戏图像。你可以使用计算机视觉技术来检测游戏中的对象、识别游戏状态,甚至可以使用图像识别来辅助决策。 总之,Python 提供了丰富的库和工具,可以用于开发人工智能游戏。你可以根据具体的游戏类型和需求选择适合的方法和库进行开发。无论是强化学习、机器学习还是计算机视觉,Python 都提供了丰富的资源和工具,使得开发者可以更加轻松地构建智能游戏代理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值