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

DQN 自主学习玩转 AI 俄罗斯方块

作者 | 李秋键

责编 | Elle

出品 | CSDN(ID:CSDNnews)

自从20世纪80年代以来,游戏AI产生巨大的变化,诞生了“自主思考型AI”,游戏中的NPC会在游戏中观察及分析,根据玩家的行为做出针对性的应对,不再只是按照一个目标一直走下去,而是更加灵活多样。

自主思考性的AI是基于有限状态机与行为树,也就是多个if-else的组合。有限状态机是以电脑AI的当前状态为主体,通过编写不同的状态之间的转换条件来控制电脑AI,不同的状态下拥有不同的目标、策略与行动。

行为树则是以目前的行为作为主题,通过条件判断,得出接下来应该采取的行为策略和行为内容。其中最为典型的便为吃豆人游戏的应用:

而近几年来人工智能发展的迅速,直接推动了AI游戏领域的发展,其中最为代表性的算法便是DQN自主学习,即通过计算机自己尝试去游戏,从失败中总结经验达到高水平AI的效果。

其中就包括王者荣耀等游戏的AI机制。今天我们就将利用DQN去教会计算机玩转俄罗斯方块。

其中训练的部分效果见如图所示:

开始之前我们有必要去了解下DQN算法的基础知识。

基本原理

1. 什么是DQN?

DQN(Deep Q-Learning)可谓是深度强化学习(Deep Reinforcement Learning,DRL)的开山之作,是将深度学习与强化学习结合起来从而实现从感知(Perception)到动作( Action )的端对端(End-to-end)学习的一种全新的算法。

2. DQN是如何运算的?

(1)通过Q-Learning使用reward来构造标签

(2)通过experience replay(经验池)的方法来解决相关性及非静态分布问题

(3)使用一个CNN(MainNet)产生当前Q值,使用另外一个CNN(Target)产生Target Q值

3、DQN的网络模型?

下面是代码部分的讲解,我将在关键代码处进行注释说明。

代码实现

1、所使用的模块的导入:

2、训练前的定义及初始化:

3. 神经网络调用函数参数的定义:

4. 训练部分的代码:

总结

下面开始展示游戏训练效果:

训练5秒后得到的分数:

训练10秒后得到的分数:

由此可见随着计算机的学习,他对于俄罗斯方块的操作是越来越好。

作者:李秋键,CSDN 博客专家,CSDN达人课作者。硕士在读于中国矿业大学,开发有安卓武侠游戏一部,vip视频解析,文意转换写作机器人等项目,发表论文若干,多次高数竞赛获奖等等。

热 文推 荐

你点的每个“在看”,我都认真当成了喜欢

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券