强化学习 最前沿之graph policy gradients

2023-11-12

强化学习-Zee最前沿系列

深度强化学习作为当前发展最快的方向,可以说是百家争鸣的时代。针对特定问题,针对特定环境的文章也层出不穷。对于这么多的文章和方向,如果能撇一隅,往往也能够带来较多的启发。
本系列文章,主要是针对当前较新的深度强化学习算法和Trick,浅析其思路和方法,可以帮助你找出新的思路。希望对大家有多帮助。
此系列传送门
另外,我会将所有的文章及所做的一些简单项目,放在我的个人网页上。
水平有限,可能有理解不到位的地方,希望大家主动沟通交流。
邮箱:zachary2wave@163.com

强化学习_最前沿之grpah_policy_gradients

图神经网络与强化学习的结合已经成最近比较热门的方向,成为解决多agent的一个方向,这篇文章讲多个agent 建立成多个网络的节点,从而训练学习,完成任务。

这片博文主要关注的是2019年新的论文:Graph Policy Gradients for Large Scale Robot Control

论文原文:https://arxiv.org/abs/1907.03822

Motivation

首先文章中考虑的是多个机器人的控制问题,为了让所有的机器人学会有效的控制策略,机器人要学会与周围的一个子集的其他机器人进行交互,从而能更好的做出决策。通常来说CNN只是一种出路,CNN利用线性局部滤波的方法提取局部特征,但是CNN无法处理不规则的数据架构。所以图卷积神经网络GCN被提出了当作运用在多个agent的交互中。

##问题和模型

文章中首先所考虑的问题是多个无人机的飞行控制问题。多个无人机需要进行协同,然后飞行到固定的位置的问题。在一开始的时候无人机的位置是随机的,最后要飞行到一个固定的位置去。

在这里插入图片描述

首先讲无人机建模成为一个图结构,其中 G = ( V , E ) G=(V,E) G=(V,E),这里就定义V是无人机,而边是当两个无人机的距离小于一个值 e e e的时候,就在这两个无人机之间建立一条边。之后 无人机就要利用GCN去对每一个节点生成一个独立的策略 π \pi π,去生成该无人机的动作。

在这个问题中,文章假设所有无人机都是一样的,也就是说所有agent 享受有相同的动作空间和状态空间,除此之外,还具有相同的转移概率。

模型中,动作是位置的变化量,状态是就是无人机位置,在这里有两个约束,其中一个是不能碰撞:
E c ( p i t , p j t ) > δ , ∀ i ≠ j ∈ { 1 , … N } , ∀ t E_{c}\left(\mathbf{p}_{i t}, \mathbf{p}_{j t}\right)>\delta, \forall i \neq j \in\{1, \ldots N\}, \forall t Ec(pit,pjt)>δ,i=j{1,N},t
其中 p i t \mathbf{p}_{i t} pit是无人机的位置, p j t \mathbf{p}_{j t} pjt是无人机的目标位置,$ E_{c}$是求欧式距离。还有一个是任务完成约束,即:
ϕ i j ( t ) = { 1 ,  if  ∀ i = j , E c ( p i t , g j ) ≤ ϵ 0 ,  otherwise  \phi_{i j}(t)=\left\{\begin{array}{ll}{1,} & {\text { if } \forall i=j, E_{c}\left(\mathbf{p}_{i t}, \mathbf{g}_{j}\right) \leq \epsilon} \\ {0,} & {\text { otherwise }}\end{array}\right. ϕij(t)={1,0, if i=j,Ec(pit,gj)ϵ otherwise 
其中, g i \mathbf{g}_{i} gi是无人机的目标位置。

单个无人机的奖励为:
r ( t ) = { − β ,  if any collisions,  − ∑ i N E c ( p i t , g i )  otherwise  r(t)=\left\{\begin{array}{ll}{-\beta,} & {\text { if any collisions, }} \\ {-\sum_{i}^{N} E_{c}\left(\mathbf{p}_{i t}, \mathbf{g}_{i}\right)} & {\text { otherwise }}\end{array}\right. r(t)={β,iNEc(pit,gi) if any collisions,  otherwise 
整个系统的奖励是所有无人机的奖励之和, 即:
∑ n = 1 N max ⁡ θ E Π [ ∑ t T r t ] \sum_{n=1}^{N} \max _{\theta} \mathbb{E}_{\Pi}\left[\sum_{t}^{T} r_{t}\right] n=1NθmaxEΠ[tTrt]

图卷积神经网络及强化学习网络架构

有关图卷积神经网络的知识,请参阅其他卷积神经网络的论文,不是这个论文的重点。文章采用的卷积操作,是2017年TSP的一篇文章的卷积操作,即:
z = ∑ k = 0 K h k S k x = H ( S ) x \mathbf{z}=\sum_{k=0}^{K} h_{k} \mathbf{S}^{k} \mathbf{x}=\mathbf{H}(\mathbf{S}) \mathbf{x} z=k=0KhkSkx=H(S)x

其中 S \mathbf{S} S为图的laplacian矩阵。

作者采用的这种形式的卷积操作与传统的卷积神经网络具有比较大的不同,因为其将信号x转到频谱域,但是并没有转回来。第二是将多个邻域的数据进行了加和(暂时没有看TSP论文之后看看这个卷积定义的)

其网络的创建,实际上是将多层全连接网络每一层的操作转化为上式定义的图卷积操作,然后经过非线性变化,然后输出下一层的结果,即:

z l + 1 = σ ( H ( S ) z l ) \mathbf{z}^{l+1}=\sigma\left(\mathbf{H}(\mathbf{S}) \mathbf{z}^{l}\right) zl+1=σ(H(S)zl)

算法利用较为基础的policy gridient 算法,对网络参数进行更新。
∇ θ J = E τ ∼ ( π 1 , … , π N ) [ ( ∑ t = 1 T ∇ θ log ⁡ [ π 1 ( a 1 t ∣ x 1 t , G ) … π N ( a N t ∣ x N t , G ) ] ) ( ∑ t = 1 T r t ) ] \nabla_{\theta} J=\mathbb{E}_{\tau \sim\left(\pi_{1}, \ldots, \pi_{N}\right)}\left[\left(\sum_{t=1}^{T} \nabla_{\theta} \log \left[\pi_{1}\left(\mathbf{a}_{1 t} | \mathbf{x}_{1 t}, \mathcal{G}\right) \ldots \pi_{N}\left(\mathbf{a}_{N t} | \mathbf{x}_{N t}, \mathcal{G}\right)\right]\right)\left(\sum_{t=1}^{T} r_{t}\right)\right] θJ=Eτ(π1,,πN)[(t=1Tθlog[π1(a1tx1t,G)πN(aNtxNt,G)])(t=1Trt)]
由于这里相对于全连接网络,来看算法这里的卷积操作其实也是线性操作,因为其中的 S \mathbf{S} S矩阵是常数,所以误差反向传播的问题应该是不大的。

总结其算法可以得到以下的伪代码(嗯 实在是没看懂他计算y是干啥的)

注:15式就是上面的梯度公式。

在这里插入图片描述

总结:

感觉是一种尝试,但是文章中还是没有彻底解决两个问题,

  • 当图非常大的时候计算传播会非常慢;
  • 图在变化的时候,能不能训练好。

虽然论文中证明了,图中任意两个节点换位置,并不改变神经网络的效果。但是这个证明着实是比较简单,没有什么实际内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强化学习 最前沿之graph policy gradients 的相关文章

  • (16) 基于图卷积神经网络的轨道交通流量预测

    交通预见未来 16 基于图卷积神经网络的轨道交通流量预测 1 文章信息 Predicting Station Level Short Term Passenger Flow in a Citywide Metro Network Using
  • 1 强化学习(Reinforcement Learning, RL)初步介绍

    下一篇 2 从Multi arm Bandits问题分析 RL进阶 当前的机器学习算法可以分为3种 有监督的学习 Supervised Learning 无监督的学习 Unsupervised Learning 和强化学习 Reinforc
  • 强化学习领域有哪些最热门和最有前途的研究课题

    文章目录 写在前面 问题 回答 写在后面 写在前面 最近几年来 强化学习应该是人工智能领域相当热门的领域 但是 对于刚入门的学生来说 看了一些基础的课程资料 花了很长时间掌握了基本的算法 也做了一些自己领域的应用 但是对于这个领域的热门方向
  • 强化学习:玩转Atari-Pong游戏

    玩转Atari Pong游戏 该项目基于PaddlePaddle框架完成 详情见玩转Atari Pong游戏 Atari 雅达利 最初是一家游戏公司 旗下有超过200款游戏 不过已经破产 在强化学习中 Atari游戏是经典的实验环境之一 因
  • 强化学习入门笔记

    强化学习 相关概念 我们先回忆一下童年 来看看超级玛丽这款游戏 在这款游戏里面的 我们需要控制超级玛丽进行左右行走 跳 攻击等动作 来躲避或攻击小动物 吃金币以及各种类型的增益道具 最终 获得的金币数量的多少以及通关代表我们玩游戏玩的好不好
  • 对于强化学习的梳理

    强化学习 增强学习 概述 知识联系 强化学习是属于机器学习的一种 机器学习主要分监督学习 非监督学习 半监督学习 增强学习 强化学习的核心逻辑 那就是智能体 Agent 可以在环境 Environment 中根据奖励 Reward 的不同来
  • 【强化学习】

    强化学习DQN 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 强化学习DQN DQN算法的简介 一 环境的介绍 二 DQN算法 1 DQN算法的关键技术 2 DQN代码 2 1 导入库 2 2 定义类 2 3
  • 强化学习 reward 曲线的绘制

    每隔一段取一个均值 然后把均值曲线绘制出来 包含全部点的曲线淡化处理 摘自 Z Mou Y Zhang F Gao H Wang T Zhang and Z Han Deep Reinforcement Learning based Thr
  • Dyna-Q算法的理论基础及其代码实践【CliffWalking-v0】

    Dyna Q 理论基础 强化学习中 模型 通常指与智能体交互的环境模型 即对环境的状态转移概率和奖励函数进行建模 根据是否具有环境模型 强化学习算法分为两种 基于模型的强化学习 model based 无模型的强化学习根据智能体与环境交互采
  • 利用强化学习进行股票操作实战(四)

    本次实战代码仍是在之前基础上进行了一些修改 之前只在一支股票上进行训练 这次我将模型放在多支股票上训练 并在多支股票上进行了测试 对于多支股票的训练策略 没有参考过别人的训练方案 做这个的比较少 我按自己的理解去训练 每一轮训练 都将每支股
  • 强化学习应用简述---强化学习方向优秀科学家李玉喜博士创作

    强化学习 reinforcement learning 经过了几十年的研发 在一直稳定发展 最近取得了很多傲人的成果 后面会有越来越好的进展 强化学习广泛应用于科学 工程 艺术等领域 下面简单列举一些强化学习的成功案例 然后对强化学习做简介
  • 深度强化学习系列(6): DQN原理及实现

    利用神经网络近似值函数的方法表示为 V s w
  • DQN理论基础及其代码实现【Pytorch + CartPole-v0】

    DQN算法的理论基础 基于动态规划方法 基于蒙特卡罗方法和基于时间差分的方法都有一个基本的前提条件 状态空间和动作空间是离散的 而且状态空间和动作空间不能太大 这些强化学习方法的基本步骤是先评估值函数 再利用值函数改善当前的策略 这时的值函
  • DQN学习使用混合规则的柔性车间AGV实时调度(关注点:状态、奖励函数的设置)

    1 文章简介 本文原文可查阅文献 Deep reinforcement learning based AGVs real time scheduling with mixed rule for flexible shop floor in
  • 如何在PyCharm中对自己的pySC2 Agent代码进行Debug

    PySC2环境在Win10系统上的部署与安装 请参考 https blog csdn net qq 38962621 article details 112798659 spm 1001 2014 3001 5501 PySC2自定义Age
  • 【总结】为什么对累积奖励减去baseline项能起到减小方差的作用?

    深度强化学习实验室 论坛 http deeprlhub com 来源 https zhuanlan zhihu com p 98506549 作者 风清云 很多论文的工作都专注于减少policy gradient的方差 以得到更加优质且稳定
  • 强化学习中 on-policy与off-policy 的理解;如何区分on-policy 与 off-policy;RL更新策略、policy结构总结

    目录 基本概念 Q learning VS Sarsa DQN VS PPO 区分on policy 与 off policy 一些总结 基本概念 如果要学习的 agent 跟和环境互动的 agent 是同一个的话 这个叫做on polic
  • 【深度强化学习】(5) DDPG 模型解析,附Pytorch完整代码

    大家好 今天和各位分享一下深度确定性策略梯度算法 Deterministic Policy Gradient DDPG 并基于 OpenAI 的 gym 环境完成一个小游戏 完整代码在我的 GitHub 中获得 https github c
  • 强化学习实践三 :编写通用的格子世界环境类

    gym里内置了许多好玩经典的环境用于训练一个更加智能的个体 不过这些环境类绝大多数不能用来实践前五讲的视频内容 主要是由于这些环境类的观测空间的某个维度是连续变量而不是离散变量 这是前五讲内容还未涉及到的知识 为了配合解释David Sil
  • Pytorch中常用的损失函数

    Pytorch中常用的损失函数 回归 nn L1Loss nn MSELoss 分类 nn CrossEntropyLoss 回归 nn L1Loss 平均绝对误差 也称L1范数损失 计算预测值与真实值之间的误差绝对值 L 1 L o s

随机推荐

  • 嵌入式软件国际化(多语言) 点阵字库选择分析

    概述 嵌入式软件国际化 多语言 点阵字库选择分析 多字节字符集与unicode 多字节编码最大的问题在于每一个语种的字符集编码不兼容 unicode的好处在于将所有人类语种字符都有了统一的编码 现在世界上语言基本都包含在了基本多文种平面0上
  • c语言输出字符串显示在屏幕上,C语言输出printf

    C语言输出printf教程 在 在我们使用 printf 函数时 格式占位符的格式个数一定要与后面的需要输出的变量或者字面量的个数匹配 否则程序报错 printf函数详解 语法 int printf const char format 参数
  • Vue中动画的实现 从基本动画,到炫酷动画。看这一篇就够了

    文章目录 Vue中的基本动画实现 动画类名的重定义 使用第三方的动画库 我就选择其中一个库做示范其他都一样 Vue中的基本动画实现 直接一点 基本动画的步骤 在需要加动画的地方 加入transition
  • EXCEL实现多行多列转为一行多列形式,OFFSET函数

    1 需要实现数据多行多列转为一行多列的数据 2 使用函数 OFFSET A 1 COLUMN A1 1 3 MOD COLUMN A1 1 3 可根据实际数据情况替换数字 引用单元格 3 实现效果 4 操作步骤 观察数据 输入公式 点击回车
  • C++中的STL中(容器、迭代器、适配器、配置器)

    首先明确STL中的六大组成部分 容器 迭代器 适配器 算法 仿函数 配置器 一 C 中的容器 顺序容器 关联容器 容器适配器 1 顺序容器 2 关联容器 3 容器适配器 二 STL中 容器 适配器的关系 参考博客如下 C 顺序性容器 关联性
  • QT固定文件名格式串转化为TreeView在界面上展示文件树形目录

    获得的文件串格式 file1 1 sss txt file1 bin zip file2 linpanhu docx qmake vc bat send zip 思路 gt gt gt file1 1 sss txt file1 bin z
  • golang The system cannot find the file specified

    使用io ioutil包读取文件时报错 open abi The system cannot find the file specified 原因是 ioutil ReadFile 这个方法需要传入决绝路径的文件名 代码 abiStr er
  • ESP32 之 ESP-IDF 教学(十一)WiFi篇—— WiFi两种模式

    本文章 来自原创专栏 ESP32教学专栏 基于ESP IDF 讲解如何使用 ESP IDF 构建 ESP32 程序 发布文章并会持续为已发布文章添加新内容 每篇文章都经过了精打细磨 通过下方对话框进入专栏目录页 CSDN 请求进入目录 O
  • 安全模型和业务安全体系

    网络安全和业务安全 网络安全中 攻击者往往通过技术手段 以非正常的技术 XSS Injection Penestrating等 影响业务正常运行 窃取敏感数据 比如 某黑客通过SSRF进入内网 并在内网横向扩张 最终脱库成功 业务安全中 黑
  • 如何理解和解决CXXABI not found问题?

    编译C 程序时 在链接阶段有时会出现CXXABI not found的问题 usr lib64 libstdc so 6 version CXXABI 1 3 8 not found 问题出现的场景 当前编译的程序需要依赖其它已编译的组件
  • vtk中的点云曲面重建

    对于光学扫描设备 如激光雷达 采集到的非规则点云数据 最重要的需求之一就是进行表面重建 Surface Reconstruction 对成片密集分布的点云以三角片拟合 形成连续 精确 良态的曲面表示 目前主流的算法可分为剖分类 组合类和拟合
  • win11管理我的账户提示“无法使用个人帐户在此登录,请改用工作或学校帐户”

    先把所有账户删除 注销Store 重新登陆账户 登录后选择自动登录到所有Microsoft应用就好了
  • 210. 课程表 II

    文章目录 Tag 题目来源 题目解读 解题思路 方法一 拓扑排序 写在最后 Tag 拓扑排序 题目来源 210 课程表 II 题目解读 在选修某些课程之前需要先学习某些课程 先学习的课程有数组 prerequisites 给出 其中 pre
  • NAT和全网互通

    首先在GWserver设备上安装一个 路由和远程访问 然后打开路由和远程访问右键新建nat
  • 怎么用计算机测量一个物体的高度,常用测量工具的使用方法?

    工具分类测量工具通常按用途分为通用测量工具 专类测量工具和专用测量工具3类 测量工具还可按工作原理分为机械 光学 气动 电动和光电等类型 这种分类方法是由测量工具的发展历史形成的 但一些现代测量工具已经发展成为同时采用精密机械 光 电等原理
  • Ubuntu安装SSH服务

    注 安装前需要先将 源 配置好 以下演示为root账号 1 更新软件源 apt get install y update 2 安装openssl apt get install y update apt get install y open
  • Set集合框架

    前言 给大家讲讲Set结合框架 码字不易 点个关注 转载请说明 思维导图 目录 1 List和Set的区别 1 两者的特点 2 两者之间的对比 3 取值 2 Set集合的特点 3 Set集合的循环方式 4 HashSet去重复以及原理 1
  • git修改分支名

    使用git命令操作 1 修改本地分支名称 git branch m oldBranchName newBranchName 2 将本地分支的远程分支删除 git push delete origin oldBranchName 3 将改名后
  • virtual usb multikey安装设备时出现错误_【图解USB】USB 之CDC 程序结构(完结篇)...

    来源 公众号 鱼鹰谈单片机 作者 鱼鹰Osprey ID emOsprey本篇介绍整个例程的结构和程序流程 Github 里面有一个仓库CMSIS DAP https github com x893 CMSIS DAP 该工程可以导入到gi
  • 强化学习 最前沿之graph policy gradients

    强化学习 Zee最前沿系列 深度强化学习作为当前发展最快的方向 可以说是百家争鸣的时代 针对特定问题 针对特定环境的文章也层出不穷 对于这么多的文章和方向 如果能撇一隅 往往也能够带来较多的启发 本系列文章 主要是针对当前较新的深度强化学习