前言
- 两年前接触强化学习是通过莫烦的课程,那时候对强化学习整体有一个基础的认识,最近听了David Silver的课程后又建立起了完整的强化学习体系,故连载David Silver系列的笔记.本讲会对强化学习整体做一个介绍,也会介绍强化学习中常用的概念,帮助读者理解,看完本文只需要建立起一个概念体系就行,不需要深究细节,细节在后面会展开说明.
目录
- 关于强化学习
- 强化学习中的要点
- 智能体内部
- 强化学习中的问题
- 参考
关于强化学习
-
强化学习在各种领域都有着它的应用,比如:(1)在计算机科学领域,强化学习是一种机器学习的算法(2)在数学领域,强化学习体现在运筹学的研究(3)在工程师领域,强化学习则体现在最优控制理论 等等.
- 可以说机器学习有三个分支,分别是监督学习(给定标签学习),非监督学习(挖掘没标签样本之间的联系)和本文将介绍的强化学习.
强化学习的特点
- 不同于监督学习有标签告诉算法什么样的输入对应着什么样的输出,强化学习没有标签,只有一个做出一系列行为后最终反馈回来的奖励信号,通过奖励信号来调整算法.
- 强化学习的奖励信号反馈是延迟的,不是实时的,
- 强化学习中时间序列是一个重要的因素(作为序列决策问题,属于非独立同分布数据)
- 每一个决策的行为都会影响到下一次决策的输入.
强化学习应用的部分案例
游戏
阿法狗
强化学习中的要点
奖励Reward
- 奖励是一种反馈信号,它是一个标量,它反映的就是个体在时刻做的怎么样,每个个体的目标就是最大化它积累的奖励(积累的奖励越多自然表示他做的更好).
- 强化学习就是基于这样的奖励假设:所有的目标都可以被描述成最大化累积奖励的期望。
奖励的例子
- 对于直升飞机飞行特技动作,在它按照规定好的轨迹飞行的时候给予它正奖励反馈,在它碰撞的时候给予它负奖励反馈.
- 对于下围棋来说,它赢了就给予它正奖励反馈,它输了就给予它负奖励反馈
序列决策Sequential Decision Making
- 目标:选择一序列的行为来最大化未来的奖励(比如为了完成飞行特技动作,直升飞机需要先往上再往下等等)
- 这些行为可能是一个长序列(完成一个特技动作需要一连串的行为)
- 奖励信号可能是延迟的(可能最后才知道这个特技动作做好了没)
- 有时候我们需要牺牲短期奖励来得到长期的奖励(一开始飞机不是直接飞,而是先加油,虽然一开始让大家等他消耗了大家的耐心,但最终完美的特技动作赢得了人们的鼓掌)
智能体和环境 Agent and Environment
-
首先,我们要区分这两者,智能体就是下图的大脑,是我们可以控制的,环境则是下图中的地球,我们控制不了,只能看
- 我们分别从智能体和环境两部分来阐述:
- 对于智能体本身,在每一个时刻,将分别做三件事:
- 接受在环境得到的一个观测observation,对机器人找宝藏这个实际例子来说则是机器人的摄像头看到的场景.
- 执行动作action ,即机器人根据摄像头看到的路选择往左走或者往右走去寻找宝藏.
- 从环境接受一个奖励的信号,环境会通过奖励信号告诉机器人这步走的好不好.(这里没有按照课件中的,读者看到后面几讲就明白了)
- 对于环境本身,在每一个时刻,将分别做三件事:
- 接受智能体的动作
- 更新环境的信息,让智能体得到下一个观察,比如机器人向右走了一步后让机器人看到向右一步后的场景
- 给予智能体奖励信号
历史和状态 History and State
- 历史history是观测observations,动作actions,奖励rewards的序列
- 这个历史序列很重要,智能体选择执行的动作,环境选择观测或者奖励都取决于它
- 状态state包含用来决定接下来发生什么的所有已有信息,是关于历史的一个函数
环境状态 Environment State
- 环境状态是环境本身私有的一种表达,包括环境用来决定下一个观测/奖励的所有数据,通常对个体并不完全可见,也就是个体有时候并不知道环境状态的所有细节,就算有时候是可见的,他也包含了一些无关的细节.
智能体状态 Agent State
- 智能体状态是智能体的内部呈现,包括智能体可以使用的、决定未来动作的所有信息。
- 智能体状态是强化学习算法可以利用的信息,它是关于历史histroy的一个函数
信息状态 Information State
- 信息状态包含历史中所有有用的信息,也叫作Markov马尔科夫状态.
马尔科夫性的定义
- 这里解释一下上面提到的马尔科夫性,马尔科夫性指的是某一事件的状态仅取决于它的上一个状态,而不取决于它的历史状态,即.
- 也就是说如果信息状态是可知的,那么所有历史信息都可以丢掉,仅需要时刻的信息状态就可以了。同理环境状态和历史都是马尔科夫性的.
举例:马尔科夫性
下面有三个序列,第一个老鼠的结果是接受电击,第二个是老鼠能吃到奶酪,那么第三个序列的结果是什么?
- 假如智能体状态 = 序列中的后三个事件(不包括电击、获得奶酪,下同),事件序列3的结果会是什么?(答案是:电击)
- 假如智能体状态 = 亮灯、响铃和拉电闸各自事件发生的次数,那么事件序列3的结果又是什么?(奶酪,1次亮灯两次拉闸一次响铃)
- 假如个体状态 = 完整的事件序列,那结果又是什么?(未知)
完全可观测的环境 Fully Observable Environments
- 完全可观测的环境指的是智能体能够直接观察到环境的状态,此时智能体对环境的观测 = 智能体状态 = 环境状态
- 准确的说,这就是一个马尔科夫决策过程Markov
decision process (MDP),这是我们下一讲的重点.
部分可观测的环境 Partially Observable Environments
- 部分可观测的环境就是指智能体间接地观测环境,这里有三个例子便于理解:
- 一个可拍照的机器人智能体对于其周围环境的观测并不能说明其绝对位置,它必须自己去估计自己的绝对位置,而绝对位置则是非常重要的环境状态特征之一;
- 一个交易员只能看到当前的交易价格;
- 一个扑克牌玩家只能看到自己的牌和其他已经出过的牌,而不知道整个环境(包括对手的牌)状态。
- 在这种情况下,智能体状态就不等于环境状态了,这时候就是部分可观测马尔可夫决策过程(Partially Observable Markov Decision Process,POMDP)。
- 智能体必须构造他自己的状态表达形式,有三种方法:
- 记住全部历史,即,这种方法比较直男不推荐.
- Beliefs of environment state:此时虽然智能体并不知道环境状态到底是什么样,但智能体可以利用已有经验(数据),用各种智能体已知状态的概率分布作为当前时刻的智能状态的呈现:
- Recurrent neural network:不需要知道概率,只根据当前的智能体状态以及当前时刻个体的观测,送入循环神经网络(RNN)中得到一个当前个体状态的呈现:
智能体内部 Inside An RL Agent
- 智能体的组成部分包含下面一个或多个成分:
- 策略Policy:决定智能体行为的机制
- 价值函数Value function:评价某一状态或者行为的好坏
- 模型Model:智能体对环境的建模
策略 Policy
- 策略是决定智能体行为的机制。
- 是从状态到行为的一个映射,即在某一个状态下选择某一个行为.
- 策略可以是确定性的,如,即在某个状态下一定采取这个行为.
- 策略也可以是不确定性的,如,即在某个状态下执行某种行为的概率
价值函数 Value Function
- 价值函数是一个未来奖励的预测,用来评价当前状态的好坏程度。当面对两个不同的状态时,个体可以用一个Value值来评估这两个状态可能获得的最终奖励区别,继而指导选择不同的行为,即制定不同的策略。
- 价值函数表达:,在下一讲会对这个公式进行展开解释.
模型 Model
- 模型是智能体对环境的一个建模,它体现了智能体是如何思考环境运行机制的,智能体希望模型能模拟环境与个体的交互机制,这样就可以不需要真正的环境了.
- 模型可以预测环境接下来会发生什么,具体来说包含两部分,即预测下一个可能的状态发生的概率,即下一个可能获得的即时奖励
- 模型仅针对智能体而言,环境实际运行机制不称为模型,而称为环境动力学(dynamics of environment),它能够明确确定个体下一个状态和所得的即时奖励。
以迷宫为例子理解智能体的三部分
- 在这个例子中,奖励rewards就是每走一步获得-1的奖励,智能体可以采取的动作action是四个方向上下左右走,而智能体的状态state则是智能体的位置.
Policy策略
-
红箭头代表policy,表示智能体在不同的状态(即位置)所采取的行动,图中每一个箭头表示的就是每个状态的策略
Value Function价值函数
-
每走一步的奖励是-1,那么每个状态(位置)的价值函数的值代表着在那个位置还需要走多少步,智能体自然是朝着-1走去终点
Model模型
-
智能体在迷宫中找到了下图这条路径,最终到达终点.而我们的智能体尝试建立一个模型来理解环境是如何工作的,其实就是建立一个自身对环境的映射,模型尝试找到环境发生的变化.图中的-1表示每走一步减去一个即时奖励,这个模型映射了智能体对环境动态特性的理解,理解这个映射即是理解状态的转换.
强化学习智能体的分类
-
我们在上面理解了智能体中的三个可能的组成部分,而智能体的分类也是根据这三个分类的:
- 仅基于价值函数的智能体 Value Based:在这样的智能体中,有对状态的价值估计函数,但是没有直接的策略函数,策略函数由价值函数间接得到。
- 仅直接基于策略的智能体 Policy Based:这样的智能体中行为直接由策略函数产生,个体并不维护一个对各状态价值的估计函数。
- 演员-评判家形式 Actor-Critic:个体既有价值函数、也有策略函数。两者相互结合解决问题。
- 不基于模型的智能体: 这类智能体并不想了解环境如何工作,而仅聚焦于价值和/或策略函数。
- 基于模型的智能体:个体尝试建立一个描述环境运作过程的模型,以此来指导价值或策略函数的更新。
强化学习的问题
学习和规划
- 学习:环境初始时是未知的,智能体不知道环境如何工作,智能体通过不断与环境进行交互,逐渐改善其行为策略。
- 规划: 环境如何工作对于智能体是已知的,智能体并不与环境发生实际的交互,而是利用其构建的模型进行计算,在此基础上改善其行为策略。
- 一个常用的强化学习问题解决思路是,先学习环境如何工作,也就是了解环境工作的方式,即学习得到一个模型,然后利用这个模型进行规划。
探索和利用 Exploration and Exploitation
- 强化学习类似于一个试错的学习,智能需要从其与环境的交互中发现一个好的策略,同时又不至于在试错的过程中丢失太多的奖励。探索和利用是个体进行决策时需要平衡的两个方面。
- 一个形象的比方是,当你去一个餐馆吃饭,“探索”意味着你对尝试新餐厅感兴趣,很可能会去一家以前没有去过的新餐厅体验,“利用”则意味着你就在以往吃过的餐厅中挑一家比较喜欢的,而不去尝试以前没去过的餐厅。这两种做法通常是一对矛盾,但对解决强化学习问题又都非常重要。
- 其它一些例子,在线广告推广时,显示最受欢迎的广告和显示一个新的广告;油气开采时选择一个已知的最好的地点同在未知地点进行开采;玩游戏时选择一个你认为最好的方法同实验性的采取一个新的方法。
预测和控制 Prediction and Control
- 在强化学习里,我们经常需要先解决关于预测(prediction)的问题,而后在此基础上解决关于控制(Control)的问题。
- 预测:给定一个确定的策略,评价未来。可以看成是求解在给定策略下的价值函数的过程。
- 控制:找到一个好的策略来最大化未来的奖励。
通过一个例子理解
-
预测:现在给出了从A到A’的奖励以及从B到B’的奖励,在“随机选择4个方向进行移动”的策略下,如何得知每一个位置的价值。
-
控制:同样的条件,在所有可能的策略下最优的价值函数是什么?最优策略是什么?
参考
- David silver的课程https://www.bilibili.com/video/BV1kb411i7KG?p=1
- 主要参考:叶强的笔记https://www.zhihu.com/column/reinforce