王者荣耀的觉悟AI是怎么训练的?

机器学习算法与Python实战

共 3344字,需浏览 7分钟

 · 2021-08-01

↑↑↑点击上方蓝字,回复资料,10个G的惊喜

在机器学习领域,监督学习和无监督学习两大学习范式已经被从业者广为熟知且应用。随着近年来新技术的不断涌现,对于那些需要进行决策的问题,强化学习作为新的学习范式逐渐取得了很多惊人的成就。比如应用深度强化学习的 AlphaGo 战胜了人类的顶尖围棋选手,OpenAI Five 在 DOTA 2 上战胜了世界冠军战队,等等。强化学习在游戏领域披荆斩棘,让越来越多的从业者对该技术产生了强烈兴趣,并希望将其应用到工作中。


经过 MOBA 游戏《王者荣耀》的测试,训练有素的 AI agent 可以在完整的 1v1 游戏中击败顶尖的职业人类玩家



01

什么是强化学习?




 这里我们可以参考一下 Thomas Simonini 的解释:


强化学习的中心思想,就是让智能体在环境里学习。每个行动会对应各自的奖励,智能体通过分析数据来学习,怎样的情况下应该做怎样的事情。



其实,这样的学习过程和我们自然的经历非常相似。想象自己是个小孩子,第一次看到了火,然后走到了火边。你感受到了温暖。火是个好东西 (+1) 。



然后就试着去摸。卧槽,这么烫 (-1)  。

 

结论是,在稍远的地方火是好的,靠得太近就不好。这就是人类学习的方式,与环境交互。强化学习也是一样的道理,只是主角换成了计算机。


注:以上内容由量子位编译整理





02

强化学习与机器学习、人工智能有什么关系?


首先,机器学习是实现人工智能的一种技术。不同的人对人工智能的定义有不同的理解,这里不进行深入说明。不过,对于“机器学习是实现人工智能的一种技术”这一点,人们意见一致。 


顾名思义,机器学习是让“机器”进行“学习”的方法。这里的“机器”叫作模型,实际上是含有参数的数学式。对模型的参数进行调整,使之与给定的数据拟合的行为叫作“学习”。



各关键词之间的关系



机器学习的机制



深度学习是机器学习中的一种模型。将神经网络模型叠加成多层模型(使之变深),就形成了深度神经网络(Deep Neural Network,DNN)。通过某些学习方法让 DNN 进行学习,就叫作深度学习。 

对模型的参数进行调整,使之与数据拟合的学习方法一共有 3 种,分别是监督学习、无监督学习和强化学习。 

■ 监督学习 

事先给定数据和答案(标签),然后对模型的参数进行调整,让输出(标签)与给定的数据一致。 


■ 无监督学习 

事先仅给定数据,然后对模型的参数进行调整,以提取数据的特征(结构或表征)。


■ 强化学习 

事先给定一个可以根据行动得到奖励的环境(任务),然后对模型的参数进行调整,以便让不同状态下的行动与奖励联系起来。 


监督学习是最容易理解且使用最广泛的学习方法。这里我们以图像分类为例来介绍一下。首先准备一个数据集,在这个数据集中,每张图像都有对应的标签,用来表明这张图像是哪种动物(这称为监督数据)。然后,为了在输入图像后让模型输出正确的标签,对模型的参数进行调整。

无监督学习不会事先给定标签。因为给定的只有数据,所以叫作“无监督”。由于没有标签,所以模型学习的是数据内部的结构(structure)和表征(representation)等。比如,在输入某个样本后,模型会根据该样本在全体数据中的位置调整参数,输出表示该数据的表征(向量)。

强化学习与前面两种机器学习方法不同,它给定的是环境,而不是数据。我们可以把环境理解为到达某种状态即可获取奖励的空间,其中定义了“行动”以及与行动对应的“状态”的变化。

简单来说,强化学习就像游戏一样。比如,在游戏中,按下按钮后角色会跳跃,那么“按下按钮” 就相当于行动,“角色跳跃”就相当于状态的变化。到达终点之后,就可以获得“奖励”。 

实际上,强化学习中使用的“环境”以游戏为主。在研究领域,Atari 2600 游戏机的游戏经常被用于测试强化学习模型的性能。


03

强化学习的优点和弱点


强化学习在根据行动给予奖励(≈正确答案)这一点上和监督学习非常相似。二者的不同点在于,强化学习不是根据单次的立即奖励进行优化的,其优化的目的是使整体奖励最大化。假设 1 天能得到 1000 元,但如果等待 3 天,就能得到 10 000 元。在这种情况下,行动分为“等待”与“不等待”。因为监督学习评价的是单次的行动结果,所以会选择“不等待”,每天得到 1000 元就是最优的选择。而强化学习把从环境开始到结束的整个期间(这个例子中是 3 天)叫作一个回合(episode),它的目的是使这一个回合内的整体奖励最大化,所以在强化学习中,“等待 3 天,得到 10 000 元”才是最优的选择。 


也就是说,强化学习是根据能否让整体奖励最大化来评价行动的。至于如何进行评价,需要模型自己去学习。总结一下,强化学习的模型需要学习两项内容,分别是行动的评价方法和基于评价方法对行动进行选择的方法(策略)。


能对行动的评价方法进行学习是强化学习的一个优点。比如,对于围棋和象棋这样复杂的游戏,我们很难评价现在这一步下得有多好。但是,强化学习可以自己去学习评价方法。因此,对于人类通过感官和直觉来判断的过程,强化学习也是可以学习的。 


但是,这也意味着行动的评价方法完全交给了模型。因为我们没有提供“标签”这样的正确答案,模型进行什么样的判断完全基于模型自己。 


这个弱点和无监督学习的弱点是一致的。因此,强化学习有可能学习到违反人类直觉的评价方法,并采取违反人类直觉的行动。



04

如何学习强化学习?



强化学习是机器学习的重要分支之一,颇以入门困难、学习曲线陡峭著称。与监督学习和无监督学习算法相比,强化学习相关资料少、背景知识多、入门不友好。那有没有适合初学者入门强化学习的图书呢?今天就给大家推荐一本:《用Python动手学强化学习》

 

如果你想把强化学习这门有趣的技术应用到自己的服务或项目中,那么本书就是为你量身定制的。因此,要想理解本书,需要能够看懂程序代码。不过本书的代码实现力求能让读者像读文章一样轻松看懂,所以大家不必太过担心。代码实现使用了 Python,但是本书并不包含 Python 语法的相关解说。

 

至于数学,各位也无须过于担心,只要具备初高中的数学水平,就可以读懂本书。不过,在学习第 4 章中的策略梯度、第 6 章中的逆强化学习的相关内容时,需要读者具备一些在大学阶段学习的线性代数和微分的知识。

 

最后,在本书中,一些已经非常普及的方法将仅使用中文表示,其他方法则同时给出中文和英文名称。这是因为强化学习的最新信息大多是英文的,给出英文名称可以方便大家检索。

 

本书的一大特色就是含有大量示例和可以直接运行的代码,比如第 1 章中给出了迷宫探索的具体示例,并通过对应的代码让读者明白如何解决这些探索问题。通过代码,读者可以直观理解强化学习的运作过程,而不是陷在公式的泥潭里无法自拔。这种写作风格也是为了实现让从业者快速入门并实践这一目标。

 

另外,本书涉及的知识点也较为全面:第 1 章介绍强化学习与其他技术的关系,并通过一个简单的示例让读者对强化学习有一个初步的了解;第 2 ~ 3 章分别介绍根据环境和经验制订计划的学习方法,是了解强化学习这一范式最为基础的两个章节;第 4 章着重介绍强化学习和神经网络的组合,以及深度强化学习;第 5 ~ 6 章分别介绍强化学习的一些弱点和克服弱点的方法;最后的第 7 章介绍强化学习的一些应用事例。

推荐阅读

(点击标题可跳转阅读)

神经网络入门

统 计 学 无 用 了 ???

测评:《机器学习中的数学》

测评:《数据科学工程实践》

统治世界的 10 大算法,你知道几个?

清华大学出版!《机器学习导论》PDF下载

老铁,三连支持一下,好吗?↓↓↓

浏览 49
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报