首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

打造你的专属AI游戏机器人:太空侵略者

众所周知,深度学习的用途已经日渐广泛,如搭建虚拟助手、聊天机器人、游戏引擎等。基于深度学习的游戏机器人不仅可以和人类对手玩游戏,还可以自己和自己玩游戏。早在2013年,DeepMind团队在NIPS上发表了《Playing Atari with Deep Reinforcement Learning》论文,提出了基于深度加强学习实现端对端的Atari游戏训练方法,文中的Deep Q network,简称DQN,将Q学习与神经网络的优势相结合,并凭借该项技术被Google收购。

DQN算法可以实现49种不同的Atari游戏,无需设计额外的游戏参数。该算法已经在Github上开源,其输入非常简单,即:游戏的像素值、游戏得分。

DQN采用深层神经网络对像素进行解析,从而实现目标函数,最大化游戏得分。深层神经网络作为算法的核心,是受到人类视觉皮层的启发而提出的,如下图。

神经网络由多层的神经元组成,每个神经元作为一个检测过滤器,对图片中特定的特征进行过滤。随着层数的加深,每层的特征越来越抽象。比如,第一层的特征为物体的边缘,下一层的特征可能是由这些边缘组成的形状,从而实现简单形状的检测,后面的层特征逐渐负责以检测更为复杂的目标。因此,一旦像素值被解析后,这些信息就会被一种抽象复杂的方式用于后面的任务中。

区别于常见的监督学习和非监督学习,AI游戏引擎多为增强学习,即采用尝试错误法,从每次的经验中获得奖励或者惩罚,从而在不断地学习中教会机器获得最大的奖励,避免惩罚。这个过程有点类似于动物驯养,比如教一只狗狗学算数,算对了奖励一块骨头,算错了则没有骨头吃。

同样,当我们训练AI游戏引擎的时候,每一步都会根据它当前的动作施加奖惩。根据每次的奖励或乘法,网络模型的权值会随之更新,以离奖励最大化的目标函数更进一步。

Q learning是增强学习的一种,在没有任何环境先验知识的条件下,学习最优的动作机制。如,在太空侵略者游戏环境中,如果外敌在一定的射击范围内,则AI游戏引擎自动开始射击。动作状态的改变机制,随着每次的训练而不断优化。此外,DQN还学习经验回放,从过去的数据集中进行学习。

本文将带大家一起,基于Tensorflow和gym搭建一个游戏机器人。该项目将使用谷歌的机器学习库Tensorflow创建一个卷积神经网络,然后使用OpenAI的机器学习库Gym进行增强学习。

首先,加载所需环境:

N

环境为一个helper类,可以帮助我们进行游戏环境的初始化。本文中所使用的环境为Space invaders太空侵略者,然而你也可以自定义其他游戏,通过增强学习自动训练。

本文还使用了DQN helper类,来监控游戏及训练类,并对增强学习进行初始化。

一旦环境加载完成,我们就可以对环境进行初始化啦。下列为初始化环境的代码。

基于DQN,进行增强学习,下述为初始化过程。

接下来,先让我们的模型学习5000次游戏的过程,从而赋予它游戏的经验。之后,就可以初始化卷积神经网络,开始读取像素值,并通过增强学习来基于像素值执行不同的动作。结果如下。

怎么样,是不是很简单,你学会了吗?网上还有很多其他的基于DQN的游戏项目开源,欢迎一试~

以上就是全部内容啦~关注“习悦智能”,获取更多行业新鲜资讯~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171229G0YXU600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券