关于《多智能体协作场景下基于强化学习值分解的计算卸载策略》

文章:多智能体协作场景下基于强化学习值分解的计算卸载策略

系统结构 本文描述的边缘计算系统包括边缘服务器、一个网关设备、多个接入点以及多个智能体。接入点与网关设备之间有线连接,与智能体之间无线连接,接入点的数量决定了无线子信道的数量。一个接入点可以服务多个智能体而一个智能体同时只能接入一个接入点。

所有智能体以采样周期为时间单位统一行动,智能设备可以提供观察信息即参数,而计算一个智能设备的操作不仅需要自身提供的参数,还可能需要其他智能体提供的参数。

上传参数至边缘云的时间 计算在边缘服务器进行时,接入点 $i$ 下各智能体参数上传时间相加(共用同一子信道)所有智能体总上传时间取各接入点上传时间 $\max$(多个平行的子信道)。网关与接入点有线连接,且与边缘服务器共址部署,这之间的传输非常快,因此忽略了参数由接入点传入边缘云计算单元的时间。

从边缘云下载计算结果的过程与上传过程类似,同样是同一接入点求和,各接入点取 $\max$。

边缘云的计算 计算的输入是参数,输出是控制智能体行动的指令。文章假设计算量与参数数据量大小成正比。计算过程中将边缘服务器的计算资源看作一个整体,拥有算力 $F$。计算时间为总计算量除以边缘云算力。

智能体的计算 智能体计算前需要从边缘云获得所有所需参数。文中将智能体$(i,j)$计算得到实时操作距边缘云获得全部参数数据的时间表示为 $$ \tau_{i,j,t}^\mathrm{AD+C}=\sum_{k=1}^{j}\tau_{i,k,t}^\mathrm{AD}+\frac{B_{i,j,t}}{f_{i,j}} $$ 其中 $\tau_{i,k,t}^\mathrm{AD}$ 表示接入点 $i$ 向智能体$(i,k)$ 转发所需参数所需参数的时间,$B_{i,j,t}$ 表示计算量,$f_{i,j}$ 表示算力。从式$(1)$可见智能体$(i,j)$ 的计算是在接入点 $i$ 转发完所有参数数据之后才开始的。

实际上智能体$(i,j)$ 的计算只需要在其接收完所有所需参数之后就可以开始了,但是不能确定这个智能体所需要的参数什么时候可以被全部接受,因为接入点 $i$ 转发参数的顺序是未知的。或许可以根据各智能体本地计算时间的不同使接入点先为计算时间长的智能体转发数据?但是这样的话则需要先计算智能体本地计算的时间并排序,这个过程产生的时间开销是否会对总时间有较大影响?或许这样做反而不如文中所述的方法。

从边缘云获得全部参数数据至所有智能体全部计算得到实时操作的时间为所有 $\tau_{i,j,t}^\mathrm{AD+C}$ 取 $\max$,因为每个智能体都等待其接入点转发完所有参数之后才开始计算,它们的计算都是并行的。

智能体与边缘云协同计算 在一个采样周期 $t$ 中,策略 $\mathcal{X_{t}}={x_{i,j,t}|\forall i\in\mathcal M \ and \ (i,j)\in\mathcal N_i}$ 将智能体分为选择本地计算的集合及选择由边缘云计算的集合 $\mathcal{A_{t}^\mathrm{A}}={(i,j)|x_{i,j,t}=0,\forall i\in\mathcal M \ and \ (i,j)\in\mathcal N_i}$ 和 $\mathcal{A_{t}^\mathrm{E}}={(i,j)|x_{i,j,t}=1,\forall i\in\mathcal M \ and \ (i,j)\in\mathcal N_i}$​。

整个协同计算及传输过程为:

  1. 所有智能体通过其连接的接入点上传参数
  2. 边缘云开始为 $\mathcal{A_{t}^\mathrm{A}}$ 中的智能体转发参数,并同时开始为 $\mathcal{A_{t}^\mathrm{E}}$ 中的智能体计算实时操作(数据转发和操作计算由边缘云的不同部分执行,故可以同时进行)
  3. 转发实时操作给 $\mathcal{A_{t}^\mathrm{E}}$ 中的智能体,这部分数据排在 $\mathcal{A_{t}^\mathrm{A}}$ 中智能体所需的参数数据之后
  4. $\mathcal{A_{t}^\mathrm{A}}$ 中的智能体根据获得的参数计算实时操作

边缘云要借助接入点为 $\mathcal{A_{t}^\mathrm{E}}$ 中的智能体转发实时操作,具体地,接入点 $i$ 开始发送实时操作距边缘云接收到全部参数数据的时间为 $$ \tau_{i,t}^\mathrm{SI}(\mathcal{X_t})=\max{[1-\prod_{(i,j)\in\mathcal{N_i}}(1-x_{i,j,t})]\tau_{t}^\mathrm{EC}(\mathcal{X_t}),\sum_{(i,j)\in\mathcal{N_i}}\tau_{i,j,t}^\mathrm{DD}(x_{i,j,t})} $$ 其中 $\tau_{t}^\mathrm{EC}$ 为边缘云计算 $\mathcal{A_{t}^\mathrm{E}}$ 中智能体的实时操作的时间,$\tau_{i,j,t}^\mathrm{DD}$ 为接入点 $i$ 向智能体 $(i,j) \in \mathcal{A_t^\mathrm{A}}$ 发送参数的时间。因此接入点 $i$ 开始发送实时操作的时间与接入点 $i$ 为旗下智能体发送完参数的时间以及边缘云计算完所有实时操作的时间有关,具体取决于较晚的那项。值得注意的是从 $[1-\prod_{(i,j)\in\mathcal{N_i}}(1-x_{i,j,t})]$ 可以看出只要接入点 $i$ 旗下有任意一个智能体需要借助边缘云计算实时操作,就需要考虑边缘云计算完所有智能体的实时操作的时间(因为边缘云什么时候能够计算完接入点 $i$ 旗下所有智能体的实时操作的时间是不确定的)而只有旗下所有智能体都不需要借助边缘云计算的时候才能不考虑边缘云计算的时间。

我对这里接入点 $i$ 开始发送实时操作的时间与上面智能体$(i,j)$ 开始计算实时操作的时间存在相似的疑问。$\max$ 中的前一项是否应为“边缘云计算完接入点$i$ 旗下智能体的实时操作的时间”而非“边缘云计算完所有智能体的实时操作的时间”?

当各接入点旗下的智能体计算策略比较平均或各接入点旗下智能体计算策略不平均但每个接入点需要传输的实时操作总数据量都较小(具体来讲是实时操作传输时间远小于边缘云的实时操作计算时间)时,文中的安排方式对总时间影响不大

当各接入点旗下的智能体计算策略不平均且个别接入点需要下传大量实时操作数据时,考虑这样的情况:部分接入点需要下传大量数据,其他接入点只需要下传少量数据,边缘云总计算量仍然很大,计算需要较长时间。所有接入点都要等待边缘云完成所有计算后才能开始传输自己旗下智能体的实时动作,需要下传大量数据的接入点会大幅延长总时间,而接入点在等待边缘云计算时不能进行下传,浪费了大量时间。

智能体实时操作的数据量与计算量成正比,后者与所需参数量成正比,因此在边缘云计算之前就能够计算出各个智能体实时操作的数据量相对大小,进一步得出每个接入点需要下传的数据量的相对大小。根据接入点下传的数据量的相对大小进行排序,优先计算下传数据较多的接入点旗下的智能体的实时操作,可以使这些接入点提前开始下传数据,最终节省时间。考虑到边缘云拥有较强算力,排序增加的时间或将小于节省的时间。

成本函数的设计 系统成本函数综合考虑时延和能耗,并将全部由边缘云计算所对应的时延和能耗作为基准作无量纲化处理。系统成本函数表示为 $$ C_t(\mathcal{X_t})=\beta\frac{\tau_t(\mathcal{X_t})}{\tau_t^\mathrm{E}}+(1-\beta)\frac{E_t(\mathcal{X_t})}{E_t^\mathrm{E}} $$ 通过调整 $\beta$ 的取值可以对系统对时延和能耗的敏感程度进行调整。

联合计算的时延 $\tau_t(\mathcal{X_t})$ 大于边缘云计算的时延 $\tau_t^\mathrm{E}$​

联合计算的能耗 $E_t(\mathcal{X_t})$ 小于边缘云计算的能耗 $E_t^\mathrm{E}$

这样在不带 $\beta$ 的情况下时延项大于 1 而能耗项小于 1,调整 $\beta$ 时两项在成本函数中的比例同时变化。这样的处理是否合适?

是否应该将边缘云计算的时延改为全部本地计算的时延 $\tau_t^\mathrm{A}$ 或将边缘云计算的能耗改为全部本地计算的能耗 $E_t^\mathrm{A}$

多智能体联合学习框架 文章采用了值函数分解的方式对单智能体学习的算法进行扩展。

全局回报函数是每个智能体的局部回报函数之和,即 $r(s,a)=\sum_k^n\ r_k(o^k,a^k)$,其中 $(o^k,a^k)$ 分别是智能体$k$ 的$(观察,动作)$ ,进一步得到 $$ \begin{align} Q^\pi(s,a) &=\mathbb E[\sum_{t=1}^\infin\gamma^{t-1}r(s_t,a_t)|s_1=s,a_1=a;\pi]\ &=\sum_k^n{\mathbb E[\sum_{t=1}^\infin\gamma^{t-1}r_k(o^k_t,a^k_t)|s_1=s,a_1=a;\pi]}\ &=\sum_k^n{\overline Q_k^\pi(s,a)} \end{align} $$ 分解后的 $Q$ 函数依旧基于全局环境信息,本文系统中边缘节点将集中收集所有连接智能体的状态信息进而得到全局环境信息。由此对于部分策略价值函数的累加可以得到整体策略价值函数。

这是否就是解释了为什么可以将 $(s_t,a_t)$ 拆成 $(o^k_t,a^k_t)$ 之后最终的每个 $\overline Q^\pi_k$ 还是基于$(s,a)$ :因为系统环境就是所有智能体观察的总和,系统动作就是所有智能体动作的总和

对联合集中式学习和独立并行学习进行折中,将整体策略价值函数拆分为多个局部智能体策略价值函数之和,即 $$ Q((s,(a^1,a^2,…,a^d)))\approx\sum_{i=1}^d\widetilde{Q}i(s,a^i) $$ 相应地将式$(3)$拆为 $$ C_t(\mathcal{X_t}) =\beta\frac{\tau_t(\mathcal{X_t})}{\tau_t^\mathrm{E}}+(1-\beta)\frac{E_t(\mathcal{X_t})}{E_t^\mathrm{E}} \approx\sum{i=1}^M\sum_{j=1}^{N_\max}\beta\frac{\tau_{i,j,t}(x_{i,j,t})}{\tau_t^\mathrm{E}}+(1-\beta)\frac{E_{i,j,t}(x_{i,j,t})}{E_t^\mathrm{E}} $$

前面提到时间 $\tau$ 中包含大量等待的时间,这是否会影响到这种拆分方式方式的可靠性?

使用式$(8)$作为奖励函数代替系统代价函数进行训练。

文章中还提到两个优化

  1. 各智能体策略价值评估函数中采用同构的神经网络,并允许所有智能体共享单个策略评估参数,使策略可以同时接收所有智能体的经验提升
  2. 1 的方法会产生智能体不变性,故在输入中引入智能体当前状态信息作为额外索引信息增强智能体价值函数的差异性

多智能体联合学习算法 智能体$(i,j)$在第 $t$个采样周期的状态为 $s_{i,j,t}=(\boldsymbol B^t_{M\times{N_\max}},\boldsymbol D^t_{M\times{N_\max}},\boldsymbol D^{BD-t}{M\times{N\max}},\boldsymbol D^{R-t}{M\times{N\max}},\boldsymbol h^t_{M\times{N_\max}},\boldsymbol O^t_{i,j})$

其中各成员分别为

  • $\boldsymbol B^t_{M\times{N_\max}}$ 全部智能体在第 $t$ 个采样周期的实时操作计算量集合
  • $\boldsymbol D^t_{M\times{N_\max}}$ 全部智能体在第 $t$ 个采样周期的参数数据量集合
  • $\boldsymbol D^{BD-t}{M\times{N\max}}$ 全部智能体在第 $t$ 个采样周期的实时操作所基于的参数数据量集合
  • $\boldsymbol D^{R-t}{M\times{N\max}}$ 全部智能体在第 $t$ 个采样周期的实时操作的操作指令数据量集合
  • $\boldsymbol h^t_{M\times{N_\max}}$ 全部智能体在第 $t$ 个采样周期内与其所连接的接入点之间的信道增益集合
  • $\boldsymbol O^t_{i,j}$ 智能体$(i,j)$在第 $t$ 个采样周期的自身状态信息

其中 $\boldsymbol O^t_{i,j}=[B_{i,j,t},D_{i,j,t},D^{\mathrm{BD}}{i,j,t},D^{\mathrm{R}}{i,j,t},h_{i,j,t}]$,除此以外其他成员均为二维矩阵,$\boldsymbol O^t_{i,j}$ 即为优化 2 中引入的智能体当前状态信息

系统在第 $t$ 个采样周期的策略动作为 $a_t$,智能体在第 $t$ 个采样周期内状态为 $s_{i,j,t}$,采取策略动作 $a_{i,j,t}$,得到系统回报值 $r_{i,j,t}$,当系统进入第 $t+1$ 个采样周期时状态为 $s_{i,j,t+1}$。其中系统回报为系统成本的负值,系统策略与系统策略动作等效转换,于是 $$ r_{i,j,t}=-C_{i,j,t}(x_{i,j,t})=-C_{i,j,t}(a_{i,j,t}) $$

Sorry potatoler, but I cannot recognize you.
Built with Hugo
Theme Stack designed by Jimmy