目录

强化学习基础(马尔可夫决策过程价值迭代,策略迭代)

视频游戏里的强化学习(Q-learning)

策略梯度

探索与利用


强化学习基础(马尔可夫决策过程价值迭代,策略迭代)

场景描述:假设我们有一个3x3的棋盘,其中有一个单元格时马里奥,另一个单元格是宝藏,如图11.1所示,在游戏的每个回合,可以往上、下、左、右四个方向移动马里奥,直到马里奥找到宝藏,游戏结束。在这个场景中,强化学习需要定义一些基本概念来完成对问题的数学建模。

百面机器学习(11)——强化学习

1. 强化学习中有哪些基本概念?在马里奥找宝藏的问题中如何定义这些概念?(1)

强化学习的基本场景可以用图11.2来描述主要由环境(Environment)、机器人(Agent)、状态(State)、动作(Action)、奖励(Reward)等基本概念构成。一个机器人在环境中会做各种动作,环境会接收动作,并引起自身状态的变迁,同时给机器人以奖励。机器人的目标就是使用一些策略,做合适的动作,最大化自身的收益。

百面机器学习(11)——强化学习

整个场景一般可以描述为一个马尔可夫决策过程( MarkovDecision Process, MDP )。马尔可夫决策过程是马尔可夫过程与确定性的动态规划相结合的产物,指决策者周期地、连续地观察具有马尔可夫性的随机动态系统,序贯地做出决策的过程,以俄罗斯数学家安德雷 ·马尔可夫的名字命名。这个过程包括以下几个要素:

动作:所有可能做出的动作的集合,记作 A(可能是无限的)。对于本题, A=马里奥在每个单元格可以行走的方向3 即{上、下、左、右}。

状态:所有状态的集合,记作 S。 对于本题,S 为棋盘中每个单元格的位置坐标{(x,y); x=1,2,3; y=1,2,3 },马里奥当前位于( 1, 1 ),宝藏位于( 3,2 )。

奖励:机器人可能收到的奖励,一般是一个实数,记作 r。对于本题,如果马里奥每移动一步,定义r=-1;如果得到宝藏,定义为0,游戏结束。

时间:( t=1,2,3 ... ) 在每个时间点 t,机器人会发出一个动作at,收到环境给出的收益 rt,同时环境进入到一个新的状态st。

状态转移:SxA → S满足Pa( st|st-1, at)=Pa( st|st-1, at, st-2, at-1  …),也就是说,从当前状态到下一状态的转移:只与当前状态以及当前所采取的动作有关。这就是所谓的马尔可夫性。

累积收益:从当前时刻0开始累积收益的计算方法如下式,在很多时候,我们可以取T=∞。

百面机器学习(11)——强化学习

强化学习的核心任务是,学习一个从状态空间 S 到动作空间 A 的映射,最大化累积受益。 常用的强化学习算法有 Q-Learning、策略梯度,以及演员评判家算法( Actor-Critic )等。

 

2. 根据图11.1给定的马里奥的位置以及宝藏位置,从价值迭代来考虑,如何找到一条最优路线?(2)

上一问已经把强化学习问题形式化为马尔可夫决策过程。下面我们介绍如何利用价值迭代求解马尔可夫决策过程。那么什么是价值呢?我们将当前状态 s 的价值 V(s)定义为:从状态 s=(x,y)开始,能够获得的最大化奖励 。结合图 11.3 可以非常直观地理解价值迭代.

百面机器学习(11)——强化学习

首先,初始化所有状态的价值 V(s)=0。 然后,在每一轮迭代中,对每个状态 s 依次执行以下步骤。

  1. 逐一尝试{上、下、左、右}四个动作a,记录到达状态s’ 和奖励 r。
  2. 计算每个动作的价值 q(s,a)=r + V(s’)。
  3. 从四个动作中选择最优的动作max {q(s,a)}。
  4. 更新 s 状态价值 V(s) = max{q(s,a)}。

在第一轮迭代中,由于初始状态 V(s)均为0, 因此对除宝藏所在位置外的状态 s 均有 V(s)=r+ V(s’)=-1+0= -1 ,即从当前位置出发走一步获得奖励r=-1。

在第二轮迭代中,对于和宝藏位置相邻的状态,最优动作为一步到达V(s’)=0的状态,即宝藏所在的格子。 因此,V(s)更新为r+ V(s’)=-1+0=-1;其余只能一步到达V(s’)=-1 的状态,V(s)更新为r+ V(s’)= -1+(-1)。

第三轮和第四轮迭代如法炮制。可以发现,在第四轮迭代中,所有V(s)更新前后都没有任何变化,价值迭代已经找到了最优策略。最终,只需要从马里奥所在位置开始,每一步选择最优动作,即可最快地找到宝藏。

上面的迭代过程实际上运用了贝尔曼方程(BellmanEquation),来对每个位置的价值进行更新。

百面机器学习(11)——强化学习

贝尔曼方程中状态 s 的价值的。)由两部分组成:

  1. 采取动作a后带来的奖励 r。
  2. 采取动作a后到达的新状态的价值V(s’)。

 

3. 根据图11.1给定的马里奥的位置以及宝藏的位置,从策略迭代来考虑,如何找到一条最优路线?(2)

本节介绍马尔可夫决策过程的另一种求解方法一一策略迭代。 什么叫策略?策略就是根据当前状态决定该采取什么动作。 以场景中的马里奥寻找宝藏为例,马里奥需要不断朝着宝藏的方向前进:当前状态如果在宝藏左侧,策略应该是朝右走;当前状态如果在宝藏上方,策略应该是朝下走。

如何衡量策略的好坏?这就需要介绍策略评估( Policy Evaluation )。 给走一个策略 π,我们可以计算出每个状态的期望价值 V(s)。策略迭代可以帮助我们找到更好的策略,即期望价值更高的策略,具体步骤如下。

1) 初始化: 随机选择一个策略作为初始值。比如“不管什么状态,一律朝下走”,即 P(A =朝下走I S,=s ) = 1, P ( A =其他 I S,=s) = 0。

2) 进行策略评估.根据当前的策略计算Vπ(s) =Eπ ( r+γVπ(s‘)| St= s)。

3) 进行策略提升:计算当前状态的最优动作max{qπ(s,a)},更新策略π(s)。

百面机器学习(11)——强化学习

4) 不停地重复策略评估和策略提升,直到策略不再变化为止。

在马里奥寻找宝藏问题中,策略迭代过程如图11.4所示.

百面机器学习(11)——强化学习

初始化策略为:不论马里奥处于哪个状态,一律朝下走。 根据这一策略进行策略评估不难发现,只有宝藏正上方的状态可以到这宝藏,期望价值为到宝藏的距离( -2, -1 和 0 ),其余状态不能通过当前策略到达宝藏,期望价值为负无穷。 然后根据当前的期望价值进行策略提升:对于宝藏正上方的状态,策略已经最优,保持不变,对于不在宝藏正上方的状态,根据策略更新公式π(s),最优策略为横向移动一步。

通过上轮的策略提升,这-轮的策略变为:对于宝藏正上方的状态,向下移动;对于不在宝藏正上方的状态,横向移动一步。根据当前策略进行策略评估,更新各状态期望价值:宝藏正上方的状态价值期望不变,仍等于到宝藏的距离;不在宝藏正上方的状态期望价值更新为

r+γVπ(s‘),即横向移动一步的奖励与目标状态的期望价值之和。然后根据更新后的期望价值进行策略提升:不难发现,对于所有状态,当前策略已经最优,维持不变,中止策略提升过程。

最终,马里奥只需从初始状态( 1, 1 )开始,按照当前位置的最优策略进行行动,即向右行动一步,然后一直向下行动,即可最快找到宝藏。

 

 

视频游戏里的强化学习(Q-learning)

传统的强化学习主要使用 Q-learning , 而深度强化学习也使用 Q-learning 为基本框架,把 Q-learning 的对应步骤改为深度形式,并引入了些技巧,例如经验重放( experience  replay )来加快收敛以及提高泛化能力。     

1. 什么是深度强化学习,它和传统的强化学习有什么不同?(3)

2013年DeepMind提出的深度强化学习仍然是使用经典的Q-learning框架。经典的Q-learning算法如图11.5所示。

百面机器学习(11)——强化学习

图11.6是深度Q-learning算法,其中红色部分为和传统Q-learning不同的部分。

百面机器学习(11)——强化学习

比较这两个算法,我们不难发现深度 Q-leaming 和传统的 Q-leaming的主体框架是相同的,在每一次子迭代中,都是按照以下步骤进行。

1)根据当前的 Q 函数执行一次行动at。

2)获得本次收益 rt, 及下个状态 St+1 。

3)以某种方式获得一个四元组(sj,aj,rj,sj+1)。

4)计算(yj-Q(sj,aj;θ))2 执行一次梯度下降,完成参数更新。

表11.1是传统Q-learning与深度Q-learning的对比。以获得状态的方式为例,传统 Q-learning 直接从环境观测获得当前状态;而在深度 Q-leaming 中,往往需要对观测的结果进行某些处理来获得 Q 函数的输入状态。比如,用深度 Q-learning玩 Atari 游戏时,是这样对观察值进行处理的:在 t时刻观察到的图像序列及对应动作x1,a1, x2,a2 … xt, at, xt+1,通过一个映射函数Φ(x1, a1 ,x2,. .. , xt, at, xt+1),得到处理后的标准状态。在实际的应用中Φ选择最后 4 帧图像,并将其堆叠起来。

百面机器学习(11)——强化学习

 

策略梯度

场景描述:Q-learning 因为涉及在状态空间上求 Q 函数的最大值,所以只适用于处理离散的状态空间,对于连续的状态空间,最大化 Q 函数将变得非常困难。 所以对于机器人控制等需要复杂连续输出的领域,Q-learning 就显得不太合适了。其次,包括深度 Q-learning 在内的大多数强化学习算法,都没高收敛性的保证,而策略梯度( Policy Gradient )则没有这些问题,它可以无差别地处理连续和离散状态空间,同时保证至少收敛到一个局部最优解。

1. 什么是策略梯度,它和传统的Q-learning有什么不同,相对于Q-learning来说有什么优势?(4)

策略梯度动作的生成模型是以θ为参变量的一个分布,动作at从这个分布进行采样。强化学习的总是收益函数R(θ)完全由θ所决定。策略梯度的基本思想就是直接用梯度方法来优化R(θ)。

可以看出,和 Q-learning 不同的是,策略梯度并不估算 Q 函数本身,而是利用当前状态直接生成动作at。 这有效避免了在连续状态空间上最大化 Q 函数的困难。同时,直接用梯度的方法优化 R(θ)可以保证至少是局部收敛的。要使用梯度法,首先要知道如何计算R(θ)的导数。

百面机器学习(11)——强化学习

百面机器学习(11)——强化学习

 

 

探索与利用

1. 在智能体与环境的交互中,什么是探索和利用?如何平衡探索与利用?(3)

以餐馆给顾客推荐菜品为例,客人来了不用点餐而是用算法来决定做哪道菜。刚开始随机推荐,后来根据大家试吃过菜品的评价来决定以后重点推荐的菜品。一道菜很多人吃后都反馈好吃,那么下次就重点推荐给来到店里的客人。

探索和利用的平衡是一个经久不衰的问题。 一是,探索的代价是要不停地拿用户去试菜,影响客户的体验,但有助于更加准确的估计每道菜好吃的概率,二是,利用基于目前的估计拿出“最好的”菜来服务客户,但目前的估计可能是不准的(因为试吃的人还不够多)。

如何平衡探索和利用呢?可以使用 E-greedy 算法,即每当客人到来时,先以 E的概率选择探索,从 N道菜中随机选择(概率为 EIN )一个让客人试吃。根据客人的反馈更新菜做得好吃的概率{p1’, P2' ...  pN’};然 后,以 1-E 的概率选择利用,从 N道菜{p1’, P2' ...  pN’}中选择好吃的概率最高的菜推荐给用户。

E-greedy 算法也存在一些缺点,比如,在试吃次数相同的情况下,好吃和难吃的菜得到试吃的概率是一样的。有一道菜持续得到好吃的反馈,而另一道菜持续得到难吃的反馈,但在 E-greedy 中,探索两道菜的概率是一样的,均为EIN;在估计的成功概率相同的情况下,试吃次数多的和试吃次数少的菜得到再试吃的概率一样的。假设有两道菜,第一道菜 50 人当中 30 个人说好,第二道菜 5 个人当中 3 个人说好,虽然两道菜的成功概率都是60% ( 30/50 = 3/5 ),但显然反馈的人越多,概率估计的越佳。再探索肘,应该把重心放在试吃次数少的菜上。

总结一下, E-greedy 生硬地将选择过程分成探索阶段和利用阶段,在探索时对所有物品以同样的概率进行探索,并不会利用任何历史信息,包括某道菜被探索的次数和某道菜获得好吃反馈的比例 。不妨让我们忘记探索阶段和利用阶段,仔细想想如何充分地利用历史信息,找到最值得被推荐的菜。如著名的置信区间上界(Upper Confidence Bound, UCB)算法。基于贝叶斯思想的Thompson Sampling

 

 

后记

从开始接触《百面机器学习》,当把全部章节看完,觉得这本书写的特别深入浅出,把很多机器学习的基础知识给串联起来了,虽然用电子书阅读完毕,仍然忍不住入手纸质版书本,好书就需要多看!

百面系列链接:

百面机器学习(2)——模型评估

百面机器学习(3)——经典算法

百面机器学习(4)——降维

百面机器学习(5)——非监督学习

百面机器学习(6)——概率图模型

百面机器学习(7)——优化算法

百面机器学习(8)——采样

百面机器学习(9)——前向神经网络

百面机器学习(10)——循环神经网络

百面机器学习(11)——强化学习

百面机器学习(12)——集成学习

百面机器学习(13)——生成式对抗网络

 

相关文章: