大规模离散动作空间内的深度强化学习
摘要
处理这样的任务需要:1. 在动作集合上的泛化能力; 2. 次线性查找复杂度。
本文提出方法,利用先验知识将动作嵌入连续空间使其可以泛化;采用近似最近邻算法达到查找复杂度。
背景知识介绍
强化学习方法可分为两类:value-based policy, action-based policy.
- value-based policy, 基于值函数直接做出决策,如Q-learning,DQN等。优点是具有泛化性,可以用平滑函数提取action的特征,使得相似action具有相近的动作值,缺点是action的选取需要遍历整个动作空间。
- action-based policy, 策略由参数化的actor给出动作概率分布,如策略梯度,actor-critic等。避免了计算复杂度,但是无法对action进行泛化。
此外,以前对于大规模离散动作空间的处理,要么是将动作空间分解为 大小的二值子空间(利用二元编码),然后在各个子空间分别独立进行推理,但是有两个问题:一是要为每个动作设计二值编码,需要人为的技巧;二是无法对动作进行泛化。
还有与本文相似的工作,每次只取唯一最近邻,但是仅限于小动作空间。
模型
算法
本文提出的算法兼具以上两种方法的优点,避免了它们的缺点。
动作生成
先用actor 生成proto-action, 再使用近似最近邻算法,在时间复杂度内找到k最近邻
动作精炼
动作的选取中存在问题:
- 可能最近的真实动作质量较差,其Q-value很低;
- 有一部分action聚集在一起,彼此离得都很近。
这主要是由于真实动作在嵌入空间中的分布以及嵌入空间本身的形状决定的。
为避免以上问题,使用Q-value对上一步得到的k最近邻进行精炼,选出Q-value最大的action作为最后的输出action。
训练
使用策略梯度进行训练,其中k最近邻可以看作是环境对action的一个确定性扰动,动作精炼可以看作是环境对action的一个随机扰动。
使用DDPG进行训练:
误差分析
实验
包含几个不同实验:
离散化连续控制实验
动作空间有d个维度,都是连续的,每个维度采样i个等距离的点,构成一个的动作空间
多步规划问题
有i个动作,但每次需要规划n步才行动,则动作空间为
推荐系统
真实世界大规模离散动作空间