强化学习的主要目的是研究并解决机器人智能体贯序决策问题。尽管我不喜欢直接把定义硬邦邦、冷冰冰地扔出来让大家被动接受,可还是免不了要在这里猛然给出“贯序决策”这么专业的词汇。不过马上,我们就通过例子把这个词汇给大家解释清楚~本文选自《白话强化学习与PyTorch》一书。

既然大家要么是程序员,要么正走在程序员养成的路上,要么正看着其他人走在程序员养成的路上,那么,按照程序员的思维来理解强化学习将会更加顺畅。

把“贯序决策”翻译成“白话”就是:强化学习希望机器人或者智能体在一个环境中,随着“时间的流逝”,不断地自我学习,并最终在这个环境中学到一套最为合理的行为策略。

在这样一个完整的题设下,机器人应该尽可能在没有人干预的情况下,不断根据周围的环境变化学会并判断“在什么情况下怎么做才最好”,从而一步一步完成一个完整的任务。这样一系列针对不同情形的最合理的行为组合逻辑,才是一个完整的策略,而非一个简单而孤立的行为。

没错,这就是强化学习要研究并解决的问题。我想,可能已经有一些爱动脑筋的读者在心中暗暗反驳我了:这类问题一定要用强化学习来解决吗?我怎么觉得不用强化学习也能解决呢?

既然产生了这样一个争议,那我们先不去想是否一定要用人工智能这么“高大上”的工具来解决这类问题,而去想想自己以前有没有处理过类似的问题。如果一时想不起来,也没关系,请跟我看一个例子。

为了简化问题,假设我所在城市的道路是横平竖直的,各街区的边长相等。

导航问题

外侧的边框表示城墙,车辆无法通过。中间的方块表示街区,街区和街区之间就是道路。为了称呼方便,我们用英文字母A~E 来标记纵向的道路,用数字1~4 来标记横向的道路,并约定A 大街和1 大街交汇处的坐标为A1(也就是START 处)。圆圈中的数字表示我们用GPS 或者其他手段测算出来的当前道路的拥堵程度,1 表示通畅,9 表示拥堵,也可以具象地将圆圈中的数字理解为通过某段道路需要1 分钟到9 分钟不等——总之,怎么理解简单怎么来。

现在,我准备从START处去往END 处,我需要一个“智能”的软件为我导航。这个问题难吗?如果你接触过与数据结构相关的课程,那么你一定会觉得这是一个非常简单的问题——就是图论里的图遍历问题或者树遍历问题。

该导航软件预设不会给出走回头路的方案(以免进入死循环)。以START 处为起点,我可以向上、下、左、右各走一个街区的距离:向左和向上走会到达城墙,不能再走;向右走到B1 处,有三条路可以走;向下走到A2 处,还有三条路可以走。所以,如果把这个问题当作一个树遍历问题,树的前两层应该非常容易构建出来。

地图树遍历

上图中:X 表示走回头路或者“撞墙”,这样的路是不能走的,其下面的树结构也就不存在了;A1、B1 等交汇位置的节点则表示该处可以前往,并标注了该处之后的走法。这样一层一层往下标,最多能标出多少层呢?不清楚,要仔细算算才能知道。但可以确定的是,只需要8 层就可以完成从START 处(A1)到END 处(E4)的行进,而且走法不止一种。

任意列举几条路线:

A1→B1→C1→D1→E1→E2→E3→E4

A1→B1→C1→D1→D2→D3→D4→E4

A1→B1→C1→C2→C3→C4→D3→E4

……

我们不仅可以把这些路线一一列举出来,还可以把经过每条路线所花费的时间算出来(对一条路线的时间成本做一下简单的加法运算就可以了)。以路线A1→B1→C1→D1→E1→E2→E3→E4 为例,时间成本为 3 + 2+2+2 + 2 + 2+2 = 15,也就是说,从START 处(A1)到END 处(E4),走这条路线需要15 分钟。

如果想找到最短的路径,只要遍历路线,计算每条路线的成本,把成本最低(或者说耗时最短)的路线挑出来就可以了。这个思路再简单不过,可以保证在当前状态下是最优解——只要不出现走到半路突然发生交通事故,使得原本通畅的道路变得拥堵,或者原本拥堵的情况突然得到缓解。

第一,我们很容易用一种“智能”的方法得出这种问题的最优解,并向用户推荐这个最优解。之所以说它“智能”,是因为它确实自动实现了路程规划和推荐,挑选的是成本最低的路径。但是,在这个过程中,我没有用到任何机器学习的知识,也没有遇到任何需要通过样本学习来生成模型、确定待定系数的问题。我只用计算机专业本科一年级所学的一些基础知识就已经获解了,完全没有用到人工智能的方法——好意思叫“智能”吗?

第二,这是不是一个贯序决策问题呢?是或者不是,这也是一个问题。我想,可能会有两方面的意见。

认为这不是贯序决策问题的读者,会觉得这里面根本没有决策问题,而是纯粹的树遍历问题——非常不聪明,非常不智能,这哪里这是什么贯序决策问题!

树遍历

认为这是贯序决策问题的读者会觉得:从起点前往终点,中途在任何一个可以选择路径的位置都进行了判断,而且每次都选择沿着最好的路线前进——是的,“最好”,没有“之一”——在每个环节都进行了选择,这难道不是贯序决策问题吗?

两方的意见,我觉得都有道理。我不是一个喜欢咬文嚼字的人,也不想拿着什么金科玉律去说教。问题就摆在这里,我们要考虑的是:用什么样的方法解决问题才是合理的。

这个导航问题,在我看来,还真可以算作贯序决策问题。第一,它“够贯序”,因为它是由一系列决策判断组合而成的一个完整的行车路径策略;第二,它“有决策”,因为在每个十字路口都有很多选择,我需要充分的理由来决定要走哪一边。这两点是事实,对不对?

或许有些读者很失望——为什么要讲这么简单的例子?我只是希望大家能通过一个简单的例子明白一个道理:数学问题不一定非要通过极为艰深的算法和技术来解决,很多时候就是“小药治大病”,如果能用简单的方法解决问题,确实没有必要摆弄那些复杂的算法。反之,为了解决一个简单的问题而引入一大堆复杂的问题,在我看来,不是一种值得提倡的思考和处理方式。在解决具体的落地问题时,要尽可能选择复杂度可控、难度低、理论成熟的方法。像上文中这么特殊的贯序决策问题,在一定的限制条件下就会“退化”成搜索问题或遍历问题。所以,别犹豫,我们本来就应该用简单的方法去解决简单的问题。

结论已经很清晰了,刚刚这个问题就是一个贯序决策问题,只不过它是一个特例。那么,更为普适的贯序决策场景是什么样的呢?这个问题好,我们不妨想想看。

如果街区不是只有A~E 这5 条纵向的大道和1~4 这4 条横向的大道呢?如果有100 条横向的大道和100 条纵向的大道,这棵遍历树会有多“高”呢?应该最少要走198 条路才能到达,也就是一棵199 层的遍历树——这是非常可怕的!甚至,在很多场景中,我们很可能无法估算具体的层数。除此之外,如果我们不清楚每条路的拥堵情况,该怎么办呢?如果我们不能明确量化通过每条路预计需要多少分钟,该怎么办呢?

通过一系列科学的方法,对这类普适性问题进行体系性的求解方式和方法的归纳,才是这么多强化学习算法要解决的核心问题。

本书以“平民”的起点,从“零”开始介绍深度学习的技术与技巧,让读者有良好的带入感和亲近感,并通过逐层铺垫,把学习曲线拉平,使得没有学过微积分等高级理论的程序员朋友一样能够读得懂、学得会。同时,本书配合漫画插图来调节阅读气氛,并在每个原理讲解的部分都提供了对比和实例说明,相信每位读者都能有轻松、愉悦的阅读体验。

图书详情:京东

强化学习研究什么?用白话讲就是……相关推荐

  1. 《强化学习周刊》第32期:上海交大华为 | 可解释强化学习研究综述

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

  2. Yoshua Bengio团队最新强化学习研究:智能体通过与环境交互,「分离」变化的独立可控因素

    原文来源:arXiv 作者:Valentin Thomas.Emmanuel Bengio∗.William Fedus.Jules Pondard.Philippe Beaudoin.Hugo La ...

  3. 设计一款博弈类游戏的人机对战算法、策略_卡牌游戏八合一,华人团队开源强化学习研究平台RLCard...

    雷锋网 AI 科技评论按:在过去的两三年中,我们经常听说人工智能在棋牌类游戏(博弈)中取得新的成果,比如基于深度强化学习的 AlphaGo 击败了人类世界冠军,由 AlphaGo 进化而来的 Alph ...

  4. 华为诺亚方舟实验室多项强化学习研究成果获IJCAI 2020录用

    本文转载自诺亚实验室. 近期,华为诺亚方舟实验室(决策推理实验室-强化学习研究团队)的3项研究成果被人工智能领域顶级会议IJCAI(录取率12.6%)接收(一作都为实习生,主要工作在华为实习期间完成) ...

  5. 强化学习论文阅读笔记(一)——强化学习研究综述_高阳

    强化学习研究综述_高阳 目录 强化学习研究综述_高阳 一.与其他机器学习对比 二.分类 三.最优搜索型强化学习算法 四.经验强化型强化学习算法 五.部分感知 六.函数估计 七.多Agent强化学习 八 ...

  6. 【最新】如何降低深度强化学习研究的计算成本(Reducing the Computational Cost of DeepRL)...

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 人们普遍认为,将传统强化学习与深度神经网络相结合的 ...

  7. 不止Markov决策过程,全景式分析强化学习研究内容

    作者 | 肖智清 编辑 | 刘静 来源 | CSDN(ID:CSDNnews) 强化学习作为通用人工智能的希望,吸引了很多人工智能爱好者学习和研究.Markov决策过程是最知名的强化学习模型,强化学习 ...

  8. 深度丨深度强化学习研究的短期悲观与长期乐观(长文)

    文章来源:机器之心 深度强化学习是最接近于通用人工智能(AGI)的范式之一.不幸的是,迄今为止这种方法还不能真正地奏效.在本文中,作者将为我们解释深度强化学习没有成功的原因,介绍成功的典型案例,并指出 ...

  9. 多智能体通信:基于通信的多智能体强化学习研究综述

    题目:A Survey of Multi-Agent Reinforcement Learning with Communication 出处:arXiv 2022 摘要:通信是协调多个智能体行为的有 ...

  10. David Silver《强化学习RL》第八讲 整合学习与规划

    本课程之前所有的内容都没有提及到个体如何构建一个模拟环境的模型,自然也没有讲解个体构建一个模拟环境的模型对于解决MDP问题有何帮助.本讲即关注这两个问题.通过构建一个模型,个体具备了一定程度的独立思考 ...

最新文章

  1. 欧拉函数求一个数倒数的循环节长度
  2. Struts2学习小结
  3. 开发日记-20190620 关键词 今日回顾
  4. Week1 Team Homework #2 from Z.XML-Introduction of team member with photos
  5. 富文本编辑器ckeditor的使用
  6. php 获取html中图片不显示,HTML中img标签src属性用PHP设置后不显示
  7. Codeforces 919D - Substring
  8. fir滤波器应用matlab,fir滤波器应用.ppt
  9. 为什么有时候 php 没有写闭合标签结束符?
  10. 网络与IO知识扫盲(四):C10K问题、BIO的弊端与NIO的引入
  11. SAP ERP Material如何创建附件
  12. 前端学习(3235):react生命周期2
  13. 在windows下编译ffmpeg
  14. 巴斯勒相机外部触发接线_2021新疆欧姆龙相机回收童嫂无欺
  15. SQL中char、varchar、nvarchar的区别
  16. python数学篇(经典算法题)
  17. 8.《创业邦》:十大创业困境
  18. Spring boot 集成邮件通知及线程异步发送
  19. C++实现LZ77压缩算法
  20. 用Python解矩阵方程——Numpy模块

热门文章

  1. java day24【Stream流、方法引用】
  2. java day19【File类、递归】
  3. 2019年新年第一天,我也制定一下2019年计划,
  4. 微信小程序scroll-view横向滚动
  5. python中-----数组中的排序
  6. 线性代数的本质与几何意义 01. 向量是什么?(3blue1brown 咪博士 图文注解版)
  7. redis、kafka、rabittMQ对比 (转)
  8. Linux内核分析学习心得
  9. registerClassAlias()函数和getClassByAlias()函数
  10. 编程经历的一些思考——一个工作4年老鸟的职业思考(转载)