RL笔记:动态规划(2): 策略迭代
创始人
2024-05-27 01:07:45
0

目录

0. 前言

(4.3) 策略迭代

Example 4.2: Jack’s Car Rental

Exercise 4.4

Exercise 4.5

Exercise 4.6

Exercise 4.7


0. 前言

        Sutton-book第4章(动态规划)学习笔记。本文是关于其中4.2节(策略迭代)。

(4.3) 策略迭代

        基于上节(RL笔记:动态规划(1): 策略估计和策略提升)的策略提升,一旦从策略\pi出发找到了一个更好的策略\pi';很显然,我们可以进一步基于\pi'找到下一个更好的(\pi')'。重复这一过程,就可以得到不断改进的策略,直到收敛到最优策略。这一过程称为策略迭代(Policy Iteration),如下图所示:

 

        其中,“E”表示Evaluation,即上上节所述的策略评估;“I”表示Improvement,即上节所述的策略提升。由于每一步都必然可以得到一个更好的策略(除非已经到达最优策略,如上节所述),因此这一迭代过程最终必然收敛于最优策略(类似于数学分析中的单调有界序列必定收敛的命题)。

        每一轮(each iteration)的策略评估是以是上一轮结束后得到的策略(policy)的值函数(value function)为初始值的。策略迭代的算法流程如下所示:

 

图1 基于状态值函数的策略迭代 

 

Some points and tips:

  1. 这个两步策略是不是有点类似于机器学习中的EM(Expectation-Maximization算法)的套路?
  2. 第2步的策略评估中并没有像4.1节中的策略评估那样对动作进行求和:\sum\limits_a \pi(a|s)。​这是因为在这个迭代算法中第3步的策略提升采用的是贪婪算法,总是采取动作值函数最大的动作,所得到的策略是确定性策略(deterministic policy),每个状态与动作是一一对应的,所以由于​ \sum\limits_a \pi(a|s) = \pi(a_{max}|s)=1,可以进行简化。
  3. 第2步的策略评估中同时计算前后两轮迭代的各对应状态的值函数的变化量并得到变化量绝对值的最大值Δ,这个是用于收敛判断以及early-stop。如果​满足条件 \Delta < \theta ,即判定近似收敛并退出迭代过程

        策略评估时根据当前策略\pi选择动作,策略提升时根据基于策略\pi计算所得的值函数并基于\max\limits_a Q(s,a)准则选择动作。除非当前策略\pi已经是最优策略,否则必然得到比当前策略\pi更好的策略。所以这一迭代过程最终必定“近似地”收敛于最优策略(近似是由于采用了early-stop控制)。

Example 4.2: Jack’s Car Rental

Jack负责管理一个全国性租车公司的两个站点。有顾客来租车时,如果有车可租则将车租出并收入10美元(是指每天10美元吗?还是说每借一次就是10美元不论天数?);如果无车可租则失去一笔生意。车归还后的次日车子可以重新出租。为了尽量确保两个站点都有车可租,Jack会在晚上在两个站点之间移动车辆,每辆车移动耗费2美元。每个站点每天来租车和来还车的人数均服从泊松分布:Prob(n) = \frac{\lambda^n}{n!} e^{-\lambda}, \lambda为数学期望。假定站点1的租车人数和还车人数的数学期望分别为3和4,站点2的租车人数和还车人数的数学期望分别为3和2。为了简化问题,进一步假定每个站点车辆不能超过20辆,超过这个数量的车被归还给租车公司。每个晚上可以在两个租车点移动的车最多5辆。考虑折扣系数\gamma = 0.9,并且作为一个continuing finite MDP问题处理:以每天作为一个time step; 状态代表每天结束时留在各站点的存车数。

状态用state = {num1: 站点1保有车数;num2: 站点2保有车数},这个保有车数是指每天最终(在两个站点挪动车之后)各站点保有车数。每天车的数量变化取决于以下因素:

  1. 当天借出车数:遵循泊松分布,以及当前站点存车状况
  2. 当天还入车数:遵循泊松分布,以及当前站点存车状况
  3. 当晚挪出或者挪入车数:是取决于agent(本问题中就是指Jack)基于policy所采取的行动

代码实现例可以参考:

https://github.com/ShangtongZhang/reinforcement-learning-an-introduction/chapter04/car_rental.py

其中expected_returns()函数实现的就是

这个例子中有一个明显的不太合理的地方,就是一辆车借出后的租金固定为10美元,与租用天数无关。这样可能是为了方便问题简化处理吧。如果修改为一辆车借出去每天租金10美元的话,情况会怎么样呢?

 

Exercise 4.4

前面所示的策略迭代算法有一个细微的bug。当存在两个或多个同样好的策略(所谓同样好是指啥?),它会导致在这些同样好的策略之间来回切换因而永远停不下来。请修改以上伪代码使得能够确保在有限次迭代后收敛和退出。

【ans】

在第3步中有一个收敛判决:if old_action 不等于 \pi(s)...

如果在当前策略\pi中,在状态s时有多个动作同样好(equally good),此时\pi(s)不是一个值,而是包含多个元素的集合,以上判决处理将会导致问题。有两种解决方案:

其一:将以上收敛判决改为if \ old\_action \notin \pi(s):...

其二:追加tie-breaking rule between equally good actions,使得在存在多个同样好的动作时,策略\pi(s)总能产生唯一确定性的动作

 

 

Exercise 4.5

试给出与以上面向状态值函数的策略迭代算法类似的面向动作值函数的策略迭代算法。

 

图2 基于动作值函数的策略迭代

以上解答摘自LyWangPX/Reinforcement-Learning-2nd-Edition-by-Sutton-Exercise-Solutions(github.com)

         变更点仅仅是第2步的策略评估中将基于“状态值函数的贝尔曼方程”的迭代更新改为基于“动作值函数的贝尔曼方程”的迭代更新。进一步由于第3步中是基于贪婪方法进行策略提升,所得的是确定性的策略,因此Q(s,a)的更新方程可以进一步简化(理由同上面关于基于状态值函数的策略迭代的解说)为(去掉对a’的求和):

        Q(s,a) \leftarrow \sum\limits_{s',r}p(s',r|s,a)[r + \gamma Q(s',\pi(s'))]

        第3步中\pi(s)的更新看似写法不同,其实没有本质变化。因为(之所以成立仍然是因为贪婪决策):

        Q(s,a) = \sum\limits_{s',r}p(s',r|s,a)[r + \gamma Q(s',\pi(s'))] = \sum\limits_{s',r}p(s',r|s,a)[r + \gamma V(s')]

,前面的基于状态值函数的策略迭代流程中其实本质上也是基于动作值函数的贪婪决策。

 

Exercise 4.6

假定只能考虑软策略(soft policy),即在每个状态下选择各个动作的概率不得低于\frac{\epsilon}{\mathcal{A}(s)}. 试修改上述的策略迭代算法以对应这种要求。

【Ans】

相比图1所示基于硬策略(hard policy, i.e, greedy policy)原始的策略迭代流程,需要做以下两点修改:

  1. 在策略评估(policy evaluation)中,由于软策略中每个状态下对应的动作不是唯一的,对状态值函数的估计需要对动作进行求和,即恢复为标准的状态值贝尔曼方程
  2. 在策略提升(policy improvement)中,要将更新后的策略修改为软策略,即:取导致动作价值最大的动作作为软策略的greedy-action,其余则作为epsilon-action。然后,同样是基于greedy-action进行收敛判决。

Exercise 4.7

请编写策略迭代程序解决Jack’s car rental problem,问题条件有一些变化:

  1. Jack的在站点1的一个员工住在站点2附近,每晚她可以免费驾驶移动一辆车到站点2。其余的车的移动仍然是每辆2美元
  2. 每个站点的停车位置有限,晚上存车超过10辆车(在两个站点间车辆移动后)需要额外支付4美元(不论超过多少辆)停车费

在真实问题中这类非线性条件以及任意转移函数(arbitrary dynamics)很常见,通常使用动态规划以外的优化方法很难求解。建议首先复现Example4.2中的结果。

......coming......

强化学习笔记:强化学习笔记总目录

        

相关内容

热门资讯

杨字的含义 杨字的含义 扬:张扬,自得的意思【解释】:趾高:走路时脚抬得很高;气扬:意气扬扬。走路时脚抬得很...
有梦子的四字成语? 有梦子的四字成语?白日做梦、魂牵梦萦、如梦初醒、梦寐以求、酣然入梦、半梦半醒、重温旧梦、夜长梦多、同...
恶人自有恶人磨 恶人自有恶人磨恶人自有恶人磨 (è rén zì yǒu è rén mó)解释:凶恶成性的人自然...
相对论中,火车断桥问题的答案是... 相对论中,火车断桥问题的答案是什么?这个假设唯一只有一个问题。败伏什么叫做“同时”?“只有两个发射器...
虎什么熊的成语 虎什么熊的成语这不是闹经急转弯虎背熊腰hǔ bèi xióng yāo成语解释如虎般宽厚的背;似熊样...
《亡念之扎姆德》男主角最后跟谁... 《亡念之扎姆德》男主角最后跟谁在一起?男主石化了九年,女主每天都来和他说话,然后九年后的第二天男主解...
火影忍者动画和漫画貌似不一样,... 火影忍者动画和漫画貌似不一样,海贼王动画和漫画一样吗?总是有些偏差的吧。。个人比较忠实原作。海贼王没...
让人非我弱,得志莫离群 让人非我弱,得志莫离群像投鼠忌器一样的意思吧,我躲,不是我怕你,而是我心有顾忌.不是因为势力差距而起...
《北宋小厨师》这本书更到现在男... 《北宋小厨师》这本书更到现在男猪脚泡到李师师和李清照了吗没有0.0....还没有啊因为还没结局
路边油炸的小摊上的酱是怎么做的... 路边油炸的小摊上的酱是怎么做的!要是家用,那可以选择用芝麻浆来做主配料.芝麻浆和水要1:1(水最好是...
《超禁忌游戏-五十分之一》应该... 《超禁忌游戏-五十分之一》应该完结了吧你要的是完整版的,但负责任地告诉你,现在不可能有,有也是骗你的...
公共经济学 答案 公共经济学 答案这个真不知道~!~谢谢~!~1.D2.D3.C4.B5.C6.D7.C8.B9.B1...
证券投资学 跟投资学有什么区别 证券投资学 跟投资学有什么区别投资学包括证券投资学。投资学包括各方面的投资学,比如黄金投资,期货投资...
忘记名字了,就是男主得到系统打... 忘记名字了,就是男主得到系统打英雄联盟,在联盟里边开挂可以变身眼可以变成野怪可以身穿求这部小说名字你...
个性签名为了你我愿意变成魔于全... 个性签名为了你我愿意变成魔于全世界为敌不爱那么多,只爱一点点,别人眉来又眼去,我只偷看你一眼。不要走...
野钓实用技巧 黑坑钓鱼技巧? 野钓实用技巧 黑坑钓鱼技巧?钓什么鱼要了解鱼的习性,了解对象鱼生活在哪个水层,喜欢吃什么食物,然后根...
江哲是那本书的? 江哲是那本书的?字随云的是《随波逐流之一代军师》字守义的是《三国之宅行天下》呵呵……这两本小说的江哲...
满满的生活经历是啥意思? 满满的生活经历是啥意思?满满的生活经历,说明的是这个人的生活阅历很深。
哪部国产青春剧比较贴近现实? 哪部国产青春剧比较贴近现实?《最好的我们》比较贴近现实,讲述的就是校园爱情故事,说的就是真实的高中生...
天涯海角与君共度 出自哪首歌呢... 天涯海角与君共度 出自哪首歌呢。云中歌主题曲丝罗李宇春的丝罗你好。楼主。李宇春《丝罗》伊本丝萝愿托乔...