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

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

强化学习的主要目的是研究并解决机器人智能体贯序决策问题。尽管我不喜欢直接把定义硬邦邦、冷冰冰地扔出来让大家被动接受,可还是免不了要在这里猛然给出“贯序决策”这么专业的词汇。不过马上,我们就通过例子把这个词汇给大家解释清楚~本文选自《白话强化学习与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 层的遍历树——这是非常可怕的!甚至,在很多场景中,我们很可能无法估算具体的层数。除此之外,如果我们不清楚每条路的拥堵情况,该怎么办呢?如果我们不能明确量化通过每条路预计需要多少分钟,该怎么办呢?

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

09_


10_PyTorch_

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

相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
#如何看待诺贝尔物理学奖颁给了机器学习与神经网络?#
2024年诺贝尔物理学奖首次颁发给机器学习与神经网络领域的研究者,标志着这一技术对物理学及多领域应用的深远影响。机器学习和神经网络不仅在生产、金融、医疗等行业展现出高效实用性,还在物理学研究中发挥了重要作用,如数据分析、模型优化和物理量预测等,促进了物理学与人工智能的深度融合与发展。
30 0
|
机器学习/深度学习 人工智能 算法
自监督为何有效?243页普林斯顿博士论文「理解自监督表征学习」,全面阐述对比学习、语言模型和自我预测三类方法
自监督为何有效?243页普林斯顿博士论文「理解自监督表征学习」,全面阐述对比学习、语言模型和自我预测三类方法
139 0
自监督为何有效?243页普林斯顿博士论文「理解自监督表征学习」,全面阐述对比学习、语言模型和自我预测三类方法
|
机器学习/深度学习 存储 算法
入坑机器学习:三,非监督学习
不同于监督学习的数据的样子,即无监督学习中没有任何的标签或者是有相同的标签或者就是没标签。所以我们已知数据集,却不知如何处理,也未告知每个数据点是什么。别的都不知道,就是一个数据集。你能从数据中找到某种结构吗?针对数据集,无监督学习就能判断出数据有两个不同的聚集簇。这是一个,那是另一个,二者不同。是的,无监督学习算法可能会把这些数据分成两个不同的簇。所以叫做聚类算法。
174 0
入坑机器学习:三,非监督学习
|
机器学习/深度学习 存储 传感器
入坑机器学习:二,监督学习
第三个问题是输入空间的维数。如果输入特征向量具有非常高的维数,学习问题是很困难的,即使真函数仅依赖于一个小数目的那些特征。这是因为许多“额外”的尺寸可混淆的学习算法,并使其具有高方差。因此,高的输入维数通常需要调整分类器具有低方差和高偏置。在实践中,如果工程师能够从输入数据手动删除不相关的特征,这是有可能改善该学习功能的准确性。此外,还有许多算法的特征选择,设法确定相关特征,并丢弃不相关的。这是维数降低,其目的是将输入数据映射到较低维空间中运行的监督学习算法之前的更一般的策略的一个实例。
154 0
入坑机器学习:二,监督学习
|
机器学习/深度学习 算法 BI
机器学习:李航-统计学习方法笔记(一)监督学习概论
机器学习:李航-统计学习方法笔记(一)监督学习概论
203 0
机器学习:李航-统计学习方法笔记(一)监督学习概论
|
机器学习/深度学习 存储 数据采集
机器学习时代,神经科学家如何阅读和解码人类的思想
作者:Jiying 编辑:Joni 这篇文章围绕机器学习(ML)和功能性磁共振成像(fMRI)的应用问题,以三篇最新的研究型论文为基础,探讨基于统计学中 ML 的 fMRI 分析方法。
354 0
机器学习时代,神经科学家如何阅读和解码人类的思想
|
机器学习/深度学习 算法 数据挖掘
白话机器学习
机器学习是什么 一段程序可以看作一连串从输入到输出的过程,无论是工程师还是程序员,我们都想通过设计来完成某种功能。以做一个网页为例,要画视觉图、UI 图,以及前端后端交互图等,我们要给计算机设计一套解决具体问题的流程。
1623 0
|
机器学习/深度学习 人工智能 算法
|
机器学习/深度学习 测试技术 计算机视觉