对比传统的强化学习算法,分层强化学习(Hierarchical Reinforcement Learning)具有很多优势。目前,对其的研究主要集中在三种思路,分别是基于选项的学习(Option)、基于分层局部策略的学习(HAM)与基于子任务的学习(MAXQ)。
HRL更像是一种结构性的框架,而不是具体的算法形式。
分层的优点
- 时间上的抽象(Temporal abstraction):由于HRL对时间的抽象,其可以考虑持续一段时间的策略,而不只是一个时间点的策略
- 迁移/重用性(Transfer/Reusability):HRL的本质是分解问题。在把大问题分解为小问题后,小问题学习到的解决方法可以迁移到别的问题之上。
- 有效性/有意义(powerful/meaningful)-状态上的抽象(state abstraction):HRL存在类似于attention的机制,即当前的状态中与所解决问题无关的状态不会被关注到。
不同的最优
由于问题被分层解决,存在几种不同的最优:
- 分层最优(Hierarchically optimal):遵循分层结构,但是每一个子部件不一定是局部最优
- 回溯最优(recursively optimal):遵循分层结构,每一个子部件一定是局部最优
- 平面最优(flat optimality):不受层级限制,只用最基本的动作去找到一个最优的策略,一般可以给出最多的选择
SMDP
SMDP也就是半马尔可夫决策过程,它与MDP有一定的区别:
- 动作action可持续,持续时间(holding time/ transition time)为
,此期间状态不改变
- 数学上也是用
表示,但是在这段持续时间内存在不同的理解
SMDP QL的基本形式
基于SMDP,QL的基本形式也有所变化:
思路一:基于选项的学习(Option)
最简单,最受欢迎的分层结构,变体也最多。
思想
- 完成一项任务或解决一个问题一般需要多个层级的步骤参与(例:做饭、去车站)。一个步骤对应一个option。
- 两个基本问题:
- 理论上层级可以无限多,如何划分不同的层级?层级太多不利于收敛,层级太少不利于找到最好的步骤。
- 如何想出最初的option set(所有可能的option集合)?
option-对应inter-option policy
迭代中选择哪一个option,由inter-option policy决定,也就是由直到option结束的reward+到结束的带折扣因子的转移概率决定。
- 初始集/函数:由之前的情况决定
- 选项内的policy(intra-option policy):决定option内部的action
- 终止条件:由过去的条件决定
值函数带有依赖状态的折扣
action-对应intra-option policy
action的选择由即时的reward+到下一个状态的转移概率决定,也就是intra-option policy。
总而言之,option是action的特例,而且一个option的Reward是多个action积累而成。
时间差分法TD
SMDP QL(option)
值函数的更新方式:bootstrapping(利用后继状态的值函数估计当前值函数)
Intra-option QL
,如果option没有在S2结束
,如果option在S2结束
可以利用在S2结束的概率两式统一:
Option Discovery
之前提到过应用option时有一个问题需要解决,那就是如何找到所有的option集合。有几种方式可以选择,但基本上都是把握瓶颈状态的处理,因为瓶颈状态可以提供结束的概率$\\\\beta$
good option
好的option需要有以下特征:
- 重用性(reusability)
- 减少探索(cut down on exploration)
- 促进迁移(transfering)
然而,单纯根据这些标准来选择,都难以实际地进行评估。
所以,采用现有的一些方案来寻找好的option:
surrogate measures: bottlenecks/ access states
- graph partitioning ideas (Shimon):如果有一个MDP转移矩阵,可以将其分割为多个子图,里面的最弱的连接就是瓶颈;如果没有图,可以随机游走,然后根据数据产生图
- diverse density:启发式的,successful trajectories的密度会比不成功的大,option所在的概率也会更大。自然地用到了experience replay
- betweeness:跟graph partitioning ideas很像
- small world option:不需要任何的先验知识,但是需要一些数据,然后将其分为small world graph,可以大幅减少学习时间,因为其遵守一定的概率分布
思路二:基于分层局部策略的学习(HAM)
比option更为复杂,有人认为是最优雅的分层理论,较为依赖于先验知识与编程技巧
抽象机的状态
- action:执行原始的动作
- call:调用另一个抽象机
- choice:无差别地选择另一个状态
- stop:停止现在的抽象机
例子:在充满障碍的房间里探索
更新方式
在三个矩阵上更新:
- Hi:机器的调用状态(call stack)
- Si:核心的状态-对应原始动作(core MDP)
- Mi:机器的状态(machine state)
当遵循policy在不同机器、不同机器状态中转移的时候只更新Hi和Mi,调用了原始的动作的时候才会更新Si
与option的对应
option与对应的policy是绑定在一起的,也就是说option一旦开始,policy就被冻结了,内部是没有choice状态的。从这个角度来看HAM更加灵活,因为它的每个抽象机都是可以有choice状态的。
思路三:基于子任务的学习(MAXQ)
更加符合直觉的表达方式。像HAMs一样,MAXQ是编程语言中的概念如何与随机最优控制框架成功集成的一个很好的例子。
例子:出租车
任务M被分为多个子任务M0,M1,~,Mi。对于每个子任务Mi:
- Si:taxi的位置、乘客的位置、乘客的目的地
- Ai:所有子任务与原始动作的集合的子集(保持dag的结构)
- Ri:假回报-只与子任务有关
如果不存在假回报,则此种方法称为MAXQ0 Learning
SMDP
- 状态空间
- 动作空间
- 转移矩阵-在子任务Mi中,需要
步从
转移到
:
- 回报
也是积累而来:
值函数的分解
,如果a是复合(composite)的
,如果a是原始(primitive)的
与其它两个的不同
option和ham都是在一个SMDP里学习的,但MAXQ是在SMDP的集合(每个子任务对应一个SMDP)中学习的
主要参考资料
https://people.cs.umass.edu/~mahadeva/papers/hrl.pdf
这篇survey很经典,值得一看。
https://www.youtube.com/watch?v=K5MlmO0UJtI
这个老师讲得特别清楚,推荐一看。