在机器学习领域,监督学习和无监督学习两大学习范式已经被从业者广为熟知且应用。随着近年来新技术的不断涌现,对于那些需要进行决策的问题,强化学习作为新的学习范式逐渐取得了很多惊人的成就。比如应用深度强化学习的 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 章介绍强化学习的一些应用事例。

留言讨论:

除了下围棋和打游戏,你认为强化学习还可以用来做什么?

我们将会挑选 4 位读者,两位点赞最高,两位最走心评论

赠送《用Python动手学强化学习》

活动截止9月14日晚22:00!

日常赠书 | 王者荣耀的觉悟AI是怎么训练的?相关推荐

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

    在机器学习领域,监督学习和无监督学习两大学习范式已经被从业者广为熟知且应用.随着近年来新技术的不断涌现,对于那些需要进行决策的问题,强化学习作为新的学习范式逐渐取得了很多惊人的成就.比如应用深度强化学 ...

  2. Python环境下用中文做了个《王者荣耀》AI脚本,附视频

    <王者荣耀>AI最早的巅峰应该是在2018年 "AI(人工智能)"VS"人类明星战队",视频给你们留着了,先留着等会看. 梦泪被AI击杀6次,KPL ...

  3. Python环境下用中文做了个《王者荣耀》AI脚本

    <王者荣耀>AI最早的巅峰应该是在2018年 "AI(人工智能)"VS"人类明星战队" 以此为目标在python环境下开发了AI脚本自动打<王 ...

  4. 当会打王者荣耀的AI学会踢足球,一不小心拿下世界冠军!

    难得的元旦小假期,没有什么比得上在慵懒的冬日艳阳下放松自己,拿起手机,叫上了许久未一起作战的小伙伴,到王者荣耀中激战了一番,仿佛又回到了当年那个年轻的自己. 厉害不,毕竟当年DD也是王者五十星的水平, ...

  5. 女神在我玩王者的时候约我看电影,可我又不能挂机坑队友。那就只能写一个帮我打王者荣耀的AI了

    大家好,这里是为代码封神的封神榜(有点吹牛皮了,哈哈).还是新人初来乍到,希望大家多多指教. ------------------ 不知道兄弟们有没有遇到这样的情况,当你正在玩王者的时候,战局焦灼.结 ...

  6. 我昏迷了!被王者荣耀的AI吊打后,队友想了一个损招……

    还记得2年前,王者荣耀的人机模式,还是简单的"送分模式",青铜的我也能轻松7杀超神. 但是不知道从什么时候开始,机器人再也不是蠢萌的机器人了,全都变成了"没有感情的杀手& ...

  7. 利用Deep Reinforcement Learning训练王者荣耀超强AI

    Mastering Complex Control in MOBA Games with Deep Reinforcement Learning (一)知识背景 (二)系统架构 (三)算法结构 3.1 ...

  8. 被AI人机疯狂单杀?王者荣耀AI“绝悟”亲测体验

    文章目录 (一) 如何评测"绝悟"的智能程度? (二)"绝悟"个体操作能力分析 2.1 草丛埋伏 2.2 越塔强杀 2.3 技能避伤 2.4 技能combo ( ...

  9. 马化腾:《王者荣耀》将举办AI电竞赛;美团发布自研无人机,15分钟配送到家;微软将为员工发放1500美元奖金|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

最新文章

  1. CTFshow php特性 web98
  2. markdown公式(更新中)
  3. mysql设置数据库同步_MySQL数据库配置主从同步
  4. C51 汇编 双层循环延时代码
  5. boost创建线程池_Java并发 之 线程池系列 (1) 让多线程不再坑爹的线程池
  6. python 文件读写(追加、覆盖)
  7. HDU 5876 关于补图的bfs
  8. CCF 2018-9-2买菜
  9. XML DOM Object Model in .NET [2/3]
  10. 数字后端基本概念介绍——Row
  11. 介绍两个Ubuntu上的桌面小工具
  12. 支持Linux分区移动的,Linux怎样支持2T以上大硬盘分区
  13. 溯雪-轻博客PHP开源系统
  14. Win10设置热点IP
  15. 一加5t ,安卓p系统卡在更新页面,安卓p降级教程(一加5t测试通过)
  16. “猪”事大吉 | 为什么猪是最后一个生肖?
  17. HTML实现九九乘法表
  18. 微信小程序系列(6)如何用微信小程序写一个论坛?贴心代码详解(四)搜索页
  19. Java中输出时区的缩写_Java中的时区转换小结
  20. ANOMALY: meaningless REX prefix used

热门文章

  1. Axure经典案例下载(Axure高保真智能监控系统人脸识抓拍别预警系统交互组件机动车辆抓拍管理后台)
  2. select for update作用
  3. iOS12+Xcode 10 Error: Multiple commands producei
  4. 序列中连续值之间的差值列表
  5. Graham Scan凸包算法
  6. 《架构漫谈》阅读感想
  7. JavaWeb之Servlet入门(一)
  8. 向Array中添加二分插入排序
  9. 三顺,因为你,我笑了。
  10. python每日经典算法题5(基础题)+1(中难题)