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

你的游戏队友,可能不是小哥哥,也不是小姐姐,而是计算机!

别再自己玩游戏了,让我们教计算机自己玩游戏!

这篇文章与大家分享“强化学习”,英文名叫做“Reinforcement Learning”。这是一个有趣的机器学习算法,去年在国际围棋界大显身手、战胜世界冠军的AlphaGo以及其进化版AlphaGo zero的关键技术就是强化学习。它还被用于玩电脑游戏,比如Dota2、英雄联盟、Flappy bird,还有各种小游戏。

AlphaGo VS 柯洁

AI玩Pingpong游戏

强化学习是我们的课程安排之一,作为实验教学,课程中我们教给同学们如何让电脑自己玩贪吃蛇游戏。

正式介绍强化学习前我们先科普一下人工智能和智能算法的关系,看图

AI知识图谱

人工智能是一个非常大的概念,机器学习(Machine Learning)算法是人工智能的主要技术之一,而且是现在应用最广泛的也是机器学习算法, 深度学习(Deep Learning)或深度神经网络(Deep Neural Networks)属于机器学习,所以现在人们一般有下面的认识:

AI-ML-DL

传统上,机器学习算法一般可以分为有监督学习和无监督学习,二者各有长短。监督学习认为人要把自己的经验教给机器。拿分辨猫猫和狗狗的 AI 来说,你需要准备几千张照片,然后手把手教机器——哪张照片是猫,哪张照片是狗。机器会从中学习到分辨猫狗的细节,从毛发到眼睛到耳朵,然后举一反三得去判断一张它从没见过的照片是猫猫还是狗狗。

无监督学习认为机器要去自己摸索,自己发现规律。人的经验或许能帮助机器掌握智能,但或许人的经验是有缺陷的,不如让机器自己发现新的,更好的规律。人的经验就放一边吧。

强化学习是无监督学习的一种。强化学习是一种模仿人类学习方式的模型,它的基本想法是:要是机器得到了好的结果就能得到奖励,要是得到差的结果就得到惩罚。

举个例子,训练一只汪星人听懂人的命令。开始主人对小汪下了“坐下”的指令,可小汪不知道什么意思,摇了摇尾巴;然后主人又下了一次“坐下”的指令,小汪还是听不懂啊,又摇了摇尾巴,主人生气了,踢了小汪一脚;第三次,主人又对小汪下了“坐下”的命令,小汪也着急了,急得一屁股坐在了地上。哈哈,然而主人很高兴,小汪能听懂了,于是赏了小汪一根骨头。小汪啃着骨头也恍然大悟了,主人说“坐下”的时候,自己坐下就会有骨头吃,于是小汪就听懂这个命令了。

我们来抽象一下上边的例子就是强化学习了。强化学习有四个要素:

状态(States):例如小汪目前的状态,是坐着,趴着,或是站着

动作(Actions):在每个状态下,有什么行动是容许的。例如小狗目前是趴着的,现在能采取的动作有:站起来,坐起来或继续趴着。

奖励(Rewards):采取某个动作后,能带来的正面或负面的价值,也就是奖励或惩罚。例如小汪听到“坐下”的命令,坐下了,主人就奖励它一跟骨头,否则惩罚它踢一脚。

方案(Policy):每个状态下,该采取什么样的行动。比如小汪听到“坐下”命令后,该怎么行动。

实际的应用场景中,并不像训练小汪那么容易,有如下的难点:

状态很多,比如游戏中角色在的每一个位置都是一个状态,同一位置因其周围的环境变化也是多个状态。

动作多样,比如游戏中的角色,可以向前后左右各个方向移动,也可以释放各种技能。

奖励延迟,当角色采取一个行动后,并不能马上给它反馈—奖励或惩罚,往往需要很久之后,角色死亡或胜利了,才能反过头来给它反馈。

有问题就有解决方法,强化学习里都有解法,同学们有没有做好准备来学习强化学习算法呢?同学们可以思考一下,如果是贪吃啥游戏,状态和动作都有哪些?

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券