v2.0ack
This commit is contained in:
+13
-13
@@ -1,7 +1,7 @@
|
||||
\chapter{基于深度强化学习的跳波束算法研究}
|
||||
|
||||
\section{引言}
|
||||
对于多波束卫星,不同地区的覆盖会导致流量的空间分布不均匀,在某一个时间点量部分活跃的波束,提供服务的跳波束机制是有效应对空间流量分布不均匀的方法。传统的方法解决跳波束问题多采用优化或者元启发算法。这些方法的主要问题是随着波束数量的增加、解空间会极速上升。而跳波束决策是一种典型的动态环境序列决策问题,可以采用深度强化学习的方法进行建模。但是单智能体DRL方法在面对巨大的解空间时求解困难,容易出现维度灾难,面对流量需求和波束的公平性存在权衡的问题。如果将波束视为智能体进行多智能体深度强化学习,又容易陷入局部解的问题。本文提出了一种折中的方法,通过结合单智能体和多智能体的方法,提出了一种基于深度强化学习的跳波束算法。
|
||||
对于多波束卫星,不同地区的覆盖会导致流量的空间分布不均匀,在某一个时间点亮部分活跃的波束,提供服务的跳波束机制是有效应对空间流量分布不均匀的方法。传统的方法解决跳波束问题多采用优化或者元启发算法。这些方法的主要问题是随着波束数量的增加、解空间会极速上升。而跳波束决策是一种典型的动态环境序列决策问题,可以采用深度强化学习的方法进行建模。但是单智能体DRL方法在面对巨大的解空间时求解困难,容易出现维度灾难,面对流量需求和波束的公平性存在权衡的问题。如果将波束视为智能体进行多智能体深度强化学习,又容易陷入局部解的问题。本文采取了一种折中的方法,通过结合单智能体和多智能体的方法,实现了一种基于深度强化学习的波束与信道联合分配的跳波束算法。
|
||||
\section{系统与问题建模}
|
||||
\subsection{场景描述}
|
||||
本文考虑多波束卫星的下行链路,通过时分复用的形式,可以提供$K$个波束覆盖$N$个小区的用户($K<N$)。在$t$时刻,不同的波束与小区之间的可以使用以下矩阵描述:
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
在此优化问题中,优化的目标是最大化系统的总体和最小化系统的延时极差,其中$\beta$为权重系数,$\beta$反映了对吞吐量和公平性的取舍,$\beta$越大意味着优化越倾向于最大化吞吐量,反之意味着最小化延时差。$Th_{max}$和$\Delta_{max}$为系统的最大吞吐量和最大极差。约束条件\ref{eq:pttt}为系统的总发射功率约束,约束条件\ref{eq:btot}为系统的总带宽约束,约束条件\ref{eq:xnkk}为波束分配约束。
|
||||
\section{基于深度强化学习的跳波束算法建模}
|
||||
本节详细介绍本文提出的动态跳波束问题的解决方法。首先提出了多目标深度强化学习算法的体系结构,包含了算法中的一些考虑,随后给出了状态空间、动作空间、奖励函数等的处理。
|
||||
本节详细介绍本章关于动态跳波束问题的解决方法。首先描述了多目标深度强化学习算法的体系结构,包含了算法中的一些考虑,随后给出了状态空间、动作空间、奖励函数等的处理。
|
||||
\subsection{马尔可夫过程构建}
|
||||
|
||||
\textbf{(1)状态空间}
|
||||
@@ -122,7 +122,7 @@
|
||||
\end{equation}
|
||||
|
||||
\subsection{状态重构}
|
||||
本章中描述业务量状况使用的是泊松分布的数据包到来的状况,由于泊松分布的特性,业务的到来是时间连续的行为,为了对$D_t$进行处理,需要对业务进行状态重构。假设每个数据包的大小是相等的,使用数据包的数量来代表小区的业务量请求,数据包请求可以表示为
|
||||
本章中描述业务量状况使用的是泊松分布的数据包到来的状况,由于泊松分布的特性,业务的到来是时间连续的行为,为了对$D_t$进行处理,需要对业务进行状态重构。假设每个数据包的大小是相等的,每个跳波束时隙内的数据量可以代表在该时隙内的吞吐量需求,表示为
|
||||
\begin{equation}
|
||||
d_t^{i,j} = \sum \{\varphi_{m,t} | i \in [ \frac{T_{ttl}\cdot m}{M}, \frac{T_{ttl}\cdot(m+1)}{M})\}
|
||||
\label{eq:data_packet}
|
||||
@@ -142,21 +142,21 @@
|
||||
|
||||
\subsection{动作决策与Q网络设计}
|
||||
\ref{sec:qwl}描述了深度Q学习中Q网络的基本结构。
|
||||
在传统的基于动作价值函数的DRL方法中,根据网络输出的最大值Q输出单一的动作选择。但在本问题所示的跳波束场景下,波束不仅需要选择点亮的小区还需要选择点亮时的信道分配模式,而这两个问题所需要的动作空间是不同的。为了能够使用这个方法解决跳波束问题,本文提出了一种合作性多智能体强化学习方案,系统中有两个独立的智能体,在训练的过程中分别学习各自的策略、拥有独自的经验回访池,分别选择独立的动作,即点亮的波束与信道的分配模式,两个动作共同作用与环境进行交互从而得到共同的奖励函数$r$。
|
||||
在传统的基于动作价值函数的DRL方法中,算法会按照式\ref{eq:a_star}的定义选择最大动作价值对应的动作作为输出。但在本问题所示的跳波束场景下,波束不仅需要选择点亮的小区还需要选择点亮时的信道分配模式,而这两个问题所需要的动作空间是不同的。为了能够使用这个方法解决跳波束问题,本文给出了一种合作性多智能体强化学习方案,系统中有两个独立的智能体,在训练的过程中分别学习各自的策略、拥有独自的经验回访池,分别选择独立的动作,即点亮的波束与信道的分配模式,两个动作共同作用与环境进行交互从而得到共同的奖励函数$r$。
|
||||
\begin{figure}[hbpt]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{chap/figures/multidqn.png}
|
||||
\caption{多智能体强化学习框架}
|
||||
\label{fig:multiagent}
|
||||
\end{figure}
|
||||
传统的DQN算法中,Q网络的输出是一系列Q值的数组,这种情况下,智能体可以选择最大的Q值对应的动作即($a_t = \arg \max Q(s,a;\theta)$)。通常而言这种值的输出是一维的数值,而在跳波束问题中,两个网络的输出都是一个具有$K$个分量的向量。在这种情况下,文献\parencite{hu2020dynamic}采用的方法是通过循环的方式,连续进行$K$次决策:每次选择一个小区后,将该小区的数据需求量暂时更新为0,重复$K$次,执行的动作是$K$个动作的并集,$\vec{a} = \{a_1,a_2,\cdots,a_K\}$。这样做的缺点是系统需要更长的时间进行决策、并且会导致难以收敛。而文献\parencite{lin2022dynamic}采取的方式是将每个分量再次拆解为单独的智能体,即将每个波束视为单独的智能体,这样做大大简化了问题的复杂度,但是会导致智能体之间的合作性降低,容易陷入局部最优解。为了应对以上的问题,本文提出了一种折中的方法,即每一个智能体的Q网络在输出层通过多头分叉的方式输出多组不同的Q值,既能充分利用全局的状态信息,又能在一定程度上降低系统的复杂度。在更新时,本文对每个动作分量分别计算网络的误差,通过总误差求平均值获得网络的误差函数:
|
||||
通常而言这种动作价值的输出是一维的数值,而在图\ref{fig:multiagent}的多智能体合作强化学习网络中,两个智能体的动作选择都是具有$K$个分量的高维向量。面对高维动作空间问题,文献\parencite{hu2020dynamic}采用的方法是通过循环的方式,连续进行$K$次决策:每次选择一个小区后,将该小区的数据需求量暂时更新为0,重复$K$次,执行的动作是$K$个动作的并集,$\vec{a} = \{a_1,a_2,\cdots,a_K\}$。这样做的缺点是系统需要更长的时间进行决策、并且会导致难以收敛。而文献\parencite{lin2022dynamic}采取的方式是将每个分量再次拆解为单独的智能体,即将每个波束视为单独的智能体,这样做大大简化了问题的复杂度,但是会导致智能体之间的合作性降低,容易陷入局部最优解。为了应对以上的问题,本文采用了一种折中的方法,即每一个智能体的Q网络在输出层通过多头分叉的方式输出多组不同的Q值,既能充分利用全局的状态信息,又能在一定程度上降低系统的复杂度。在更新时,本文对每个动作分量分别计算网络的误差,通过总误差求平均值获得网络的误差函数:
|
||||
|
||||
\begin{equation}
|
||||
L(\theta) = \frac{1}{K} \sum_k \mathrm{E}[(r_t + \gamma \max Q(s_{t+1}, a'_{t+1,k}; \theta') - Q(s_t, a_{t,k}; \theta))^2]
|
||||
\label{eq:Loss_eq}
|
||||
\end{equation}
|
||||
|
||||
本章提出的算法使用了四层的全连接神经网络,每个网络共享的输入层、三层共享的隐藏层,输出层为多头分叉的输出层。具体的参数如表\ref{tab:multihead}所示。
|
||||
本章算法使用了四层的全连接神经网络,每个网络共享的输入层、三层共享的隐藏层,输出层为多头分叉的输出层。具体的参数如表\ref{tab:multihead}所示。
|
||||
|
||||
\begin{table}[hbpt]
|
||||
\begin{small}
|
||||
@@ -236,7 +236,8 @@
|
||||
|
||||
\section{仿真结果分析}
|
||||
\subsection{仿真参数设计}
|
||||
本节仿真基于 python3.10环境,使用了单颗Ka波段卫星,主要参数如表\ref{tab:bhparam}所示,卫星场景仿真参数参考\parencite{lin2022dynamic},跳波束时隙参考\ref{etsi2005digital}。其中业务的请求量按照泊松分布产生,根据具体的吞吐量需求计算得到对应$\varphi$比特的数据包到达率$
|
||||
本节仿真的CPU平台为Intel Core i7 11700CPU,
|
||||
使用了PyTorch机器学习框架。仿真中,使用了单颗Ka波段卫星,主要参数如表\ref{tab:bhparam}所示,卫星场景仿真参数参考\parencite{lin2022dynamic},跳波束时隙参考\parencite{etsi2005digital}。其中业务的请求量按照泊松分布产生,根据具体的吞吐量需求计算得到对应$\varphi$比特的数据包到达率$
|
||||
\lambda$。
|
||||
|
||||
\begin{table}[hbpt]
|
||||
@@ -299,7 +300,7 @@ $时,时延的收敛情况。
|
||||
\textbf{(1)不同$\beta$取值对系统性能的影响}
|
||||
|
||||
|
||||
根据收敛性分析,本章所提出算法对于不同的$\beta$都具有一定的效果,但是不同的$\beta$对系统收敛性存在一定的影响。为了明确的说明算法的在不同取值下的性能,图\ref{fig:beta_delay}说明随着$\beta$的升高,时延的公平性逐渐变差,而系统总的吞吐量随之增加,这一结论与此前的讨论相同。
|
||||
根据收敛性分析,本章算法对于不同的$\beta$都具有一定的效果,但是不同的$\beta$对系统收敛性存在一定的影响。为了明确的说明算法的在不同取值下的性能,图\ref{fig:beta_delay}说明随着$\beta$的升高,时延的公平性逐渐变差,而系统总的吞吐量随之增加,这一结论与此前的讨论相同。
|
||||
\begin{figure}[hbpt]
|
||||
\centering
|
||||
\begin{subfigure}{0.45\textwidth}
|
||||
@@ -341,7 +342,7 @@ $时,时延的收敛情况。
|
||||
\textbf{(3)在不同吞吐量需求下的时延公平性的表现}
|
||||
|
||||
|
||||
在时延的公平性上,与吞吐量情况不同,各种算法的表现具有较大的差(图\ref{fig:alldl})。随机算法在各种带宽需求上表现都比较差。周期算法在低业务需求时表现较好,随着业务需求的增加迅速升高。贪心算法总体表现较好,在业务需求区间内都保持着低于\SI{25}{ms}的水平。本文提出的算法总体上呈现出随着业务量增大而上升的状况,在中低业务需求的情况下,在保证时延的公平性上,具有较好的性能,在\SI{2300}{Mbps}的业务需求下,能够比贪心算法的公平性低25\%左右,而在较大吞吐量需求时,为了保证吞吐量,仍然能够控制时延公平性在\SI{30}{ms}以内的水平,考虑到本仿真中星上缓存为40个时隙,本算法在较高业务流量时仍然能够保证大部分业务的正常传输。遗传算法总体与本文提出的算法在时延公平性上表现接近。
|
||||
在时延的公平性上,与吞吐量情况不同,各种算法的表现具有较大的差(图\ref{fig:alldl})。随机算法在各种带宽需求上表现都比较差。周期算法在低业务需求时表现较好,随着业务需求的增加迅速升高。贪心算法总体表现较好,在业务需求区间内都保持着低于\SI{25}{ms}的水平。本章的算法总体上呈现出随着业务量增大而上升的状况,在中低业务需求的情况下,在保证时延的公平性上,具有较好的性能,在\SI{2300}{Mbps}的业务需求下,能够比贪心算法的公平性低25\%左右,而在较大吞吐量需求时,为了保证吞吐量,仍然能够控制时延公平性在\SI{30}{ms}以内的水平,考虑到本仿真中星上缓存为40个时隙,本算法在较高业务流量时仍然能够保证大部分业务的正常传输。遗传算法总体与本章的算法在时延公平性上表现接近。
|
||||
|
||||
\begin{figure}[hbpt]
|
||||
\centering
|
||||
@@ -377,12 +378,11 @@ $时,时延的收敛情况。
|
||||
随机算法 & $\mathcal{O}(1)$&{3.54}$\mu$s \\
|
||||
贪心算法 & $\mathcal{O}({NT_{ttl}+N\cdot\log_2NK})$ & 98.76$\mu$s\\
|
||||
本文算法 & $\mathcal{O} (\sum^L M_{in}\cdot M_{out} + M_{L,out}K^2\cdot(M^2+N)) $ & 1288$\mu$s \\
|
||||
遗传算法 & $\mathcal{O}({PG(Kk^3 + (K^2+NT_{ttl})k^2)})$ & \SI{311}{ms}\\
|
||||
遗传算法 & $\mathcal{O}({PG(K^2+NT_{ttl})})$\supercite{lin2022dynamic} & \SI{311}{ms}\\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
经过之前的实验结果分析可以得知,在各种方法中,遗传算法和本文提出的算法在满足流量不均匀的情况时都能够表现较好,但是在实际的决策中,由于遗传算法每次决策初始化种群并计算适应性函数进行迭代,其算法复杂度非常高,反映到实际的决策时间上, 遗传算法相比其他算法是数量级的差异并不合适面对流量变化迅速的实时决策。而本文提出的算法在满足流量需求时表现很好,时延公平性方面相比随机等算法也有较大的提升,在实际决策上,决策时间平均在\SI{1}{ms}左右,仍然能够都满足最小的时隙要求,换句话说,本文提出的算法在表现上能够解决遗传算法等启发式算法,但在决策时间上只是遗传算法的$0.03\%$。
|
||||
经过之前的实验结果分析可以得知,在各种方法中,遗传算法和本章设计的算法在满足流量不均匀的情况时都能够表现较好,但是在实际的决策中,由于遗传算法每次决策初始化种群并计算适应性函数进行迭代,其算法复杂度非常高,反映到实际的决策时间上, 遗传算法相比其他算法是数量级的差异并不合适面对流量变化迅速的实时决策。而本章的算法在满足流量需求时表现很好,时延公平性方面相比随机等算法也有较大的提升,在实际决策上,决策时间平均在\SI{1}{ms}左右,仍然能够都满足最小的时隙要求,换句话说,本章实现的算法在表现上能够解决遗传算法等启发式算法,但在决策时间上只是遗传算法的$0.3\%$。
|
||||
\subsection{本章小结}
|
||||
|
||||
本研究针对低轨卫星通信下行链路中的跳波束问题,提出了一种基于DQN算法
|
||||
跳波束和信道联合分配算法。在深入分析序列决策问题的基础上,通过数学建模与状态空间的重构,本章设计了适用于此场景的资源分配策略,并详细阐述了DQN算法的原理及实现细节。通过仿真实验,验证了该算法在保持较低的算法时间复杂度的同时,保障了多波束卫星在面对空间流量不均匀场景下的性能表现。
|
||||
本章针对卫星通信跳波束资源分配问题中动作空间过大、吞吐量需求与公平性无法兼顾的问题,改进实现了一种多目标双智能体跳波束与信道联合分配方法,该方法结合了多目标优化与多智能体合作训练的方法,在复杂度与目标指标优化之间实现了兼顾。本章设计了适用于此场景的资源分配策略,并详细阐述了DQN算法的原理及实现细节。通过仿真实验,验证了该算法在保持较低的算法时间复杂度的同时,保障了多波束卫星在面对空间流量不均匀场景下的性能表现。
|
||||
Reference in New Issue
Block a user