本文使用《GPU 云服务器用户实践征文》活动提供的GPU实现了对论文 BRITS:Bidirectional Recurrent Imputation for Time Series 代码的复现。
代码链接:https://pan.baidu.com/s/149OVAUDVhyXHzJLs454egQ?pwd=go05
在许多分类/回归任务中,时间序列被广泛用作信号。时间序列包含许多缺失值是普遍存在的。给定多个相关的时间序列数据,如何填充缺失值并预测其类别标签?现有的插补方法通常对潜在的数据生成过程施加强有力的假设,例如状态空间中的线性动力学。在本文中,我们提出了一种基于递归神经网络的时间序列数据缺失值插补新方法BRITS。我们提出的方法直接学习双向循环动力系统中的缺失值,无需任何特定假设。将输入值作为RNN图的变量处理,并在反向传播过程中进行有效更新。英国人有三个优势:(a)它可以处理时间序列中的多个相关缺失值;(b) 它推广到具有非线性动力学的时间序列;(c) 它提供了一个数据驱动的插补程序,适用于缺少数据的一般设置。我们在三个真实数据集上评估了我们的模型,包括空气质量数据集、医疗保健数据和人类活动的定位数据。实验表明,我们的模型在插补和分类/回归精度方面都优于最先进的方法。
我们评估了2012年PhysioNet Challenge中的医疗数据模型,该模型由重症监护病房(ICU)的4000个多变量临床时间序列组成。每个时间序列包含35个测量值,如白蛋白、心率等,这些测量值在患者入院后48小时内不定期采样。我们强调,这个数据集非常稀疏。总共有高达78%的缺失值。对于这个数据集,我们同时执行插补任务和分类任务。为了评估插补性能,我们从数据中随机剔除10%的观察测量值,并将其作为基本事实。同时,我们将预测每位患者的住院死亡作为一项二元分类任务。请注意,消除的测量值仅用于验证插补,模型永远看不到它们。
以模型 rits_i 为例在多个平台测试运行。
论文标准
训练loss和验证的MAE、MRE如下,和论文所述还有差距
训练loss和验证的MAE、MRE如下,和论文中所给的结果有较大差距。
测试结果:
训练loss和验证的MAE、MRE如下,和论文中所给的结果有较大差距。
epoch: 999, batch: 13/13, avg loss: 3.940 AUC: 0.787 MAE: 0.557 MRE: 0.784 测试结果: AUC: 0.637 MAE: 1.297 MRE: 1.827
① 可能是paddle的架构和torch不一样,修改代码的时候有些没修改过来?
② 可能是数据量大,1000 epoch不利于训练
MAE和MRE都超过论文数值
读取保存的模型,加载数据进行评估:
CPU利用率很高,但是内存、GPU的利用率却很低
即使同时训练两个模型,GPU的利用率还是基本稳定在20%以下
推测可能是因为代码中数据加载和处理部分较为复杂,不断切换到CPU中?
下面三张图分别时CPU、内存和GPU利用率
14:50开始训练,同时训练两个模型
BRITS
BRITS相较于RITS-I,loss下降的更平稳。
方法 | 我的填补 | 论文的填补 | 我的分类 | 论文的分类 |
---|---|---|---|---|
GRU-D | 0.612(85.94%) | 0.559(77.58%) | 0.903 | 0.828 |
M-RNN | 0.404(56.73%) | 0.451(62.65%) | 0.935 | 0.800 |
RITS-I | 0.372(52.21%) | 0.395(54.80%) | 0.996 | 0.821 |
BRITS-I | 0.367(51.45%) | 0.361(50.01%) | 1.000 | 0.831 |
RITS | 0.322(45.20%) | 0.300(41.89%) | 0.939 | 0.840 |
BRITS | 0.299(41.98%) | 0.281(39.14%) | 1.000 | 0.850 |
1、 我实验的分类任务的效果全都优于论文所给,怀疑是不是哪步操作有误。
2、不知道训练需要多少条数据。论文没有提到训练用的数据是多少条,整个数据集是有4000条数据,但是论文所附代码只包含400条。
3、上表中数据也只训练了400条数据,测试也是在这400条数据中抽取的,是不是会造成在训练集上的效果更好(即疑问1)?
因此,我尝试从4000条数据中加载数据进行测试
使用BRITS模型的效果如下:
分类效果降了下来,但是填补效果也降了下来。
使用GRU-D模型的效果如下:
对比模型的分类效果降了下来,但是填补效果也降了下来。
因此,怀疑是参数调整不如论文?
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。