查看原文
其他

【强化学习】从强化学习基础概念开始

行健 有三AI 2020-03-13

在开始探索强化学习的诸多算法之前,我们先来了解一下它所涉及到的具体概念。这些概念将作为基石,一直陪伴着我们的学习之旅。为了能够将这些概念熟记在心,我们这一期做成强化学习概念小卡片,一张一张给大家展示和帮助大家理解。


作者&编辑 | 行健 言有三


1 基础概念怎么学

经常有同学拿到一本书不知道该怎么学习,尤其是涉及到理工科的教材,往往充满了各种新的名词和概念,章节之间有的彼此关联,有的彼此独立。面对这样一本类似于“概念网络”组织起来的书,如何入手更快呢? 我们知道,书籍的写作过程是一章一章完成的,作者在大脑里构建的知识地图,或者说知识网络确是一个完整的整体,作者在开始写书的时候就对整个知识网络有全貌的理解和认识。在这样的一个知识网络里面,会有很多不同的知识节点,作为整个知识体系的节点,来连接构建出整个知识网络的全貌。虽然按部就班的去看书的每一章节,可以让你看到这些节点的具体内容,但是要想把整个书的知识网络熟络于心,那需要额外的努力。俗话说,书读百遍,其义自见。古人也知道,一本书读一遍是不够的。可是面对日益爆炸增长的知识,我们如何快速的掌握作者的知识网络,成了我们有必要学习的“知识提取”方法论。在这里,我们提出,这些知识节点往往来自于概念的独立构建和相互融合的衍生,所以,基于这一点,我们要关注这些位于作者知识网络中的关键节点,一开始就来学习这些基础概念,从而高屋建瓴,打好基础。对这些概念的辨识,需要一定功力,阅读的功力往往从翻开书的那一刻就体现出来了。如果把一本书比作一位老师,目录便是他的骨架,支撑起整本书的灵魂。在目录里,去寻找那些你看不懂,想不清楚的名词,这些名词就是你需要认知的第一份“概念草稿图”的组成。

对于一个领域的知识而言,无非分为上图所示的几个基本方面的内容。知识体系中有哪些是事实(fact)作为依据,有哪些是基于事实进行的分析(analysis)和分析,有哪些作为过程(process),包含事实本身的过程和分析处理加工事实的过程,有哪些是基于这些事实(fact)和过程(process)进行假设,定义的概念(concept),从而产生推理和结论,最终构建出新的对象( project ) 或者实体(instance),或者新的学科(subject)。在此基础上,当其他人获取和继承到这份知识后,会去创造出价值,这些价值包含创新的idea和情绪思维的体验,更包含艺术(art)层面的,研究(study)层面的,理论(theory)层面的,学术(scholar)层面的,以及个体的成长(growth)和提升方面。同时知识在继承过程中本身也会完成一次新的衍生和增长(growth)。


我们将这些对知识本身的讨论和学习,叫做“元学习”。元学习能够帮助我们入木三分的领会知识精华,将知识荟萃提取成我们的自己的精神感悟和思想认识,而不是记忆中的细枝末节。如果你还在记忆知识,那很多情况,你只能够简单的应用,还达不到对知识进行创造性的衍生和自我独特的见解。当然,我们还是推崇刻苦练习基本功,在继承知识这件事情上,从来没有捷径,只是效率和境界的不同。


接下来,我们对强化学习的概念体系进行结构和认识,将这些知识放进我们的知识框架的背包当中,从而方便我们后期取用、组合、应用、以及产生新的创造,达到学习知识的终极目标。


2 强化学习的基础概念

(1) 系统

什么是系统?系统是一个抽象定义。它所对应的具体实体可以是任何组成的物质存在。强调物质存在是系统存在的必要前提。系统大到星系宇宙,小到细胞、分子、原子。我们对所研究的对象作出边界定义后,就构成了系统。


(2) 环境

环境是排除系统研究实体或研究变量之外的部分。在强化学习中,环境指排除智能体之外的所有组成。


(3) 智能体

智能体是强化学习中的主要研究对象,我们希望智能体能够通过环境的检验来实现系统的目标。


(4) 交互

交互专指智能体与环境的交互。目前强化学习中的研究中,多数系统与外部没有直接交互。在一些游戏战中,人类玩家可以看作一个外部系统和环境进行交互,联合智能体一起对环境进行探索。可以认为人类玩家是系统外部角色,不过在改变和影响系统本身方面,人类玩家和智能体是一样的。这一点,你可以理解为在系统之外“没有上帝存在”。


(5) 动作

动作指智能体和环境产生交互的所有行为的集合。


(6) 状态

状态指智能体当前的所处的环境情况,自身历史状态情况,以及目标完成情况。这里目标是指系统在开始构建之初,为智能体所定义的目标。


(7) 策略

策略是说智能体在允许的动作集合中,通过对动作进行组合,先后使用次序的调整,从而探索出不同的使用动作组合和次序来实现目标。换言之,如何从当前的状态,通过动作,转换到最佳的下一个状态。


(8) 试错

试错是早期强化学习的主要方向。通过试错来探索最优策略。目前强化学习研究的方向转为奖励函数的优化。


(9) 记忆

智能体对过往经验的总结归纳和采用的方式。


(10) 奖励

获得环境正反馈后,智能体获得环境中设计的奖励,另外,还有一种奖励就是对环境本身的适应和开发。


(11) 价值函数

如何做才能最大化奖励。价值函数始终是约束最优策略的产生和策略探索的方式。


(12) 探索

去尝试找到不同策略下的奖励的过程。


(13) 应用

利用已有的探索成果来和环境交互。


(14) 马尔科夫决策过程

马尔科夫决策过程是包含动作,转换函数,奖励的过程。


在有了这些基础概念之后,我们需要对这些概念进行组合,或者改变顺序的安排来定义一套具体的算法。在之后的专栏中,我们要学会写出算法的伪代码。这些概念就是伪代码的基础。另外,符号化和严格的数学定义也非常重要,之后,数学符号的引入和证明都将推出,但这些定义往往和理论宗派有关,不同的科学家对这些问题的看法和角度并不太一样。下周我们会分享这些内容,数学定义也会相继给出。


3 强化学习中的六类问题

虽然强化学习给出了一个非常通用的解决问题的思路,但是面对具体问题,在不同场景下,强化学习又会有不同的侧重。这些侧重点主要体现在一下六类问题的不同探索点上:


(1) Learning

如何通过学习去解决问题,智能体从未知的环境中通过策略学习提高。


(2) Planing

如何通过规划去解决问题,已知基于环境的模型,智能体通过模型进行计算,并且不需要外部交互,智能体能够提高策略的表现。这类问题的典型案例是 alphaGo。在已知围棋的规则下,去寻找最优结果。


(3) Explorition

如何通过探索去解决问题,智能体通过试错获取环境信息。


(4) Exploitation

如何利用已知信息去解决问题,智能体利用获取的信息获取最大奖励。


(5) prediction

如何借助预测未来去解决问题,通过评估和预测未来,给出最佳策略。


(6) Control

如何通过控制未来去解决问题,通过控制和改变未来,找到最佳策略。


六类问题本身并不独立,我们在这里把六类问题抽象出来看,每类问题下都有很多经典的应用。后续我们介绍具体算法的时候会一一讨论和学习,反复强化。


4 强化学习中的算法

有了上述六类问题,我们再看看如何通过方法或者方法的组合去定义解决问题的算法。


借助是否使用了Policy、Value fuction、Model 不同的方法组合,强化学习算法可以分为Value-based,Policy-Based,Model-Based,Model-Free这三种。具体涉及到的算法在下图中可以看到。

总结


最后,我们小结一下,这次我们着重分享了强化学习的基础概念,这些我们给出了解释性的定义。对这概念,我们可能并没有具体的数学定义,这在解决问题的过程中非常不方便,那么如何将我们的概念通过数学证明的方式严格定义下来呢?下一节,和未来许多节,我们都将努力的去定义这些概念,消化和理解这些概念。

有三AI夏季划

有三AI夏季划进行中,欢迎了解并加入,系统性成长为中级CV算法工程师。


转载文章请后台联系

侵权必究

往期精选


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存