来源:Deephub Imba本文约1700字,建议阅读9分钟本文为你介绍了医学时间序列数据研究的背景,并提出了3种专为rnn设计的缺失数据填补方法。
这些方法都是专为RNN设计,它们都经过了广泛的学术评估,而且十分的简单。
大量医疗数据例如心电图、体温监测、血压监测、定期护士检查等等本质上都是时间序列数据。在这些医学图表的趋势、模式、高峰和低谷中嵌入了大量有价值的信息。医疗行业要求对医疗时间序列数据进行有效分析,这被认为是提高医疗质量、优化资源利用率、降低整体医疗成本的关键。
一种有前途的医学时间序列分析形式是通过RNN来实现。RNN 因其建模能力和可以处理可变长度输入序列的能力而受到医学研究人员的欢迎。研究人员通常将时间序列数据划分为均匀的时间步长,例如 1 小时或 1 天。一个时间步长内的所有数据点将通过平均或其他聚合方案聚合。这种处理方式有两个优点。首先,它减少了时间序列数据序列的长度。其次,原始原始数据点通常在时间上间隔并不规则,这种方式可以对时间上下文进行归一化。在这个预处理步骤之后,数据几乎可以用于 RNN 处理。但是有一个非常现实的问题:如果在给定的时间步长内没有数据怎么办?
上述问题在医疗环境中很重要,因为丢失的医疗数据通常不是随机丢失的。数据本身的缺失具有临床意义。例如,医院工作人员可能会停止测量被认为已经稳定的患者的体温。或者也许患者的情况需要另一种不同类型的测量来取代以前的测量方法。因此,通常的零填充或插补方法往往会产生次优性能。
在这篇文章,我们将回顾 3 种简单的方法来处理与 RNN 一起使用的时间序列研究中缺失的医学数据。后一种方法都是建立在前一种方法的基础上,具有更高的复杂性。因此强烈建议按照它们出现的顺序阅读。
这篇论文(arxiv:1606.04130)提出的简单缺失编码方法表明,应该明确编码给定数据点实际上是估算的而不是实际观察到的值。这种显式编码为RNN提供了一个信号,可以让RNN注意到数据的缺失。如图1 (b)所示,其中m表示x的缺失,其中1表示存在,0表示不存在(如公式1所定义)。输入是x和m的拼接。
确认值是否缺失的公式:
这种方法对该研究论文中提出的实验产生了有意义的改进。虽然数据有可能不同,但这是一个非常简单直观的想法,值得一试。
在上述方法的基础上,除了显式编码缺失之外,这篇论文(https://www.nature.com/articles/s41598-018-24271-9)还建议显式编码一个值与最近观察到的值之间的时间距离。所以现在的RNN的输入是所有三个值编码的串联,即输入 x、缺失信号 m 和时间距离值 δ。公式 2 和图 2。
以下是时间距离的计算公式:
根据论文中提出的实验,该方法在缺失的显式编码之上带来了很好的改进,结果如下所示。
再次以上述方法为基础,同一篇论文提出了一种估算值的衰减机制。第一步我们应用前向插补来使用最近的观察值但是如果缺失值的时间很长怎么办?我们应该无限期地使用那些旧的观察值吗?考虑一下现实世界的场景:医院工作人员停止跟踪指标,因为他们认为它已经稳定。但指标值可能仍处于正常范围的远端,但相信它最终会回到一个好的中位数。这意味着在没有观察到的数据的情况下,有充分的理由相信当前的指标值会持续一段时间,但最终会“衰减”回良好的医疗默认值。
衰减因子 γ 由权重矩阵 W 和偏差 b 确定,应用于时间距离 δ(参见公式 3),然后发送到上限为 1 的反向 exp 函数。W 和 b 在时间步长和在训练期间共同学习。
下图是衰减因子的计算公式:
在任意给定的时间步长t,如果x被观测到,我们使用x。否则,我们使用t′最后一次观测的值,衰减为x的均值。RNN的最终输入见公式4。
该论文文还将类似的衰减机制应用于它们的RNN模型的隐藏状态,也产生了最好的结果。但是由于我们讨论的是RNN输入的原始数据的处理,就不详细说明了。
在这篇文章中,我们介绍了医学时间序列数据研究的背景,并提出了3种专为rnn设计的缺失数据填补的简单方法,这三种方法都可以产生更好的结果,如果你有兴趣可以在实际应用中实验一下。
作者:Eileen Pangu
编辑:黄继彦