机器学习与游戏-part1

2019/01/26
本篇随笔记录一下最近看到这个机器自动玩游戏的一些想法,不去详细探讨算法,就讲讲自己思考这个问题的想法。


引言

操控计算机自己玩游戏,其实应该属于AI的领域;不过强化学习好像也很适合这个内容。最开始的时候,我是在B站上看到了一个人利用神经网络玩类似卡丁车一样的东西。然后搜索了之后发现,这类的内容有很多,百度搜索的内容还是相对较少。
针对这类内容,我起初的时候,比较关注的是如何将这部分输入计算出来,哪怕你是直接利用游戏的图片进行训练,那么你也得由相应的数据吧,完全自动化不太现实。看了一些模拟器,还有那种自己编写游戏来产生数据的[2],就大概明白了,这部分内容已经有了很多可使用的环境。可以想象如果是昨天还是前天,DeepMind玩星际,应该有更复杂的控制吧。这部分的想法主要围绕如何产生训练数据,还有如何利用输入来控制游戏,跟实质算法没有任何关系。这篇随笔就不介绍如何获取数据了,重点关注算法层面的设计问题。而且,可能不涉及到具体算法,只是我在遇到这个问题的时候的一些思考。
真正重要的,应该是如何利用这部分数据让计算机真正实现自动学习,并逐步得到比较高的分数。

问题定义

游戏的问题,一般都是由状态空间组成,这就让我想到了当初学习的时候,搜索算法的内容,不知道怎么应用到这里。按照超级马里奥那个为例,你可以定义的东西很多,比如已经跑到的问题,得分等,这部分内容有一篇论文介绍[[3]的很清楚。当然,他介绍的也不一定就是全部,反正学习的事,最开始的时候特征多总不是坏事。
强化学习的过程的定义更严谨一点,从开始的状态空间,到动作,再到奖励等。这个不是关键,我现在比较关心的就是状态空间,因为这些内容是我得到的数据。
但是这个数据如果是自己产生的,也就是我自己玩的,好像后面计算机也就没有学习的过程了,最好也就是跟我玩的一样吧。所以这个数据最好是由计算机来产生。下面来具体定义一下问题。按照抽象级别一点一点向上吧。
(其实在谈到这个定义的时候,我也不知道应该怎么定义,我不知道我脑海中的一些想法应该怎么样来分类,才说按照抽象级别,也不太清楚玩游戏这种东西,这个词汇算是抽象级别高还是抽象级别低。从下面的说法,来看应该是下面的更抽象,毕竟数学里面的东西利用状态来描述你的话,应该算是更抽象吧。2019/01/26)

  • 计算机玩游戏,能够自动化躲避障碍,然后拿到高分
  • 将数据形式化,每一帧每一秒的状态空间都描述出来,然后能做的动作。

算法设计

1. 第一个抽象级别

从上面第一个抽象界别来看,玩游戏嘛,像这种过关的游戏,不就是躲避各种障碍,然后过关嘛。那么是不是可以用基于规则的形式实现整个自动化。不过我忘记了这部分内容在AI中是怎么个形式了,是属于内容吗?这个后面看到了再说。
这种形式其实在平时的应用中也比较广泛吧,我的第一想法自然就是这个。假设我按照学习的角度来出发,那就是,我来一条规则我就记录一下好坏,然后将他加入到这个系统中。
但是仔细想想,这种形式是不够持久的,我这个游戏可能还比较简单,后面的时候各种状态空间可能就不能实现了。

  • (上面的这些内容,其实就是那些搜索算法发挥作用的地方,这种类型的编程,本质上是一种决定性动作的编程,计算机并不会进行改进,他只会按照分支进行相应的动作 2019/01/27)

  • (想到这里,其实我很想知道这部分内容到底是怎么组织的,关于利用机器来进行自动化游戏,这部分的历史内容。而且,我感觉它距离AI是越来越近了。这个得调研一下。就是最开始的时候,人们是怎么实现这部分功能的。找到了一篇综述:游戏中的机器学习[4]2019/01/26
    另外发现一篇介绍历史的系列文章[5]:# A 'Brief' History of Game AI Up To AlphaGo 2019/01/28

2. 第二个抽象级别

第二个的话,让我想起来两方面内容,搜索算法和强化学习,但是这个内容并不确定。好像更贴近的是强化学习的内容。
利用强化学习的奖励机制,将游戏的内容进行引导。但这里的理解还是不够,这个东西它起到的作用是什么,后面的时候,是不是还有别的算法来进行支撑。

2019/02/07 增加
对于搜索算法部分,可以联想一些简单的游戏,例如贪吃蛇;有一篇机器学习的课程设计就是覆盖的这部分内容,另外,在发展的历史上,记得香农发表那篇文章,也是利用搜索的角度。还有,我觉得,直接应用搜索算法肯定是不行的,是需要一定建模,对问题进行一定的简约。

参考

[1]神经网络玩马里奥赛车
[2]深度学习与贪吃蛇
[3]J. Mullen and J. Southerland, “Machine Learning Agents for Playing Super Mario Bros,” p. 13.
[4]J. Furnkranz, “Machine Learning in Games: A Survey,” p. 55.
[5]A 'Brief' History of Game AI Up To AlphaGo

猜你喜欢

转载自blog.csdn.net/weixin_34185364/article/details/86831720