强化学习之混合动作空间

强化学习之混合动作空间

基本介绍

在强化学习的动作空间设定中有连续动作空间,离散动作空间和混合动作空间。在大多数的论文中研究的都是连续动作空间和离散动作空间,而混合动作空间研究的比较少。在游戏ai,自动驾驶等一些领域中有时动作空间可以是混合动作空间,因此我阅读了一些相关的文献,资料和代码,计划整理一下混合动作空间中的一些基础知识(主要介绍parameterized action space)。

强化学习之混合动作空间

考虑一个简单的场景,假设我们要写一个王者荣耀的游戏ai,我们需要控制英雄的走位,技能释放的方向,这些动作都是属于连续动作空间的。同时我们还需要选择不同的技能,这个动作是属于离散动作空间的,因此我们有了一个动作空间为混合动作空间的问题。解决混合动作空间的一个很自然的思路是将连续动作空间离散化,然后在使用离散动作空间的算法进行求解,但是这样会造成动作空间的维度过大,导致智能体难以学习到好的策略。因此便有人提出来了专门针对混合动作空间的算法,其中比较常用的有PDQN和MPDQN。

; PDQN

PDQN全称是 Parametrized Deep Q-Network,PDQN将DQN与DDPG结合,分别用于处理离散动作空间和连续动作空间。整个网络的大致结构如下:

强化学习之混合动作空间

首先我们将state传入右边的网络x ( θ ) x(\theta)x (θ),它可以看作是一个DDPG网络,用于确定连续动作空间的参数,右边网络的输出是连续参数的值。得到了右边网络的输出后将state和parameters进行拼接后传入Q ( w ) Q(w)Q (w ),它可以看作是一个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]。


        negative_slope = 0.01

        Q = []

        batch_size = state.shape[0]

        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里面,然后再根据最大值选择动作。


        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

Original: https://blog.csdn.net/weixin_44077955/article/details/125166670
Author: Serendipity-Wu
Title: 强化学习之混合动作空间

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/649417/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 深度学习之线性回归模型的实现(原理+pytorch代码实现)

    目录 引言 1、原理 2、实战 2.1、生成样本数据集 2.2、加载数据集 2.3、创建模型 2.4、定义损失函数 2.5、定义优化算法 2.6、训练模型 引言 线性模型我觉得可以…

    人工智能 2023年7月23日
    063
  • SwinIR实战:如何使用SwinIR和预训练模型实现图片的超分

    文章目录 摘要 测试 完整代码: 摘要 论文地址:https://arxiv.org/pdf/2108.10257.pdf 预训练模型下载:https://github.com/J…

    人工智能 2023年5月28日
    075
  • 目标检测 labelimg进行标注文档

    系列文章目录 第二章 labellimg 标注素材 文章目录 系列文章目录 前言 一、labellimg 是什么? 二、labellimg 安装步骤 三、使用labellimg *…

    人工智能 2023年7月10日
    065
  • UI自动化测试介绍

    1.框架搭建 优化前的框架: 优化后的框架: UI自动化框架跟接口自动化框架相似,我们拿到一个项目之后,首先把需要的框架先搭建好,然后再一点一点去进行优化,不要急着一步到位,先把基…

    人工智能 2023年7月5日
    074
  • 《联邦学习实战》:从零开始通过联邦学习实现图像分类

    《联邦学习实战》:从零开始通过联邦学习实现图像分类 最近需要学习联邦学习,参考《联邦学习实战》入门,本文为《联邦学习实战》 第三章的笔记。 可算跑起来了,在重点分析代码之前,因为太…

    人工智能 2023年7月20日
    058
  • 【成功解决并安装tensorflow】记录遇到过的坑

    我来更新啦!我整个上午都在做,好几个小时了,呼-呼。 [En] I’ve been doing it all morning, for hours, whoo-hoo….

    人工智能 2023年5月24日
    098
  • 写在Go语言招生之际

    写在Go语言招生之际,谈谈这两年所见所想,希望能对你有启发。 前两天看视频看到一个评论, 先生愿教我不愿学,时也!命也 ! 作为一名讲师深有感触。 1那个时候有几十万的Java观众…

    人工智能 2023年7月28日
    074
  • VDL-第二节CNN(上)

    目录 Ⅰ基本概念 一、卷积神经网络 ① 人类视觉系统层次结构 ② 局部感受野 ③从神经网络到卷积神经网络 ④ 局部连接的实现方式 ⑤ 通过卷积操作实现 ⑥ 卷积的作用 ⑦ 池化操作…

    人工智能 2023年7月14日
    077
  • 选择 DataFrame 列的方法大全

    因 457079928 python草堂群,网友 @星河·璀动 问到pandas选择数据列的问题,故把自己的学习总结的笔记整理出来。 完整的 ipynb文件,和文中示例数据请移步p…

    人工智能 2023年6月18日
    0102
  • 匿名管道、命名管道–Linux

    文章目录 🚩管道的理解 🚩匿名管道 * 🍁pipe函数创建匿名管道 🍁多个匿名管道的控制 🚩命名管道(FIFO) * 🍁mkfifo函数创建命名管道 🚩总结 🚩管道的理解 我们在生…

    人工智能 2023年6月26日
    0179
  • YOLOX原始论文精读

    由于最近需要对YOLOX的理论部分进行深入的理解,因此我需要查看YOLOX的相关论文,但YOLOX是最近新出的目标检测算法,但我发现我无法查看YOLOX相关的见刊论文,因此我只能好…

    人工智能 2023年6月25日
    0106
  • Pandas处理excel数据笔记(数据透视|多条件筛选)

    遇到复杂条件下海量的数据透视任务,excel难以驾驭。如对不同部门在不同年份吸收了什么学历的员工,pandas的筛选发挥了神奇的作用。 一、导包 pip install panda…

    人工智能 2023年7月7日
    049
  • OpenPrompt工具包使用

    对工具包的介绍 有个疑问比如说positive这个类有好几个单词,那训练的时候到底看哪个? 现有模板的一些总结 目前的研究的组合方式 Original: https://www.c…

    人工智能 2023年6月4日
    0113
  • oppo问答系统技术路线

    本笔记主要解析DataFunTalk公众号上发布的文章《李向林:OPPO自研大规模知识图谱及其在小布助手中的应用》中问答系统搭建方面的内容 文章目录 1、领域分类 2、结构化问答 …

    人工智能 2023年6月1日
    0100
  • 语义分割系列6-Unet++(pytorch实现)

    目录 Unet++网络 Dense connection deep supervision 模型复现 Unet++ 数据集准备 模型训练 训练结果 Unet++:《UNet++: …

    人工智能 2023年7月29日
    0101
  • 用MATLAB理解正弦波序列的DFT

    用MATLAB理解正弦波序列的DFT 前言 欧拉公式 正余弦函数的DFT * 1. 包含一个正余弦周期、相位为0的序列的DFT 2. 包含一个正余弦周期、相位不为0的序列的DFT …

    人工智能 2023年7月14日
    059
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球