强化学习之混合动作空间
基本介绍
在强化学习的动作空间设定中有连续动作空间,离散动作空间和混合动作空间。在大多数的论文中研究的都是连续动作空间和离散动作空间,而混合动作空间研究的比较少。在游戏ai,自动驾驶等一些领域中有时动作空间可以是混合动作空间,因此我阅读了一些相关的文献,资料和代码,计划整理一下混合动作空间中的一些基础知识(主要介绍parameterized action space)。
考虑一个简单的场景,假设我们要写一个王者荣耀的游戏ai,我们需要控制英雄的走位,技能释放的方向,这些动作都是属于连续动作空间的。同时我们还需要选择不同的技能,这个动作是属于离散动作空间的,因此我们有了一个动作空间为混合动作空间的问题。解决混合动作空间的一个很自然的思路是将连续动作空间离散化,然后在使用离散动作空间的算法进行求解,但是这样会造成动作空间的维度过大,导致智能体难以学习到好的策略。因此便有人提出来了专门针对混合动作空间的算法,其中比较常用的有PDQN和MPDQN。
PDQN
PDQN全称是Parametrized Deep Q-Network
,PDQN将DQN与DDPG结合,分别用于处理离散动作空间和连续动作空间。整个网络的大致结构如下:
首先我们将state传入右边的网络,它可以看作是一个DDPG网络,用于确定连续动作空间的参数,右边网络的输出是连续参数的值。得到了右边网络的输出后将state和parameters进行拼接后传入,它可以看作是一个DQN网络,我们只需要像使用DQN的方法一样就能够得出Q值最大的动作。整个方法的思路和优化中的alternating optimization有些相似,在alternating optimization中需要优化变量之间是解耦的,对于混合动作空间的问题而言不同变量之间是有关联的。
MPDQN
在PDQN中是将所有的parameters都传入到了第二个网络中,在理想情况下离散动作的Q值只和它对应的parameters有关,别的不会对它Q值的估计产生影响,但实际上MPDQN作者做了一些实验,结果表明其它的parameters也会对其产生影响。
因此作者在MPDQN的文章中提出了一种新的算法:Multi-Pass Q-Networks
。目的是减小别的parameters对Q值估计的影响。整个网络的结构如下所示:
右边的网络还和之前一样,输出的是全部的parameters。但是在左边的网络这边有些不同。首先我们需要根据parameters的维度生成一个矩阵,矩阵的维度是[num_parameters, state_size + parameter_size]。
# 先全部设为零,然后在右侧方矩阵的对角线上填充连续动作的值
# implement forward
negative_slope = 0.01
Q = []
# duplicate inputs so we can process all actions in a single pass
batch_size = state.shape[0]
# with torch.no_grad():
x = torch.cat((state, torch.zeros_like(action_parameters)), dim=1)
x = x.repeat(self.action_size, 1)
for a in range(self.action_size):
x[a*batch_size:(a+1)*batch_size, self.state_size + self.offsets[a]: self.state_size + self.offsets[a+1]] \
= action_parameters[:, self.offsets[a]:self.offsets[a+1]]
首先将右边的方阵的值设为零,然后在右侧方矩阵的对角线上填充连续动作的值。接着将整个矩阵作为输入传给神经网络。拿到神经网络的输出后先将矩阵的对角线元素取出放到一个list里面,然后再根据最大值选择动作。
# extract Q-values for each action
for a in range(self.action_size):
Qa = Qall[a*batch_size:(a+1)*batch_size, a]
if len(Qa.shape) == 1:
Qa = Qa.unsqueeze(1)
Q.append(Qa)
Q = torch.cat(Q, dim=1)
return Q
参考资料
DEEP REINFORCEMENT LEARNING IN PARAMETERIZED ACTION SPACE
Parametrized Deep Q-Networks Learning: Reinforcement Learning with Discrete-Continuous Hybrid Action Space
Multi-Pass Q-Networks for Deep Reinforcement Learning with Parameterised Action Spaces
Hybrid Actor-Critic Reinforcement Learning in Parameterized Action Space
文章出处登录后可见!