KDD 2021
0 摘要
面对COVID-19的爆发,医疗资源紧缺问题日益突出。因此,迫切需要有效的医疗资源配置策略。
强化学习(RL)对于决策制定很强大,但通过强化学习解决这个问题存在三个关键挑战:
(1)现实世界中复杂的情况和无数的决策选择;
(2) 由于大流行传播的潜伏期,只能获得不完整的信息;
(3) 在现实世界中进行实验的局限性,因为我们不能随意设定大流行的爆发。
在本文中,我们提出了一种具有相应训练算法的分层强化学习方法。
我们设计了一个分解的动作空间(decomposed action space)来处理无数的选择,以确保有效和实时的策略。
我们还设计了一个基于循环神经网络的框架来利用从环境中获得的不完整信息。
我们建立了一个基于真实世界数据的流行病传播模拟器,作为实验平台。
我们进行了广泛的实验,结果表明我们的方法优于所有基线,平均减少了 14.25% 的感染和死亡。
1 introduction
本文主要考虑的是两种医疗资源:医院病床和医用口罩。
长期以来,公共卫生研究人员一直在研究医疗资源配置问题。
已经提出并采用了基于个人特征(例如年龄、职业或症状严重程度)的策略。
其他指导方针,包括挽救最多生命或挽救最多生命年阐明了最终目标,但将此类高级目标转化为实际策略并非易事。
另一方面,用于大流行干预的机器学习也早已被研究,包括关于有效隔离策略的工作 等。
然而,专注于用AI解决医疗资源分配问题的方法,尤其是使用强化学习的方法,仍然未被开发。
对于使用强化学习的方法进行医疗资源分配,有三个主要的挑战:
(1)现实世界场景中的医疗资源分配意味着无数种决策选择,即过大的决策空间。这会导致设计和训练 RL agent的困难。
(2)由于流行病传播的潜伏性,我们无法准确描述流行病的整体感染情况,只能获得不完整的信息,这增加了决策的难度。
(3)由于我们无法在现实世界中任意设置大流行病的爆发,因此无法在现实世界大流行病传染过程中训练和测试 RL agent。这会导致实验的进行受到限制。
本文提出了层次化强化学习模型 (hierarchical reinforcement learning method),这个模型解决了上面说的三点挑战:
解决挑战(1):为了解决过大决策空间的困难,我们为 RL agent设计了一个分解的动作空间(decomposed action space)。它能够在现实世界范围内的复杂情况下生成有效的策略。 同时,我们设计了相应的训练算法,确保了RL agent得以高效训练。
解决挑战(2):为了解决不完善信息带来的困难,我们设计了一个基于门控循环单元GRU的框架来利用不完善信息。 通过从环境中获得的不完整信息重建流行病传播情况的完整信息,它为 RL agent做出决策提供了依据,这对性能有很大贡献.
解决挑战(3):我们建立了一个基于疾病模型和现实世界数据的大流行传播模拟器,结果证明它可以精确地模拟现实世界的情况,并且可以很好地作为我们的实验平台。
我们的主要贡献可以总结如下:
• 我们提出了一种具有分解动作空间的分层强化学习方法,以及相应的训练算法。 由于我们的优化设计,训练过程实现了高效,同时在现实世界范围内提供了有效和实时的策略。
• 我们提出了一个不完整信息的利用框架,从而在信息不完整的情况下取得了良好的性能,接近现实世界。
• 我们设计了一个基于真实世界数据和疾病模型的大流行病传播模拟器。 我们根据真实世界情况证明其准确性,在此基础上我们使用模拟器作为实验平台。 我们在不同环境下的两个城市进行了广泛的实验,结果表明我们的方法比所有基线平均高出 14.25%。
2 preliminary
2.1 疾病模型
在SEIR的基础上,本文提出了一个八状态模型:
S | 易感人群 (Susceptible),指未得病者,但缺乏免疫能力,与感染者接触后容易受到感染 |
E | 暴露人群 (Exposed),指接触过感染者,但暂无能力传染给其他人的人,对潜伏期长的传染病适用 |
Iu | 已经感染疾病,但是没有检测的人。这些人的出行不受任何限制 |
It | 已经感染疾病,同时被检测出疾病的人。这些人的出行被限制在某一个区域内 |
Ia | 已经感染疾病,但是疾病监测没有检测出阳性的人 |
Ih | 被送医治疗的感染者 |
R | 康复人群(recovered) |
D | 死亡人群(dead) |
图1展示了本文的SEIR模型中各状态之间的转化情况
β | 每一个感染状态的人(Iu+It+Ia+Ih),在单位时间内,通过和S状态的人之间的交互(I-S contact),导致的E状态人的增加数量——>这个衡量了疾病的传染情况 |
每一个E状态的人,在单位时间内,通过和S状态的人之间的交互(E-S contact),导致的E状态人的增加数量 | |
ε | 每一个E状态的人,在单位时间内,变成各个I状态的人的概率 |
α | 每一个I状态的人,在单位时间内,变成各个D状态的人的概率 |
μ | 每一个I状态的人,在单位时间内,变成各个R状态的人的概率 |
2.2 医疗资源
本文主要考虑两种医疗资源:床位和医用口罩
我们研究一个有N人口的城市,其中我们根据路网结构划分成M个区域(每个区域的人口是)
我们同时定义了以下的表示
Total Bed Number
| 所有医院可以提供的床位总和 | |
Available Bed Number
| 在时刻t,可用的床位的数量 | |
Total Mask Number
| 我们假设每一个人每天消耗一个医用口罩 是每天一个城市医用口罩的供应量 | |
Remaining Mask Number
| 在时刻t,剩余可用的医用口罩 | |
γ |
Mask Efficacy Factor
| 医用口罩有效过滤病毒的比例 |
mask coverage percentage
| 口罩覆盖率 |
即疾病原始的感染率为β0
那么如果有口罩之后,各个区域在时刻t的实际感染率为:
表示戴了口罩,同时口罩有效过滤病毒的比例,这一部分是可以抵御病毒的比例
2.3 问题描述
我们考虑医疗资源极度短缺的情况。在时刻t,当小于人们所需要的口罩数,小于医院需要的床位数。我们需要找到实时最高效的对M个区域的分配方案,这种分配方案可以有最少的损失。
经过T天的传播之后,流行病带来的损失可以由以下四种评估方式评定:
累计感染人数 | 在T天内,所有被感染过的人(包括死亡、康复和现在仍然在感染状态的人 |
累计死亡人数 | 在T天内,所有死亡人数 |
最大日增感染人数 | 在T天内,日增感染人数的最大值 |
最大日增死亡人数 | 在T天内,日增死亡人数的最大值 |
前面的两个衡量了疾病的严重程度,后两个衡量了基本的传播速度
2.3.1 医疗资源分配问题定义
在时刻T,给定一个由M块区域的城市,每块区域由人口组成。给定时刻t,可用的床位的数量和时刻t,剩余可用的医用口罩,以及目前的传染病传播情况,我们的目标是最小化疾病造成的损失,找到每个区域最佳的病床和医用口罩的分配策略和,其中分配方案满足
根据2.2的描述,我们可以计算时刻t,某一区域i的实际感染率:
3 方法
3.1 系统全览
整个模型由两部分组成:
1,不完全信息的使用:从环境中的不完全信息中重构完整信息
2,层次化强化学习模型:从第一步重构的完整信息中找到实时策略
代码部分: https://github.com/KYHKL-Q/Hierarchical-RL
3.2 不完全信息的使用
3.2.1 疾病传播信息的定义
在一个有M块区域的城市中,某一个疾病状态X(X在这几个状态中)是一个M维的向量,我们记为
表示在区域i中,状态为X的人的数量
3.2.2 模型介绍
在现实问题中,或者所有这8个状态的疾病传播信息是很难的。换言之,我们有的都是不完全的信息。
根据实际的情况,我们可以获得类似于It(已经感染疾病,同时被检测出疾病的人。),Ih(被送医治疗的感染者),D(死亡人数)的疾病传播信息;
但是像S(易感人群)、E(暴露人群)和Iu(已经感染疾病,但是没有检测的人。)的疾病传播信息则不太好求得。
R状态(康复人群)也不太好求得,因为有些只有轻微症状的人在尚未被检测阳性或者送医之前,在家里就已经康复了。
在现实世界中,S状态(易感人群)的人占多数,与此同时Ia状态(已经感染疾病,但是疾病监测没有检测出阳性的人)的人则很少。
因此,我们可以这么认为:除了状态S状态(易感人群)和Ia状态(已经感染疾病,但是疾病监测没有检测出阳性的人)之外,E(暴露人群)、Iu(已经感染疾病,但是没有检测的人。)、It(已经感染疾病,同时被检测出疾病的人。)、Ih(被送医治疗的感染者)、R(康复人群)和D(死亡人群)有着很广泛的波动范围,这几个状态的疾病传播信息可以很好地反映疾病的整体情况。这几个状态在帮助RL agent制定决策的时候起着很大的作用。
因此,不完整信息使用的目标是:通过可以观测得到的状态It,Ih和D,推测未知的状态E,Iu和R的情况。
我们利用GRU建模时间序列的能力,来进行信息的重构。
(注:这张图有问题,第三个应该是Ih)
GRU-RNN模型整体由三个分支组成,每个分支由1024个GRU组成,同时用Tanh作为激活函数。(三个分支是一个状态对一个呢?还是三个对三个呢?看完代码我再补上)
在每个分支的末尾,我们同时设计了一个1024*M(M是区域的数量)的全连接层。以便于将GRU中的隐层状态投影到最终的输出上。
由于输入和输出都是在特定区域,特定状态的人群的数量,这个数字是很大的,经过Tanh激活之后可能区别不大。于是我们在输入之后,输出之前分别研究了一个1:1000的缩放层,将数值放缩至一个合理的范围。
我们使用BPTT和Adam来进行训练,获得了很好的收敛结果。
3.3 分层强化学习
3.3.1 决策空间分解
典型RL方法在解决医疗资源配置问题时面临的一个巨大挑战是现实情况下面临的过大的行动空间。
一个城市通常有数百个地区(地区数记为M),有各种各样的医疗资源可供分配(资源种类的数量记为𝐾)。
因此,输出策略应该是一个形状为𝑀×𝐾的矩阵,它位于一个高维空间,导致一个非常大的行动空间。
此外,各要素之间存在约束:各类医疗资源的总可用量是固定的,这增加了RL agent做出正确决策的难度。
为了解决这个问题,我们设计了一个分解的行动空间来进行决策,而不是直接给出上面描述的矩阵。
对各类医疗资源,首先给出各地区的显著性排序。
我们设计了若干排序原则,包括根据感染人数、人口密度、区域人口流动强度及其组合进行排序。
决策的第一步是选择一个排序原则,该原则位于一个离散的行动空间,并给出显著性排序。
第二步是给出一个满足因子,一个介于0和1之间的浮点数,记为f。
在医疗资源配置的过程中,我们按照给定的显著性等级来考虑区域。我们用𝑈𝑖表示𝑖地区需要的某一种医疗资源的数量,将这类医疗资源的𝑓×𝑈𝑖分配给该地区,然后再转到下一个地区,即只满足其需求的𝑓。(并不一定排序在前面的f就一定大)
当没有更多的医疗资源时,分配过程就结束了。
因此,决策的第二部分是给出浮点数,因此它位于一个连续的动作空间中
我们将决策过程分解为两个步骤,将超大的行动空间分解为相对较小的离散和连续两个步骤,使得RL agent能够做出有效的决策。
此外,有两件事值得一提:
•在不同种类的医疗资源中,离散行动和连续行动都是独立的,即不同种类的医疗资源可以根据不同的显著性排名和满意度因子进行配置。
•每种医疗资源的离散和连续行动都随时间而变化,即实时策略。这两点确保了行动有足够的自由度,从而保持了无数的可能性,从而有可能实现最大限度地减少该流行病造成的损害的目标。
3.2.2 奖励函数
在RL 训练中,我们使用一个特别设计的奖励函数来衡量流行病传播情况的严重性。
我们用𝑠𝑖表示在𝑖时间步后的流行病传播情况。
表示在状态si的时候,各个区域状态为X的人的总数
于是,我们定义时间片i的单步奖励函数
其中:
C是一个常数
E是暴露人群
论文里是写的Iut,但我个人觉得这边应该是Iu
Iu+It表达的是感染了但是没有检测的人+感染了同时检测出阳性的人
当 时,也就是没有新增的时候 reward 最大,为C;只要有新增,那么括号里面的内容就会小于1,那么reward就会小于C
我们同时定义了长期的奖励函数Fi
表示未来奖励的折现因子
在有限步的问题中,求和运算可以在一个特定的时间节点终止
3.3.3 网络结构
在离散动作空间中(前面的第一步,算排序),每一种医疗资源使用一个DQN;
DQN 笔记 State-action Value Function(Q-function)_UQI-LIUWJ的博客-CSDN博客
在连续动作空间中(前面的第二步,算f值),每一种医疗资源使用一对Actor-Critic网络
强化学习笔记:Actor-critic_UQI-LIUWJ的博客-CSDN博客
这些网络的详细结构如图4所示,张量的形状随着研究城市区域数量的变化而变化。
所有网络都使用Leaky-ReLU作为激活函数。
DQN采用流行病传播情况的重建信息,并对每个排序原则给出估计的长期回报,同时选择回报最高的原则进入实时策略。
连续动作空间中的actor网络接受重建的信息,并给出最佳的满意度因子(f)【即action】。
为了确保满足因子限制在0到1之间,我们在网络的末端设置一个Sigmoid-Clip层,如下所示:
其中𝛿为手动设置的满意度因子下界,可近似设置为该城市医疗资源总量除以人口规模。
连续行动空间中的critic网络(critic network)只作用于训练过程。
它吸收环境信息和actor网络给出的满意度因子,输出给定满意因子的估计长期奖励。
换句话说,critic network通过policy gradient对actor network进行有监督训练。
特别地,我们在输入流行病传播信息后立即设计重新排序层,使输入载体中的元素进行交换。
这些层的作用是最大化相邻元素之间的关联度,从而有利于卷积层提取特征。(卷积层时DQN还是actor-critic在用?看完代码补充)
关联度是通过相应区域之间的人口流动强度来衡量的(定义见章节4.1)。
我们将输入向量中的𝑀个元素表示为𝑉𝑖,𝑖= 1,2,…𝑀并使用𝐶(𝑖𝑗) 𝑖≠𝑗之间的关系程度𝑉𝑖和𝑉𝑗
因此,问题可以表述为:
可以证明问题2和TSP (NP完全问题)是等价的,因此没有多项式时间来精确地计算之。
我们使用随机方法搜索1亿个可能的重排序序列(𝑀!总可能性),并选择最好的一个。虽然不是很精确,但我们得到了一个足够好的解决方案,以满足卷积特征提取的需要。
3.4 训练算法
现有的研究主要集中在离散动作空间和连续动作空间中训练RL agent的算法上。
然而,在我们的分解动作空间设计中,需要一种算法来训练一个RL agent同时在连续和离散动作空间中执行动作,这一点一直未被探索。
我们通过对广泛应用的DQN训练算法和DDPG算法进行改进,提出了一种新的算法。
我们复制每个网络生成相应的目标网络,并在训练过程中对网络进行软替换 soft replacement。
我们在训练中也采用经验重播 experience replay。
值得一提的是,该算法可用于训练具有任意𝐷个离散动作和任意𝐶个连续动作的RL agent。
在本篇文论中,我们考虑两种医疗资源,所以此时𝐶=𝐷= 2
我们使用 来表示参数为的DQN;
使用表示参数为的连续actor网络 。使用表示参数为的连续critic网络
其中
其中代表了对应的目标网络。
我们使用表示时刻t的离散动作,用表示时刻t的连续动作
表示时刻t的流行病传播信息
表示时刻t的reward
当使用来自经验重放缓冲区的𝑁样本的mini-batch处理来更新权重时,记为
(在状态时,如果我们采取离散动作以及连续动作,那么我们会得到奖励,进入后续的状态)
我们使用如下方式计算loss
(总的reward,DQN和actor-critic分别的reward)
使用TD的方式进行更新
4 实验部分
4.1 流行病传播模拟
由于我们不能任意地在现实世界中设定大流行爆发,因此训练一个RL agent在现实世界大流行传播中检验我们的方法是不现实的。因此,我们设计了一个传染病传播模拟器,包括疾病模型和人口流动模型。
我们采用2.1节中提到的COVID-19的八状态疾病模型,同时使用医学研究中描述COVID-19特征的参数[7,8,10,16,28],以保证疾病建模的真实性。
如3.1节所述,我们根据道路网络将城市划分为𝑀区域,这些区域很好地匹配了城市中的现实世界功能区。
该城市的总人口规模(记为𝑁)可在政府的官方网站上查询。
人口流动建模是基于真实世界的流动数据,通过与互联网服务提供商合作,收集用户访问基于位置的服务的GPS坐标。
考虑到隐私保护,我们消除了用户的详细信息,并保持以下数据:
- 时刻𝑡从地区𝑖到地区𝑗的用户数量。
- 时刻t在地区i的总用户人数
我们收集了北京和上海两个城市的数据,详细信息如表1所示。注意,在北京,我们只考虑市中心地区,稍后简称为Beijing。
我们计算在时间维度上的平均值,得到𝑖区域内的平均用户数(表示为)。
然后,我们通过比较𝑁和各区域,来估计各区域内的人口规模,因为某一区域内互联网服务用户的空间分布与整体人口分布相似。(按照各区域的比例分配N)
因此,𝑖地区的人口密度也是可求得的,通过计算该地区的面积。
我们可以通过和的比率来估计人口流动强度,即从区域𝑖在时间𝑡前往区域𝑗的可能性,记为。 请注意,由于早晚、工作日和周末之间的人口流动性不同而随时间变化。
模拟过程如算法 2 所示,其中每个时间步长为 30 分钟,以提供高时间分辨率的结果。
我们评估我们实施的模拟器的精度,确保它作为实验平台表现良好。
我们在北京市中心进行了为期 2 周的模拟,然后将结果与 2020 年 6 月北京新发地疫情爆发期间的官方报告 1进行了比较。
考虑到模拟的随机性和模拟中的平均感染病例数,我们进行了 10 次模拟 在图 5 中与现实世界中的情况一起绘制。
结果显示,模拟和现实世界情况之间的决定系数 = 0.984。 它表明模拟器可以精确地模拟现实世界的情况,这可以支持我们的分层强化学习方法的评估。
4.2 实验配置
为了全面检查我们的方法的性能,我们设计了三个实验,在两个城市的各种初始感染情况下进行。 设置如表 2 所示,在每个实验中,𝐼0 初始感染病例平均分布到 𝐾个 初始区域。
我们模拟了四个月(120天)的疫情传播过程,在此期间,我们将前两个月设置为自由传播期,后两个月采取应对措施。
我们每 24 小时调整一次实时策略,并将两个城市为治疗 COVID-19 患者 配备的病床总数𝑁𝐵设置为 10000。
我们设置了两个城市的每日外科口罩供应数量 ( 𝑁𝑀 ) 略低于人口规模的 10%,这勾勒出医疗资源稀缺的情况。
我们将口罩功效因子 𝛾 固定为 0.9,这是外科口罩的典型值 [3]。
实验 1 和 2 之间的对比显示了聚集爆发和分散爆发之间的差异,而实验 1 和 3 之间的对比涵盖了完全不同城市的情况。
4.3 对比试验
我们将我们的方法与几个bbseline进行比较,包括公共卫生领域的专家解决方案和基于 RL 的方法。
专家解决方案包括:
• 无医疗:未分配医疗资源的情况,作为空白对照组。
• 专家严重性[1]:根据大流行传播的严重性顺序分配医疗资源。 感染病例较多的地区具有绝对优先权。
• 专家人口[9]:根据人口密度分配医疗资源。 人口密度较高的地区具有绝对优先权。
强化学习方法以及强化学习与专家解决方案的结合如下:
• DQN Greedy:一种非分层强化学习方法,应用一个 DQN 来选择每种医疗资源的重要性排序原则。 排名较高的地区具有绝对优先权。
• DQN 专家[5]:DQN 和专家解决方案的组合。 公共卫生研究表明,如果口罩覆盖率达到大约 86%,则可以有效控制 COVID-19 的大流行。 因此,DQN 用于选择外科口罩的排名原则,而满意度因子固定为 0.86。 对医院病床的操作与 DQN Greedy相同。
这些baseline 方法涵盖了公共卫生研究中的权威专家解决方案和典型的 RL 解决方案。 此外,通过结合 RL 和专家解决方案,最后一个基线优于前一个基线,结果证明是最强的。
4.4 主要结果和分析
我们基于模拟器评估训练好的模型。 考虑到随机性,我们将所有模拟重复 10 次。
首先,我们考虑完美的信息情况,我们的方法直接从环境中获取所有 8 个状态的精确疾病传播信息,而无需重建信息,基线方法也是如此。
由第 2.3 节中定义的四个指标测量的结果(越低越好)如表 3 所示,其中我们将指标值除以人口规模,括号中显示了 10 次模拟中的标准偏差。
事实证明,我们的方法在所有 3 个实验中都优于所有基线方法。
然后我们研究了信息不完善的情况,我们仅使用 3 个状态【It(已经感染疾病,同时被检测出疾病的人。)、Ih(被送医治疗的感染者)和𝐷(死亡人数)】的信息来训练基于 DQN 的基线,并且由于缺乏感染病例的信息,专家严重性无法发挥作用。
我们的方法通过信息重建工作,在不完善的信息中利用框架中RNN层数的影响如图6所示。准确率是相对误差小于30%的输出值的百分比。
我们注意到,在北京和上海的情况下,由于使用超过 4 层的过拟合,准确率没有明显的提高甚至下降,而随着层数的增加,训练时间大大增加。 因此,我们使用 4 个 RNN 层,足够用于信息重建,同时可以兼顾到有效性和准确性。
以相同指标衡量的最终结果如表 4 所示。
图 7 显示了我们的方法和基线之间的比较。 我们将最强基线(DQN 专家)的性能标准化为 1.0,并通过所有 4 个指标的平均值计算大流行造成的相对损害。
所有结果证明,我们的方法可以提供更有效的实时医疗资源分配策略,大大减少了大流行造成的损失。
在数量上,与最强基线相比,在完美信息情况下的平均性能增益为 11.00%,而在不完美信息情况下为 14.25%。
不完美信息下更高的性能增益证明了不完美信息利用的设计在不完美信息下带来了额外的好处,更接近现实世界的情况。
我们以实验 1 中的病床分配为例,将我们的方法应用 10 天和 30 天后的策略可视化在图 8 的北京地图上,颜色越深表示医疗资源越多。 它表明,在大流行传播过程中,策略会有所不同,并且一些关键区域被分配了更多的资源,即高效和实时的策略。
4.5 训练过程的收敛性和有效性
我们在北京和上海的数据集上训练 RL 智能体,北京的训练过程如图 9 所示。由于分解动作空间的设计,大大简化了决策过程,因此轻量级网络可以满足我们的需求。 结合我们的训练算法,我们可以高效地进行训练过程。 在没有高性能 GPU 的笔记本电脑上,平均每一步只消耗 8.26 秒,而在笔记本电脑上,整个 100 步不到 15 分钟。 第 3.4 节中定义的训练损失在训练过程中迅速下降,表明收敛性良好。