Using Autoencoders and Automatic Differentiation to Reconstruct Missing Variables in a Set of Time Series

基于自编码器补全缺失特征值

背景:不同的样本的特征值可能不完全一致,也有可能有部分样本的特征值会有所缺失,也有可能数据的来源不一致,比如对于同一个实验,不同的实验室得到的最终数据标注特征不一定一致,当想要混合使用这些数据的时候就必须天填充缺失值。

为了使用特征值数量不同的样本,首先就必须统一特征值的数量。那么有两种策略可以选择,一个是使用共同都有的特征,直接丢弃掉不同的特征,这种策略会导致特征值数量降低,并且有可能样本的特征值并没有交集。第二种策略是使用某种技术来填充特征值,使特征值少的样本经过填充之后与其他样本具有同样的特征。第二个策略有一个前提要求:缺失的特征值必须与其他的特征值有一定的关系。如果没有关系的话,相当于这个特征是独立于其他的,这个时候如果还使用其他的特征预测这个特征的话,无异于“猜”。

论文中模型实现的功能:

能够对不同的特征子集进行补全,并且缺失的特征值可以是多个。

模型原理:

模型训练:

image-20251027155824973

模型的训练就是使用自编码器进行训练,输入和输出是一致的都是特征值最全的一组样本。注意此训练的参数是自编码器中的参数。

一旦模型训练完成之后,固定自编码器中的参数。

预测缺失值:

这篇论文中预测缺失值的方式与其他的方式很不一样。其他很多时候,当一个模型训练好之后,将输入送入模型,模型得到的结果就是输出。但是此处则不一样。

模型如下所示:

image-20251027160823709

首先XredX_{red}是没有已有的特征,XmissX_{miss}是缺失的特征.XmissX_{miss}看作一个参数,一个可训练的参数,初始值为0。

然后将X送入训练好的自编码器,能够得到输出Xˇ\check{X},然后就能得到一个损失函数,此时的损失函数只使用已知的特征进行计算:

image-20251027161759197

因为自编码器的参数已经固定,损失函数输出可以看作一个只与XmissX_{miss}有关的函数。

此时有一个核心思想:最优的XmissX_{miss}一定会使LredL_{red}最低

那么现在问题就变成了找到最优的XmissX_{miss}使LredL_{red}最低,

image-20251027162224581

可以使用梯度下降来求得最优的XmissX_{miss}

具体算法:

image-20251027162252434

论文中使用的自编码器的具体模型:

image-20251027162706462