小编说:强化学习在机器学习中的难度不低,它需要很多方面的知识辅助,同时自身也已经形成了一个庞大的体系。本文介绍了强化学习的基本概念,帮助读者了解强化学习的目标和特点。本文选自《强化学习精要:核心算法与TensorFlow实现》。

什么是强化学习?

“强化学习”这个词并不那么容易理解,“强化”在这里是一个动词还是一个名词,又或者是一个人名?还有人把它称为“增强学习”,其实名字所表达的含义差不多,但总感觉这个名字并没有很清楚地表达它想表达的含义,即使一些对强化学习有一定经验的人也可能感到疑惑。

不得不承认,当今很多知识和概念都是从西方传来的,强化学习也是一个“外来品”。它的英文是Reinforcement Learning,在英文辞典里查询reinforcement 这个词,我们找到了下面的解释:
something that strengthens or encourages something, such as a response to someone’s behavior that is intended to make that person more likely to behave that way again.

将英文翻译后的大概意思是:“reinforcement”是一种“套路”,或者是某种方法,也可能是某种形式。它会强化或者鼓励某个人或者某个事物以更高的可能性产生同样的行为。当然,这里的行为不只是让某个人或事物去做某些事情,也可能是不去做某些事情,具体产生什么样的行为取决于使用什么样的“reinforcement”。

1 . 巴浦洛夫的狗

简单地说,强化学习的完整含义是利用这种“套路”完成学习。这个抽象的概念还有一个心理学上的解释,不禁让笔者想起了一个经典的心理学实验:巴浦洛夫的狗。在这个经典的实验中,每次实验者都对着狗摇铃铛,并给狗一点食物。久而久之,铃铛和食物的组合影响了狗的行为,此后每次对着狗摇铃铛,狗就会不由自主地流口水,并期待食物的到来,这样实验者就让狗“学会”了铃铛和食物的关系,这也可以算作强化学习的一个简单的例子。

了解了这个套路的一个具体例子,我们现在思考的是:能不能将这个套路的活动过程抽象成一个框架,使我们能更方便地将这个框架应用到更多的实例上呢?经过前辈们的苦心研究,最终我们得到了一个具有很高抽象度的强化学习框架。在“巴浦洛夫的狗”实验中,我们发现了下面几个关键要素。

狗:实验的主角。

实验者:负责操控和运转实验。

铃铛:给狗的一个刺激。

口水:狗对刺激的反应。

食物:给狗的奖励,也是改变狗行为的关键。

接下来,我们要给上面的每个要素赋予一个抽象的名字。

实验的主角:Agent。这个词不好翻译,一般翻译为智能体,但是这个翻译更像意译,和英文单词本身的含义有点距离。

实验的操控者:System Environment,一般翻译为系统环境。

给Agent 的刺激(铃铛):Observation,一般翻译为观察值,但是在很多强化学习文献中,会将其等价为状态(State)。

Agent 的反应(口水):Action,一般翻译为行动。

Agent 的奖励(食物):Reward,一般翻译为回报或者反馈。

在经典的强化学习中,智能体要和环境完成一系列的交互。

(1)在每一个时刻,环境都将处于一种状态。

(2)智能体将设法得到环境当前状态的观测值。

(3)智能体根据观测值,结合自己历史的行为准则(一般称为策略,Policy)做出行动。

(4)这个行动会影响环境的状态,使环境发生一定的改变。Agent 将从改变后的

环境中得到两部分信息:新的环境观测值和行为给出的回报。这个回报可以是正向的,也可以是负向的。这样Agent 就可以根据新的观测值做出新的行动,这个过程如下所示。

可以想象,在实验的早期,当实验者对着狗摇铃铛时,狗并不会有任何准备进食的反应;随着实验的进行,铃铛和食物这两个观测内容不断地刺激狗,使狗最终提高了准备进食这个行动的可能性。实际上,这样的交互模式在很多场景下都会出现。

2 . 俄罗斯方块

我们以一个经典的电子游戏俄罗斯方块为例,回顾强化学习的整个过程。

以与巴浦洛夫的狗相同的角度看待俄罗斯方块游戏,我们发现此时的实验者就是游戏制作团队,而被实验的对象就是玩家。实验者通过构建一个俄罗斯方块游戏的环境,强化玩家一些行为的可能性。控制玩家行为的关键在于游戏的得分机制,由于我们明确了玩家的目标是尽可能地获得更高的分数,那么游戏团队对什么样的行为强化,玩家就倾向于产生什么样的行为。

从上面的描述中我们发现,如果游戏团队对消除方块的行动给予强化,那么玩家将更倾向于产生消除方块的行为;如果游戏团队对不消除方块的行动给予强化,玩家会更倾向于产生不消除方块的行为,当然这样会更快地结束游戏。如果游戏团队只对某种特定的消除方块行为(例如,用“竖条”一次性消除多行方块)给予较大的强化,那么玩家会尽可能地产生这种行为,其他消除方块技巧的使用频率会降低。实际上,俄罗斯方块这款游戏就是采用了这样的设计方案。

我们通过两个例子阐述了强化学习的核心思想:通过某种手段影响被实验者的行为。为了实现这个目标,实验者需要构建一个完整的实验环境,通过给予被实验者一定的观测和回报,让其产生实验者想要的结果。

理解了这个思想,就算迈进了强化学习的大门。

强化学习效果的评估

下面我们介绍强化学习的两个显著特点,正是这两个特点使得它与其他学习方法存在不同。

1 . 不断试错

前面提到强化学习通过一些手段影响Agent 的行动,这实际上是站在环境或实验者的角度来看的。如果站在Agent 的角度,就是另外一幅景象:根据环境状态给出行动的Agent 有时会收到较多回报,有时回报较少,回报可以以数值的形式标示,那么Agent还可能收到负的回报。究竟怎样才能获得最多的回报呢?Agent 自己并不知道,“实验者”也不会告诉Agent。所以Agent 需要根据回报的多少不断地调整自己的策略,从而尽可能多地获得回报。这个过程中Agent 需要不断尝试,尝试应对状态的各种可能的行动,并收集对应的回报,只有收集到各种反馈信息,才能更好地完成学习任务。因此这是一个不断试错(Trial and Error)的过程,只有经过尝试、遇到失败,才能获得最终的成功。

2 . 看重长期回报

强化学习的任务通常需要长时间的交互,比如上面提到的俄罗斯方块游戏,玩家与游戏交互的周期可以是一局游戏。在这样的时间跨度下,眼前一步或两步操作获得的回报就变得没那么重要了。前面也提到,俄罗斯方块对同时消除不同层数方块的奖励不同,分4 次消除一行方块得到的分数远远小于一次消除4 行方块得到的分数。消除一行方块比较简单,只需要几个方块就可以做到;而消除4 行方块就比较困难,需要前期方块的累积和准确地摆放一根竖棍。更难的方块摆放也使玩家更快地积累分数,从而更快赢得胜利,这和游戏设计者的初衷一致。因此,从更长远的角度看,玩家要学习如何一次消除多行,而不是追逐短期的得分。当然,追求长期分数需要多探索、多尝试,也可能遇到更多的失败(例如没等到竖棍出现),所以看重长期回报和不断试错存在一定的一致性。

正因为这两个特点,我们在评价强化学习算法的优劣上与其他算法不同。除了一些常见的衡量指标(算法的效果、计算时间、稳定性和泛化性等),我们还要重点考虑一个指标:学习时间。由于学习和尝试相关,所以这个指标一般也看作尝试和探索的次数。如果一个算法需要尝试的次数比较多,我们一般认为算法要花费的时间比较长;如果一个算法需要尝试的次数比较少,那么相对来说花费的时间比较短。

站在机器学习的角度,我们可以认为尝试的样本本身会影响学习的时间,例如样本的代表性、重合度等。对强化学习来说,由于学习本身的特点,我们需要考虑训练样本的使用率(Sample Efficiency)。不同算法对样本的重复使用次数不同,有的算法对于尝试的样本只能使用一次,而有的算法可以反复使用同样的样本。

训练样本的使用率会直接影响学习时间。前面提到Agent 的学习样本要通过自身与环境的交互得到,而这个过程是要花费时间的。需要的样本量少,学习时间就可以缩短;反之学习时间会比较长。对计算机模拟的学习问题来说,样本量并不算个大问题,因为计算机可以在短时间内快速模拟出大量的样本;但是对于在真实场景进行训练的问题来说,产生样本意味着要在真实世界的时间尺度下进行交互,花费的时间会很长。

为了一点效果的提升花费大量的时间,对我们来说有点得不偿失。因此,很多研究人员都在思考如何提高真实世界学习的速度,这就涉及提高样本利用率、迁移学习等内容。这样我们就了解了强化学习关注的两个目标:学习效果和学习时间。

本文节选自《强化学习精要:核心算法与TensorFlow实现》

冯超 著

从俄罗斯方块,迈向强化学习大门相关推荐

  1. DeepMind 的新强化学习系统是迈向通用 AI 的一步吗?

    作者 | Ben Dickson 来源 | 数据实战派 这篇文章是我们对 AI 研究论文评论的一部分,这是一系列探索人工智能最新发现的文章. 对于已经精通围棋.星际争霸 2 和其他游戏的深度强化学习模 ...

  2. DeepMind 的新强化学习系统,是迈向通用人工智能的一步吗?

    作者:Ben Dickson 来源:数据实战派 前言 尽管已经掌握围棋.星际争霸 2 和其他游戏,深度强化学习模型的主要挑战之一是,它们无法将其能力泛化到训练领域之外.这种限制使得将这些系统在现实世界 ...

  3. DeepMind的新强化学习系统是迈向通用AI的下一步吗?

    来源:AI前线 作者:Ben Dickson 译者:马可薇 策划 :凌敏 本文是 TechTalks 在人工智能领域最新研究发现的论文评论系列. 对于精通围棋.星际争霸 2 以及其他游戏的深度强化学习 ...

  4. DeepMind的新强化学习系统,是迈向通用人工智能的一步吗?

    尽管已经掌握围棋.星际争霸 2 和其他游戏,深度强化学习模型的主要挑战之一是,它们无法将其能力泛化到训练领域之外.这种限制使得将这些系统在现实世界中的应用变得非常困难,因为现实世界中的情况比训练模型的 ...

  5. 被追捧为“圣杯”的深度强化学习已走进死胡同

    作者 | 朱仲光 编译 | 夕颜 出品 | AI科技大本营(ID:rgznai1100) [导读]近年来,深度强化学习成为一个被业界和学术界追捧的热门技术,社区甚至将它视为金光闪闪的通向 AGI 的圣 ...

  6. 打破深度学习局限,强化学习、深度森林或是企业AI决策技术的“良药”

    算法.算力和数据是人工智能时代的三驾马车,成为企业赋能人工智能的动力,但它们自身的特性也为企业和高校在研究和落地应用过程带来了重重挑战.比如,训练算法的成本高昂,数据从采集.处理到存储已面临瓶颈,目前 ...

  7. 一文读懂AlphaGo背后的强化学习:它的背景知识与贝尔曼方程的原理

    作者 | Joshua Greaves 译者 | 刘畅,林椿眄 本文是强化学习名作--"Reinforcement Learning: an Introduction"一书中最为重 ...

  8. 《强化学习周刊》第39期:近似最优深度、多智能体广义、角色动画强化学习...

    No.39 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<强化学习周刊>已经开启"订阅功能",以后我们会向您自动推送最 ...

  9. 《强化学习周刊》第33期:UdeM | 基于不确定性估计的样本高效深度强化学习

    No.33 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

  10. 深度强化学习在智能城市领域应用介绍

    来源:海豚数据科学实验室 深度强化学习是近年来热起来的一项技术.深度强化学习的控制与决策流程必须包含状态,动作,奖励是三要素.在建模过程中,智能体根据环境的当前状态信息输出动作作用于环境,然后接收到下 ...

最新文章

  1. python实现高校教务管理系统_python+mysql实现教务管理系统
  2. 【C 语言】数据类型本质 ( sizeof 函数 | 数据类型大小 )
  3. Git SSH Key 生成步骤
  4. EntityFramework Core如何映射动态模型?
  5. widget(6、menu)
  6. 码农回忆刚毕业工作的那年
  7. 表情包+外卖+壁纸小程序源码
  8. 书法是什么?书法的美从何说起?
  9. 不要老是盯着你的对手,要开始盯紧你的用户啦
  10. win7_ fiddler 证书安装失败解决方法
  11. 关于在线评论有用性的论文研读笔记---31-40篇
  12. 《Windows 8 权威指南》——2.8 Metro版IE10,探测Windows 8 Metro应用的撒手锏
  13. 《52讲轻松搞定网络爬虫》读书笔记 - HTTP基本原理
  14. Java中的Dao是什么意思?
  15. Ubuntu18.04 搜狗输入法不能输入中文问题、
  16. java7旧版本下载地址
  17. 李清云,256岁成为世界最长寿的人,长寿之王
  18. Openstack_Nova部署(t版)
  19. python获取相对路径的绝对路径_python之:绝对路径相对路径的应用
  20. 基于模型预测控制(MPC)的车道保持控制实现方法

热门文章

  1. 3.前端下载excel文件功能的三种方法
  2. Ruby on Rails 目录结构
  3. js判断当前页面是否有父页面,页面部分跳转解决办法,子页面跳转父页面不跳转解决 (原)...
  4. JS能力测评经典题之数组
  5. js mouseover mouseout 多次触发
  6. Nginx valid_referer 防盗链
  7. java实现数据的Excel导出(合并单元格、样式等)
  8. 使用python读取txt坐标文件生成挖空地块_批量
  9. 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的错误问题
  10. Oracle命令--查询语句