1 概述

本次要读的论文是Deep Reinforcement Learning Based Resource Allocation for V2V Communications,是 TVT 上的 Popular Articles 中的第一篇。主要讲的内容是用增强学习(或者叫强化学习)来做 V2V 通信的资源分配。目前使用强化学习来做分布式的资源分配方案是一种比较流行的做法。使用强化学习做资源分配不要求决策者掌握全局信息。

无法在 IEEE 的平台上下载的可以使用 Sci-Hub 下载查看论文。

对于任何一个「资源分配」机制来说,首先要明确定义待分配的资源是何种形式,以及执行分配的主体为何。在文章的 Abstract 中提到,分配的资源是:

An autonomous "agent", a V2V link or a vehicle, make its decisions to find the optimal sub-band and power-level for transmission without requiring or having to wait for global information. ... . each agent can effectively learn to satisfy the stringent latency constraints on V2V links while minimizing the interference to vehicle-to-infrastructure communications.

从上面的论述我们可以总结如下的信息:

  1. 执行资源分配的主体是一条通信链路或者一个通信节点
  2. 待分配的资源的形式是 Sub-band(可以理解为可用信道)和发射功率。发射功率直接与通信范围相关。调节通信范围是进行空分复用的一种方式
  3. 资源分配的目标是满足延时要求,以及最小化 V2I 通信需求
  4. 这里车间通信使用的是 5G D2D

2 研究背景

传统的资源分配方式一般是中心式的。这种分配方式要求从每个节点收集局部网络信息(链路状态和干扰信息)。在调度中心,资源分配问题被建模为一个优化问题,限制条件为 V2V 通信的 QoS 要求。不过这种优化问题一般是 NP 难问题。这种问题一般会用一些启发式算法来求局部最优解或者次优解。这类方法的首要问题是信息收集汇总的过程开销太大了,且随着网络规模的扩大会显著地增长。故这篇文章寻求使用分布式的分配方案。

现存的一些分布式的资源分配方式的问题是他们考虑的一般是单播通信(Unicast),而非广播过程。广播通信模式中的广播风暴也是资源分配机制需要考虑的问题。传统的方法一般用随机转发或者是基于拓扑信息管理转发的方法来解决这个问题。

上面讨论的是中心时和分布式的资源分配方式存在的问题。下面讨论的是更加细节的问题。

在现有的研究中,V2V 链路的 QoS 值包含了 SINR 这一个指标,延时限制这个指标不太好建模进入优化问题,因此没有被充分考虑。

为了解决上述这些问题,作者提出使用深度增强学习来解决单播和广播通信中的资源分配问题。作者主要用深度增强学习来研究从本地观测量,如 CSI(信道状态信息),干扰水平等,和资源分配和调度方案之间的映射关系。在单播通信中,每个 V2V 链路被视为一个 agent(代理),频谱和传输功率为待控制的量。在广播通信中,每个节点被视为一个 agent,待控制量为频谱和消息(messages)。Observation, action 还有 reward function 都根据单播和广播做了单独的设计。

3 系统模型(Unicast)

图 1: 系统模型

如上图所示,车联网中包含 个基站用户(CUEs),标记为对 V2V 用户(VUEs),记为,CUEs 需要 V2I 链路来支撑和基站(BS)的通信,而 VUEs 需要 V2V 连接来共享交通安全管理相关的信息。为了改善频谱利用效率,我们假设为 V2I 上行链路正交分配的频谱是和 V2V 链路共享的,这是因为在基站处的干扰情况要更加可控一些,而且上行链路的负载要低很多。

个 CUE 的 SINR 为

其中表示第个 CUE 和第个 VUE 设备的发射功率,为噪声功率,为对CUE 的信道增益。为表示频谱分配的指示函数。如果 VUE 使用了 CUE 的频谱,那么。那么根据香农定义, CUE 的信道容量是

其中为信道带宽。

类似对于 VUE 也可以给出其 SINR

其中

为 CUE 的 V2I 上行链路对 VUE 的干扰。

这个是 V2V 链路的整体干扰水平。的功率增益, CUE 的干扰功率增益。的干扰功率增益。那么类似的通过香农公式,我们可以得到 VUE 的信道容量。

V2V 的通信具有比较严格的延时和可靠性要求,而数据率则并没有那么重要。这里延时和可靠性要求被转化成中断概率(Outage probabilities)。通过深度学习,这些限制因素被直接转化成奖励函数。相反,对于 V2I 通信来说,蜂窝通信中延时的重要性没有那么高,传统的分配策略中强调最大化吞吐率的思想仍然适用。故 V2I 的数据率总和仍然会体现在奖励函数中。

由于 BS 没有 V2V 链路的信息,因此 V2I 的资源分配流程要和 V2V 的资源管理流程独立。在给定 V2I 的链路分配的情况下,这篇文章提出的资源管理机制的目标是确保满足 V2V 链路的延时要求,同时最小化 V2V 通信对于 V2I 链路的影响。在分布式的场景下,V2V 链路只能根据本地信息来选择 RB 并设置传输功率。

这些本地信息中,第一种是对于信道和干扰信息的观测。这里假设 sub-channel 的数量和 V2I 的链路的数量相等。对应的 V2V 链路的瞬时信道信息, ,为对应的 sub-channel 的功率增益。上一个时时隙收到的信号强度是 , 代表了在每个信道上的干扰强度。每个链路的本地观测信息还包含了邻居节点之间共享的信息,例如在前一个时隙上邻居节点选择的信道,这个数值代表了邻居节点选用了某个子信道的次数。另外,本地观测还需要包含已经传输的消息的状态信息,例如还未发送完消息载荷(代表剩余比特数的百分比),以及距离违反延时限制还剩余的时间窗口。上述的本地信息包括, 这些消息在之后的广播通信场景中也会使用。

现在的问题就是如何从这些观测量出发得到最优的资源分配策略。这篇文章在这个问题上使用了深度强化学习工具。

4 深度强化学习

4.1 强化学习

图 2: 强化学习基本模型

如上图所示,一个典型的强化学习的框架包括代理(Agent)与环境,及其交互。在本文的模型中,每个 V2V 链路被视为一个代理,除此之外都是环境的一部分。在去中心化场景中别的代理的决策是不可控的,因此每个代理的行为只基于其本身的状态集。

在上图中,在每个时刻,V2V 链路,即代理,观察得到一个状态值,并从行为空间中,基于政策选择一个 sub-band 和一个传输功率。这里政策可以通过状态-行为函数来确定,这个函数也被称为 Q 函数,,这个函数可以通过深度学习来估计。基于代理选择的行为,环境会反馈新的状态,,而每个代理会收到一个奖励。在本文的场景下,奖励取决于 V2I 和 V2V 的传输能力以及 V2V 链路是否满足了延时要求。

在前一个部分的讨论中提到,环境中可观测的要素包括如下几部分:即时信道信息, ,前一个时刻干扰功率,,V2I 链路的信道信息,邻居节点选择的信道信息,当前尚未传输完成的业务负载,以及距离超出延时限制还剩下的时间。尽管状态信息包含了异构的数据,后面我们可以看到使用深度神经网络,我们可以从异构数据中提取出有用的信息,并用于学习出最优的政策。综上,状态向量可以表示成

这里传输功率被离散化为三个档,因此行为空间的大小为,其中为 RB 资源的数量。

V2V 资源调度的目标如下:

一个代理(V2V 链路)选择频带和传输功率,使其对所有的 V2I 链路和其他 V2V 的链路干扰很小,同时保留足够的资源以满足延时要求。因此,用来指导学习过程的奖励函数设计应该与这一目标保持一致。在本文的框架中,奖励函数由三部分组成,分别是 V2I 链路的能力,V2V 链路的能力,以及延时条件。V2V 和 V2I 链路能力的总和用来度量代理的选择对于 V2I 和其他 V2V 链路的干扰。延时条件被构建为一个惩罚项目。具体而言,奖励函数如下:

其中为最大容许延时。为三部分的权重值。为已经用于传输的时间长度,即惩罚项目会随着传输时间的增长而增长。为了在长时间尺度上获得好的表现,需要同时考虑即时收益与未来的收益。因此,这里的强化学习优化的目标是寻找是的下面的累积奖励最大化

其中为述案件系数。

这里系统模型为MDP 模型。状态 在行为下转移到并获得奖励的概率为。注意代理能够控制行为选择,但是对于这个转移概率没有先验信息,这一概率完全由环境因素决定

4.2 深度 Q 学习

代理基于政策选择合适的行为,政策是从状态空间到行为空间的映射:。Q 学习算法可以用来获取最优的政策。对于给定的状态行为对表示累积奖励的期望。因此 Q 值可以用来评估在某一个状态下采取某一行为的好坏。当已知时,我们可以很容易地改进策略:

具有最佳的 Q 值的最优策略可以根据下面的更新策略在不具备关于系统的先验知识的情况下得到:

其中Learning rate。上式中的第二项为更新 Q 值的差值,当已经是最优时,这一项会为 0。根据 Sutton 的Reinoforcement Learning: An Introduction这本书1(以下称「书中」),如果在无限迭代中,如果在每个状态下每个行为都能够被执行无限次,且 Learning rate 适当的进行衰减,那么上式一定能够收敛到。而当确定以后,即可确定最优的政策。

上面这个迭代公式出自书中 6.5 章节。来自 1989 年 Watkins 等人的研究:

当行为-状态空间比较小时,可以使用一些经典的方法来解决 Q 学习问题,甚至可以用列表的方法来维护 Q 函数。不过如果状态空间非常大,甚至是无限时,这种经典的方法就不可用了。除了计算成本方面的考虑,由于行为-状态空间很大,为了充分遍历需要更长的迭代时间才能确保 Q 函数收敛。为了解决这个问题在 Q 学习中,将的深度神经网络技术结合进来。如下图所示

这里使用一个深度神经网络来估计实际的 Q 函数,这个深度神经网络称为 Q 网络,参数集合为,网络接受状态输入,并输出在该状态下每个行为选择对应的 Q 值。剩下的问题是如何更新网络的参数。定义损失函数:

这里为数据集,

4.3 模型训练与测试

如同众多的机器学习算法,这里的方法的也分为训练和测试两个阶段。训练数据和测试数据都是通过环境(仿真系统模拟出来的)和代理的交互过程中产生的。每个训练样本包括。环境模拟器包括 VUE,CUE 及信道,车联的位置随机生成。V2V 以及 V2I 的链路的 CSI 信息根据车辆的位置生成。在给定 V2V 的频谱和功率选择之后,环境模拟器负责给出。在训练阶段,深度 Q 学习使用了经验回放(Experience replay)功能,其中训练数据被生成并存储到内存中。如下面的算法所示:

在每轮迭代中,从内存中提取一个 mini-batch 用于更新 Q 网络。这种方法可以消除生成训练数据的时间相关性。

Q 函数的输入是状态和代理的行为,输出是奖励和下一个状态。因此本质上来讲 Q 函数是对于环境特征的估计。基于 MDP 假设,Q 函数应该是和时间无关的,只取决于当前的系统状态。因此这里 mini-batch 的做法应该是从历史数据中随机提取任意时间片采样的组合进行训练,从而避免连续的生成数据对于模型产生影响。

MDP 看起来是一个比较特殊的问题类型,但是事实上只要状态向量定义合适,理论上可以把任意问题建模成 MDP 问题,当然,不同的问题的复杂度会截然不同。例如 AlphaGo 这种算法,用 MDP 建模就会非常复杂。

之前在看一个介绍强化学习的视频的时候听过,强化学习的一个主要挑战是奖励的稀疏性。这个稀疏性是指代理并非能在每个行为选择后才能获得奖励,可能要非常多步数之后才能获得奖励。那么在实际的奖励之间的空挡如何引导模型就是一个大问题。不过这篇文章面临的问题要简单很多,奖励都是即时的。

测试阶段的算法如下:

图 3: 深度神经网络示意图

在测试过程中,代理总是选择 Q 网络给出的 Q 值最大的行为。

由于每个代理是使用自己的本地信息独立的选择的行为,因此每个 V2V 链路观察到的状态就无法充分的代表环境的特点应该是每个节点的选择会影响到其他节点的观测。为了解决这个问题,文章这里要求每个节点只能异步地更新其行为,即同时只有一个或者小部分节点能够同时更新其政策。

另外,异步决策可以让节点之间能够互相观测对方的行为,可以降低冲突的概率。

这种轮流决策的方式在节点较多时会非常的低效。

另外这里作者选择的策略模型是确定性策略,如果使用随机政策模型,然后使用分布式决策,是否可以实现同步决策呢?

5 对于广播的处理

这一部分将基于深度学习的资源分配机制扩展到 V2V 的广播通信。

5.1 广播系统模型

图 4: 广播系统模型

图 4 中给出了 V2V 广播通信的模型。网络的组成是:

  • CUEs:
  • VUEs: ,发送广播消息。

同样,VUEs 广播也是复用的 UPLINK。

为了提高可靠性,每辆车在收到消息之后会再次广播收到的消息。不过这会导致广播风暴问题。为了解决这个问题,中继广播需要有选择地进行。

由于无线通信天然的广播特点,对于 CUE 来说,其 SINR 条件和单播场景是类似的

这个式子和 基本是一样的,不同的有两点:第一取消了功率项目的脚本,即认为所有的 CUE 内部和 VUE 内部的功率是相同的;第二给 V2V 链路的信道增益加了一个上波浪号以表示广播和单播链路的不同。

那么对应的 CUE 的信道容量为

对于广播链路,我们需要计算 VUE 作为发送者到 接受者的 SINR。

原文这里的公式有问题,他的分子中的功率写的

其中

以及

对应的信道容量为

在分布式决策的情况下,每辆车要决定选择那些消息进行广播,并选择合适的子信道。这些决策需要基于本地观测,且应当独立于 V2I 链路。因此这的优化目标是在 V2I 在资源已经被分配之后,本文提出的机制是确保 VUE 的延时约束得到满足,并且 VUE 对 CUE 的干扰要尽可能小。

除了和单播共享的一些本地观测信息之外,广播还有如下的一些独特的信息:

  1. 消息被车辆接收到的次数 这里应该指 Rebroadcasting过程
  2. 距离已经广播过该消息的车辆的最短距离

原文到这里就结束了模型部分。不过我认为这里的描述还没有充分给出广播通信方式和单播通信方式的根本区别。

上面的模型计算了广播通信中从发送者到每个接受者的 SINR,不过接受者有多个,发送者却只能同时使用一个发送功率进行发送。根据短板原理,实际上有效的信道容量应该是到所有接受者的信道中容量最小的那个容量。即

其次,接受者集合是在发送完成以后才能得到的,那么我在广播前如何衡量 呢?事实上这里的逻辑,不应该是接受者的信道条件去决定有效的广播信道容量,而是发送者对于广播信道容量应该有一个阈值要求,。那么可以得到接受者集合 。显然优化问题应该是让接受者集合尽可能地大。

5.2 强化学习

在广播中,每个车辆被视为一个代理。每个时刻,车辆可以观测到一个状态 ,并基于政策相应地选择行为 。到下一时刻,观测状态成为 ,代理收到一个奖励值

和单播中的场景类似,每个车辆观测到的状态由如下几部分组成:

  • 每个子信道上的干扰情况:
  • V2I 链路信息(信道选择情况),
  • 前一时刻邻居选择的子信道:
  • 满足延时要求还剩下的时间余量:
  • 前面定义的

综上

这里行为空间包含的决策内容是选择的子信道和要广播的消息。因此行为空间 的大小 。如果代理选择了前 个选项,就在对应信道上发送,否则不发送广播。

目标函数的定义是最小化对 V2I 的干扰,同时满足 VUEs 自己的延时要求。类似单播中的情形,目标函数由三部分组成,分别是 V2I 链路的容量,V2V 链路的容量,以及延时限制。为了抑制冗余的广播,其中 V2V 链路只会考虑尚未收到广播信息的接受者的链路情况。即如果一个广播消息已经被周围所有接受者收到了,那么这条链路不会出现在目标函数里。综上,目标函数为

其中 表示已经收到了这个广播消息的节点。

关于广播的问题见上面的讨论

通过这个目标函数可以发现,文章对于广播的处理是将到所有目标节点的信道容量的和。由于广播考虑了重传转发机制,故在计算广播的信道容量时会排除已经收到了广播消息的目标节点。

我认为在广播链路中,将到所有目标接收点的信道容量加起来是缺乏物理意义的支持的。

6 仿真结果

V2I 链路吞吐率
V2V 链路的调度成功概率

  1. 这本书的内容我在这里做了梳理↩︎