2、RELATED WORK

从2014年,GAN框架就引起了大家的关注,大多数工作集中在图像生成。(Choi et al., 2017) 设计了 GAN 来生成 综合性的电子病历数据(EHR)。这些EHRs包含二值、多值变量,例如 ICD-9编码、药物(medication)、程序代码(procedure codes)。他们关注于一位患者的 离散值的数据、生成的 snapshots,与之对应的我们关注的是 真实、时间序列数据。未来工作可以结合这些研究来生成 多模态综合医疗时间序列数据(multi-modal synthetic medical time-series data)
多数基于 GANs 的序列数据生成器 关注于自然语言处理任务中的 discrete tokens (Yu et al., 2016),这篇文章采用一种基于强化学习(RL)的方法对GAN进行训练。我们只调研到一个利用GAN生成连续值(continuous-valued)序列的任务,其目的是使用带有 LSTM生成器和鉴别器的GAN 生成多音音乐(Mogren, 2016)。主要的区别在于架构:我们不用双向鉴别器,生成器的输出不会作为下一步的输入。再者,我们提出 a conditional version of this Recurrent GAN
Conditional GANs (Mirza & Osindero, 2014; Gauthier, 2014) 给模型附加了 information,从而允许我们干预数据生成过程。该方法主要用于图像生成任务(Radford et al., 2015; Mirza & Osindero, 2014; Antipov et al., 2017)。最近,Conditional GANs 架构也被用于自然语言处理,包括翻译 (Yang et al., 2017) 和 对话生成 (Li et al., 2017),他们都没有用RNN作为鉴别器,并且如前所述, 由于数据的离散性,使用RL训练模型
在这项工作中,我们还介绍了一些新的方法来评估GANs,利用生成的合成数据的能力来训练有监督模型。在之前的研究中,一个 GAN-based semisupervised learning approach 被提出(Salimans et al., 2016)。然而我们的目标是生成可以用于训练 在GAN训练好后任务未知的模型 的数据。(个人理解:训练GAN生成数据,不针对特定的任务,而是针对未知任务)
我们简单地讨论 differentially private stochastic gradient descent (Abadi et al., 2016) 用于生成 a RGAN with stronger privacy guarantees,这对敏感的医疗数据尤其重要。另一种方法是使用 PATE方法 (Papernot et al., 2016)来训练鉴别器。在这种情况下,不是在梯度中引入噪声(如(Abadi et al., 2016)),而是训练一个学生分类器来预测一组教师的噪声投票,每个教师都在数据的不相交集上训练。

3、MODELS: RECURRENT GAN AND RECURRENT CONDITIONAL GAN

本文工作中提出的模型遵循传统GAN的架构,其中的生成器和鉴别器都可以使用RNN来取代。因此,我们提出 Recurrent GAN (RGAN) —— 可以生成 real-valued 序列数据,Recurrent Conditional GAN (RCGAN) —— 可以生成受限于一些输入条件(conditional inputs)的 real-value 序列数据。

时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_时间序列

如上图,Generator RNN 在每一个时间步采用不同的随机种子,也可以加上一个额外的输入,如果我们想用额外的数据来约束生成的序列。

时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_时间序列_02

上图展示鉴别器RNN如何使用生成的序列,如果它是RCGAN,则加上额外的输入,并为输入序列的每一个时间步长生成一个合成的或真实的分类。

3.1.1 MAXIMUM MEAN DISCREPANCY

一个隐式学得真实数据分布的 GAN 是 successful。我们通过研究它产生的样本来评估它。采用 maximum mean discrepancy (MMD) (Gretton et al., 2007) 来评估比较理想,这个方法已经被用为 generative moment matching networks (Li et al., 2015) 的训练目标。MMD 输出两个数据集的样本——一组来自GAN,一组来自真实数据分布——是否是由同一个分布生成的。它通过比较样本的统计量来实现这一点。在实践中,我们考虑两组样本(MMD2)之间统计量的平方差,并用核函数替换两个样本(的函数)之间的内积。给定一个核函数 时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_数据_03 和 样例 时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_数据_04时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_数据_05,一个MMD2的无偏估计为:

时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_时间序列_06


在时间序列之间定义适当的内核是一个活跃的研究领域。然而,许多挑战来自调整时间序列的需要。在我们的例子中,生成的和真实的样本已经在时间维度上进行了补齐。然后我们将时间序列看做 vectors(或是matrices,在多维的情况下)进行比较,并且使用径向基核函数(RBF),使用 L2范数 或 Frobenius 范数 衡量两个 vectors/matrices 之间的距离。

时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_时间序列_07


为了选择合适的核带宽 时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_数据_08,我们在两个分布之间最大化MMD检验幂的 t-statistic 的估计量(Sutherland et al., 2016);

时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_时间序列_09


其中,时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_数据集_10 是 MMD2估计量的渐进方差。我们在训练期间使用验证集的分割来实现这一点——集合的其余部分使用优化的带宽来计算MMD2。与 (Sutherland et al., 2016) 相同,我们将混合内核定义为具有两个不同核带宽 时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_数据_08

5、LEARNING TO GENERATE REALISTIC ICU DATA

本文的主要目标之一是建立一个能够生成真实医疗数据集的模型,特别是ICU数据。
为此,我们的工作基于最近发布的 Philips eICU database。该数据集是由飞利浦公司提供的重症监护远程保健程序收集的。它包含了来自全美208个护理单位的大约20万名患者,共有224,026,866个条目,分为33个表格。
从这些数据中,我们着重于生成由床边监测仪测量的四个最常记录、有规律采样的变量:脉搏血氧仪测量的氧饱和度(SpO2)、心率(HR)、呼吸频率(RR)和平均动脉压(MAP)。在eICU数据集中,这些变量每五分钟测量一次。为了减少我们考虑的序列的长度,我们 每隔15分钟将样本向下测量一次,取每个窗口的中值。这大大加快了对基于LSTM的GAN的培训,同时仍然捕获了数据的相关动态。 (思考:是否会使得异常数据被平滑??)
在接下来的实验中,我们考虑病人入住ICU的开始,认为这是他们护理的关键时刻。我们关注他们停留的头4个小时,结果是对每个变量进行16次测量。虽然医疗数据通常充满了缺失的值,但在这项工作中,我们通过 丢弃缺失数据的患者 (向下采样后)来绕过这个问题。通过这种方式对数据进行预处理,我们最终得到了17693名患者的队列。最受限制的是对 non-missing MAP values 的需求,因为这些值的测量是 invasively 进行的。

5.1.1 TSTR TASKS IN EICU

ICU产生的数据很复杂,因此非医学专家很难发现其中的模式或趋势。因此,一个显示ICU综合数据的图不能提供足够的信息来评估其与真实数据的实际相似性。因此,我们使用TSTR方法评估ICU RCGAN的效果。

要执行TSTR评估,我们需要对数据执行一个或多个监督任务。ICU的一个相关问题是病人在不久的将来是否会变得危重——这是一种早期预警系统。对于生成动态时间序列数据的模型,这是特别合适的,因为数据中的趋势可能是最具有预测性的。基于我们的四个变量 (SpO2, HR, RR, MAP) ,我们定义关键阈值(‘critical thresholds’)并生成二进制的标签表示在患者将来一个小时对应的变量是否会超过阈值,也就是在第4-5小时之间,并且我们认为前4个小时是符合的。阈值设置如下表所示:

时间分层病例交叉研究相当于泊松时间序列回归模型 医学时间序列分析_数据_12


其中SpO2没有上限,因为它是一个百分比,100%表示理想条件。

对于MNIST,我们从真实的数据标签中抽取标签作为样本,并将其用作RCGAN的条件输入。这确保了标签在合成数据集中和真实数据集中的分布是相同的,考虑到标签不是独立的这一事实(患者不太可能同时患有高低血压)。

按照算法1,我们训练RCGAN 1000个epoch,每50个epoch保存一个版本的数据集。然后,我们使用TSTR对合成数据进行评价。我们使用交叉验证选择最好的合成数据集的基础上,分类器的性能,但由于我们假设它还可能用于未知的任务,我们只使用7个任务中的3个感兴趣的任务进行交叉验证步骤(用斜体表示在表2)。这个实验的结果展示在表2中,比较了性能通过一个随机森林分类器的训练预测7个感兴趣的任务,在一个实验中使用真实的数据,在另一个实验中使用合成的数据。

6、IS THE GAN JUST MEMORISING THE TRAINING DATA?

对于TSTR在MNIST和eICU中的表现,一种解释可能是GAN只是简单地“记忆”训练数据并重新生成它。如果是这样,用于训练GAN的数据将会被泄露,当用于敏感的医疗数据的时候,会有数据隐私方面的问题。关键是模型的训练数据不能被 adversary 恢复。 此外,typical GAN objective (GAN目标) 激励生成器重现训练示例,我们希望它不要过度拟合于训练数据,而是学习一个隐式分布(implicit distribution)在训练样例中表现良好。
为了回答这个问题,我们执行了三个测试——一个是定性测试,两个是统计测试,概述在下面的小节中。虽然这些评估本质上是经验主义的,但我们仍然相信,提出和测试的隐私评估措施对于快速检查RGAN生成的数据的隐私属性非常有用,但没有强大的隐私保障。