【论文阅读】Hierarchical Deep Reinforcement Learning: Integrating Temporal Abstraction and Intrinsic Motiv
【2016NIPS】
任务:层次强化学习
本文提出了层次强化学习,顶层使用价值函数让策略模型学习到内在目标,底层则决定具体的动作,从而来满足顶层提出的给定目标
内在目标可以提供更多的探索,从而缓解稀疏反馈的问题,目标定义在entity和相互之间关系的空间中,可以限制探索空间,提高学习效率
模型
整体结构
由两阶段的层次化结构组成
顶层meta-controller输入为状态,输出为目标
下层controller的输入为和,输出为动作
下个时间步不变,直到controller控制下的agent达到该,或者游戏结束,则再通过meta-controller获取下一个目标
激励
controller通过内在激励作为目标函数:
用于评估目标是否达成
meta-controller通过外在激励作为目标函数:
即从外部环境获得的激励
算法
模型训练时controller和meta-controller均使用DQN算法
controller:
其中为状态时meta-controller输出的目标, 为动作策略
meta-controller:
对比Q1和Q2,meta-controller的Q2中把controller在完成目标时所使用的N步中获得的外在环境激励作为一个整体,作为一个大时间步
即Q2产生的转移(,,,)比Q1产生的转移(, , , , )时间尺度上慢
整体算法如下:
实验
离散随机决策过程
游戏设置:
戏每次从开始,可以选择往左或往右,往左必定成功,但是往右只有50%的成功率,否则会往左
游戏终点为,如果先到再到,则激励为1,否则为0.01
将所有的状态作为目标
将本文方法与baseline(Q-learning)进行对比,可以看到Q-learning方法仅能学习到直接到达获得0.01的激励,但是层次化方法可以学习到先到再到
Atari(Montezuma’s Revenge)
游戏设置:
人物(红色)捡到钥匙可以获得100奖励,然后可以用钥匙打开左上角或右上角的门,再获得300奖励,但是捡到钥匙前需要先完成下*,再上*等一系列复杂动作
内部critic定义为三元组<entity_1, relation, entity2>,在本游戏中,entity_1一直为人物,entity_2可以是其他任意物体,relation可以定义为“到达”
meta-controller的输入为连续的4帧游戏画面(84*84),同时使用物体检测器来获得图像中的物体,输出其中的一个物体作为目标
controller的输入为连续的4帧游戏画面,再加上meta-controller输出目标物体的mask,输出下一步采取的动作
两者网络结构基本为4层卷积结构
训练时采用两阶段的训练方法,第一阶段meta-controller随机输出,而先训练controller,等到controller学会根据目标完成子任务后,两者再一起训练
训练过程中的游戏激励,可以看到DQN网络基本无法获得激励,但是通过层次化方法进行子任务分解后,可以得到不错的结果
训练过程中将钥匙作为目标的完成成功率
训练前期各个物体作为目标的概率几乎一样,但是训练后期发现将钥匙作为目标的概率明显变大