【论文阅读】Probabilistic Imputation for Time-series Classification with Missing Data

news2024/9/21 11:15:42

Probabilistic Imputation for Time-series Classification with Missing Data

论文链接:https://icml.cc/virtual/2023/poster/23522

作者:SeungHyun Kim · Hyunsu Kim · EungGu Yun · Hwangrae Lee · Jaehun Lee · Juho Lee

机构:韩国科学技术院(KAIST),赛视智能(Saige Research),三星研究院

关键词:时间序列数据插补,概率模型,不确定性

参考文献:Kim S H, Kim H, Yun E, et al. Probabilistic imputation for time-series classification with missing data[C]//International Conference on Machine Learning. PMLR, 2023: 16654-16667.

摘要

实际应用的多变量时间序列数据通常包含大量缺失值。对此类缺失值进行分类的主要方法是使用特定值(零、平均值、相邻时间步长的值)或可学习参数进行启发式插补。然而,这些简单的策略没有考虑到数据生成过程,更重要的是,由于缺失值的多种可能性,无法有效地捕捉预测中的不确定性。在本文中,提出了一种新的概率框架,用于对缺失值的多变量时间序列数据进行分类。模型由两部分组成:用于缺失值插补的深度生成模型和分类器

Method

提出的方法在MNAR假设下将supMIWAE扩展到时间序列数据

设可观察值 x 1 , T o x _ { 1 , T } ^ { o } x1,To ,缺失值 x 1 , T m x _ { 1 , T } ^ { m } x1,Tm ,缺失值的掩码 s 1 , T s _ { 1 , T } s1,T ,标签 y y y,潜在空间向量 z 1 : T z _ { 1 : T } z1:T

Prior

假设Gaussian过程先验对 z 1 : T z_{1:T} z1:T 潜在空间中的时间相关性进行编码,可得先验 p θ ( z 1 : T ) p _ { \theta } ( z _ { 1 : T } ) pθ(z1:T)

p θ ( z 1 : T ) = ∏ j = 1 d N ( z 1 : T , j ∣ 0 , K ) p _ { \theta } ( z _ { 1 : T } ) = \prod _ { j = 1 } ^ { d } N ( z _ { 1 : T , j } | 0 , K ) pθ(z1:T)=j=1dN(z1:T,j∣0,K)

K i j = k ( t i , t j ) i , j ∈ { 1 … T } K _ { i j } = k ( t _ { i } , t _ { j } ) \quad i , j \in \left\{ 1 \ldots T \right\} Kij=k(ti,tj)i,j{1T}

其中, k ( . , . ) k(.,.) k(.,.) 是核函数,在本文的所有实验中都使用 Cauchy 核。

Decoder

对观察到的 p θ ( x 1 : T o ∣ z 1 : T ) p _ { \theta } ( x _ { 1 : T } ^ { o } | z _ { 1 : T } ) pθ(x1:Toz1:T) 的解码器以自回归方式定义:

p θ ( x 1 , T o ∣ z 1 , T ) = ∏ t = 1 T N ( x t o ∣ μ d e c ( z 1 , t ) , d i a g ( σ d e c 2 ( z 1 , t ) ) ) p _ { \theta } ( x _ { 1 , T } ^ { o } | z _ { 1 , T } ) = \prod _ { t = 1 } ^ { T } N ( x _ { t } ^ { o } | \mu _ { d e c } ( z _ { 1 , t } ) , d i a g ( \sigma _ { d e c } ^ { 2 } ( z _ { 1 , t } ) ) ) pθ(x1,Toz1,T)=t=1TN(xtoμdec(z1,t),diag(σdec2(z1,t)))

其中$ (\mu _ { d e c } ( z _ { 1 , t } ) , \sigma _ { d e c }( z _ { 1 , t } ))_{t=1}^{T} $用具有因果掩码的transformer定义。

h t = T r a n s f o r m e r d e c ( z 1 : t ) h _ { t } = T r a n s f o r m e r _ { d e c } ( z _ { 1 : t } ) ht=Transformerdec(z1:t)

( μ d e c ( z 1 : t ) , σ d e c ( z 1 : t ) ) = M L P d e c ( h t ) ( \mu _ { d e c } ( z _ { 1 : t } ) , \sigma _ { d e c } ( z _ { 1 : t } ) ) = M L P _ { d e c } ( h _ { t } ) (μdec(z1:t),σdec(z1:t))=MLPdec(ht)

对观测 p θ ( x 1 : T o ∣ z 1 : T ) p _ { \theta } ( x _ { 1 : T } ^ { o } | z _ { 1 : T } ) pθ(x1:Toz1:T)和缺失 p θ ( x 1 : T m ∣ z 1 : T ) p _ { \theta } ( x _ { 1 : T } ^ { m } | z _ { 1 : T } ) pθ(x1:Tmz1:T)都使用相同的Decoder。

Missing model

缺失模型 p ψ ( s 1 : T ∣ x 1 : T ) p _ { \psi } ( s _ { 1 : T } | x _ { 1 : T } ) pψ(s1:Tx1:T)被假设为随时间步长和特征的独立伯努利分布:

p ψ ( s 1 : T ∣ x 1 : T ) = ∏ t = 1 T ∏ j = 1 d B e r n ( s t , j ∣ σ m i s , t , j ( x 1 : T ) ) p _ { \psi } ( s _ { 1 : T } | x _ { 1 : T } ) = \prod _ { t = 1 } ^ { T } \prod _ { j = 1 } ^ { d } B e r n ( s _ { t , j } | \sigma _ { mis , t , j } ( x _ { 1 : T } ) ) pψ(s1:Tx1:T)=t=1Tj=1dBern(st,jσmis,t,j(x1:T))

σ m i s ( x 1 : T ) = M L P m i s ( x 1 : T ) \sigma _ { mis } (x_{1:T})=MLP_{mis}(x_{1:T}) σmis(x1:T)=MLPmis(x1:T)

Classifier

使用基于 transformer 的模型构建分类器:给定一个时间序列数据 x 1 : T x_{1:T} x1:T 将观测值 x 1 : T o x_{1:T}^{o} x1:To 和从解码器生成的插补缺失值打包在一起,首先使用沿时间轴的一维 CNN 处理数据以计算 r 1 : T = C N N ( x 1 : T ) r_{1:T} = CNN(x_{1:T}) r1:T=CNN(x1:T) 。 然后用transformer模块处理 r 1 : T r_{1:T} r1:T 来计算输出 h T h_T hT。条件分布 p λ ( y ∣ x 1 : T o , x 1 : T m ) p _ { \lambda } ( y | x _ { 1 : T } ^ { o } , x _ { 1 : T } ^ { m } ) pλ(yx1:To,x1:Tm) 定义为

C a t e g o r i c a l ( y ∣ S o f t m a x ( L i n e a r c l s ( h T ) ) Categorical(y | Softmax(Linear_{cls}(h_{T})) Categorical(ySoftmax(Linearcls(hT))

在前向传递过程中,分类器获取观察到的输入 x 1 : T o x_{1:T}^{o} x1:To 和从解码器 p θ ( x 1 : T m ∣ z 1 : T ) p _ { \theta } ( x _ { 1 : T } ^ { m } | z _ { 1 : T } ) pθ(x1:Tmz1:T)生成的缺失值。 实验发现采用 GRU-D 是有益的,而不是直接使用生成的缺失值 x 1 : T m x _ { 1 : T } ^ { m } x1:Tm ,将衰减的缺失值计算如下:

x ~ 1 : T : = ( x 1 : T o , x 1 : T m ) w h e r e x 1 : T m ∼ p θ ( x 1 : T m ∣ z 1 : T ) \tilde { x } _ { 1 : T } : = ( x ^ { o } _ { 1 : T } , x ^ { m } _ { 1 : T } ) \quad w h e r e \quad x ^ { m } _ { 1 : T } \sim p _ { \theta } ( x ^ { m } _ { 1 : T } | z _ { 1 : T } ) x~1:T:=(x1:To,x1:Tm)wherex1:Tmpθ(x1:Tmz1:T)

x ^ t , j = D e c a y ( s t , j , x t , j , γ x ^ t , j , x t ′ , j , x ~ t , j ) \widehat { x } _ { t , j } = D e c a y ( s _ { t , j } , x _ { t , j } , \gamma _ { \widehat { x } _{t,j} } , x _ { t^ { \prime } , j } , \tilde { x } _ { t , j } ) x t,j=Decay(st,j,xt,j,γx t,j,xt,j,x~t,j)

其中, γ x ^ t = e x p ( − m a x ( 0 , W x ^ δ t + b x ^ ) \gamma _ { \widehat { x }_t } = e x p ( - m a x ( 0 , W _ { \widehat { x } } \delta _ { t } + b _ { \widehat { x } } ) γx t=exp(max(0,Wx δt+bx ) 是可学习的衰减。

Encoder

给定上面定义的生成模型,引入了 ( x _ { 1 : T } ^ { m } , z _ { 1 : T } ) 的变分分布,其分解为:

p θ ( x 1 : T m ∣ z 1 : T ) q ϕ ( z 1 : T ∣ x 1 : T o ) p _ { \theta } ( x _ { 1 : T } ^ { m } | z _ { 1 : T } ) q _ { \phi } ( z _ { 1 : T } | x _ { 1 : T } ^ { o } ) pθ(x1:Tmz1:T)qϕ(z1:Tx1:To)

这里,编码器 q ϕ ( z 1 , T ∣ x 1 : T o ) q _ { \phi} ( z_{1, T}|x_{1:T}^{o}) qϕ(z1,Tx1:To) 被定义为一个自回归模型,如前所述,

q ϕ ( z 1 , T ∣ x 1 : T o ) = ∏ t = 1 T N ( z t ∣ μ e n c ( x 1 , t o ) , d i a g ( σ e n c 2 ( x 1 , t o ) ) ) q _ { \phi} ( z_{1, T}|x_{1:T}^{o}) = \prod _ { t = 1 } ^ { T } N ( z _ {t} | \mu _ { enc } ( x _ { 1 , t } ^ { o } ) , d i a g ( \sigma _ { enc } ^ { 2 } ( x _ { 1 , t } ^ { o } ) ) ) qϕ(z1,Tx1:To)=t=1TN(ztμenc(x1,to),diag(σenc2(x1,to)))

给定一系列观测值 x 1 : T o x_{1:T}^{o} x1:To,首先对缺失值应用零插补,即,如果 s t , j = 1 s_{t,j}=1 st,j=1 并且 x t , j ′ = 0 x_{t,j}^{\prime}=0 xt,j=0 ,则 x t , j ′ = x 1 : T o x_{t,j}^{\prime}=x_{1:T}^{o} xt,j=x1:To。然后,将missing indicators拼接到 x 1 , T ′ x_{1,T}^{\prime} x1,T ,并将1D CNN应用于时间轴,如 r 1 : T = C N N ( x 1 , T ′ ) r_{1:T}=CNN(x_{1,T}^{\prime}) r1:T=CNN(x1,T)。在计算了 r 1 : T r_{1:T} r1:T 之后,与解码器类似,使用具有因果掩码的transformer来计算:

h t = T r a n s f o r m e r d e c ( r 1 : t ) h _ { t } = T r a n s f o r m e r _ { d e c } ( r _ { 1 : t } ) ht=Transformerdec(r1:t)

( μ d e c ( x 1 : t o ) , σ d e c ( x 1 : t o ) ) = M L P d e c ( h t ) ( \mu _ { d e c } ( x _ { 1 : t }^{o} ) , \sigma _ { d e c } ( x _ { 1 : t }^{o} ) ) = M L P _ { d e c } ( h _ { t } ) (μdec(x1:to),σdec(x1:to))=MLPdec(ht)

Objective

定义了所有组成后,supernotMIWAE的IWAE界限计算如下:

L ( K ) ( λ , θ , ψ , ϕ ) : = E [ log ⁡ 1 K ∑ k = 1 K ω k ] L ^ { ( K ) } ( \lambda , \theta , \psi , \phi ) : = E \left[ \log \frac { 1 } { K } \sum _ { k = 1 } ^ { K } \omega _ { k } \right] L(K)(λ,θ,ψ,ϕ):=E[logK1k=1Kωk]

ω k : = p λ ( y ∣ x 1 : T o , x k , 1 : T m ) p ψ ( s 1 : T ∣ x 1 : T 0 , x k , 1 : T m ) × p θ ( x 1 : T o ∣ z k , 1 : T ) p θ ( z k , 1 : T ) / q ϕ ( z k , 1 : T ∣ x 1 : T o ) \omega _ { k } : = p _ { \lambda } ( y | x _ { 1 : T } ^ { o } , x _ { k , 1 : T } ^ { m } ) p _ { \psi } ( s _ { 1 : T } | x _ { 1 : T } ^ { 0 } , x _ { k , 1 : T } ^ { m } ) \times p _ { \theta } ( x _ { 1 : T } ^ { o } | z _ { k , 1 : T } ) p _ { \theta } ( z _ { k , 1 : T })/ q _ { \phi }(z _ { k , 1 : T }|x _ { 1 : T } ^ { o }) ωk:=pλ(yx1:To,xk,1:Tm)pψ(s1:Tx1:T0,xk,1:Tm)×pθ(x1:Tozk,1:T)pθ(zk,1:T)/qϕ(zk,1:Tx1:To)

其中, ω k \omega _ { k } ωk 是重要性权重项。

ObsDropout

在这里插入图片描述

ObsDropout 用来正则化 supnotMIWAE 以获得更好的插补效果。因为前述目标函数缺乏明确的监督目标,使用该目标训练的模型不太可能生成实际的缺失值。

ObsDropout:当将观测到的输入 $x^{o}_{1:T} $和插补缺失值 x 1 : T m x^{m}_{1:T} x1:Tm 传递给分类器时,故意删除观测到的输入的某些部分。在不丢弃观测到的输入的情况下,分类器可能严重依赖观测到的输入来进行分类,但如果在训练过程中丢弃了一些观测到的输入,分类器可以更多地关注插补缺失值 x 1 : T m x^{m}_{1:T} x1:Tm。因此,鼓励模型生成更多有利于分类的“有用”缺失值。更具体地说,让 β β β是一个预定义的Dropout概率。然后,将插补的输入 x ^ \widehat { x } x 构造到分类器,如下所示:

x ^ 1 : T : = ( x 1 : T o , x 1 : T m ) w h e r e x 1 : T m ∼ p θ ( x 1 : T m ∣ z 1 , T ) \widehat { x } _ { 1 : T } : = ( x ^ { o } _ { 1 : T } , x ^ { m } _ { 1 : T } ) \quad w h e r e \quad x ^ { m } _ { 1 : T } \sim p _ { \theta } ( x ^ { m } _ { 1 : T } | z _ { 1 ,T} ) x 1:T:=(x1:To,x1:Tm)wherex1:Tmpθ(x1:Tmz1,T)

m t , j = B e r n ( 1 − β ) m _ { t,j } = Bern( 1 - \beta ) mt,j=Bern(1β)

x ^ t , j = D e c a y ( s t , j , x t , j , γ x ^ t , j , x t ′ , j , x ~ t , j ) \widehat { x } _ { t , j } = D e c a y ( s _ { t , j } , x _ { t , j } , \gamma _ { \widehat { x } _{t,j} } , x _ { t^ { \prime } , j } , \tilde { x } _ { t , j } ) x t,j=Decay(st,j,xt,j,γx t,j,xt,j,x~t,j)

Prediction

与 SupMIWAE 类似,利用自归一化重要性抽样 (SNIS) 来近似新输入 x 1 : T o x^{o}_{1:T} x1:To 的预测分布。

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1543804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++关于类和对象的基础语法

前言: 介绍c中类和对象的基础语法和注意事项,这里是c入门的第一道坎,细节很多,在后面的更深的学习中还会反复提到。 目录 前言: 1.OO语言 2.类的定义 3.类的访问限定符与封装的引入 4.类的实例化 5.关键字this指…

网络七层模型之应用层:理解网络通信的架构(七)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

算法——模拟专题(一篇搞定)

在本专栏已经更新双指针算法,滑动窗口算法,二分查找算法,前缀和算法以及位运算算法,欢迎大家跳转至相关专题阅读 此篇文章为大家带来算法专栏的模拟专题 模拟算法本质就是比葫芦画瓢,思路比较简单,就是将演算流程转化为代码 目录 1.替换所有的问号 1.1…

eclipse导入svn项目

1、配置maven 2、用svn引入项目 3一直点击next,到最后选完成。

Orangedx:引领新一轮 BTCFi 浪潮

“OrangeDx 作为新一轮 BTCFi 浪潮引领者被市场寄予厚望 ,前不久在 FinceptorApp 的平台的公开销售 20 万美元的额度仅在几秒售罄,而其即将以 Startup 方式登陆 Gate 平台也同样备受市场期待。” 自 Ordinals 面向市场为比特币生态带来全新的资产发行方案…

函数作用域和块级作用域:JavaScript中的变量作用域解析

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

OpenGL学习笔记【4】——创建窗口,给窗口添加渲染颜色

一、前三章节的前情回顾 章节一:上下文(Context) OpenGL学习笔记【1】——简介-CSDN博客 章节一讲述了OpenGL在渲染的时候需要一个Context来记录了OpenGL渲染需要的所有信息和状态,可以把上下文理解成一个大的结构体,它里面记录了当前绘制使…

【@changesets/cli】变更集实战教程

一、背景概述 前端目前基于Monorepo架构的npm包开发很普遍,在开发完毕后,我们需要对包进行版本号升级,并且部署,这些操作如果是手动来操作的话,很麻烦,而且容易出错。 例如有这样的场景: -ap…

【可用Claude Opus模型】Claude3国内镜像站,亲测完全超越GPT-4(可用Claude Opus,官网价值20刀)

#今天在知乎看到一个问题:“平民不参与内测的话没有账号还有机会使用Claude 3吗?” 从去年GPT大火到现在,关于GPT的消息铺天盖地,真要有心想要去用,途径很多,别的不说,国内GPT的镜像站到处都是…

C++ 扫描当前路径下文件并删除大文件

C 扫描当前路径下文件并删除大文件 C获取当前路径扫描文件路径下规定后缀名称的文件计算文件大小 1. 获取当前路径 使用<Windows.h>中的GetCurrentDirectory方法实现&#xff0c;单独编写验证程序如下&#xff1a; #include<iostream> #include<Windows.h&g…

YOLOv9改进策略:IoU优化 | Powerful-IoU更好、更快的收敛IoU,效果秒杀CIoU、GIoU等 | 2024年最新IoU

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文独家改进&#xff1a;Powerful-IoU更好、更快的收敛IoU&#xff0c;是一种结合了目标尺寸自适应惩罚因子和基于锚框质量的梯度调节函数的损失函数 &#x1f4a1;&#x1f4a1;&#x1f4a1;MS COCO和PASCAL VOC数据集实现涨点 YO…

R语言基础入门

1.保存或加载工作空间 改变工作目录——进行文件读写&#xff0c;默认去指定文件进行操作。&#xff08;使用R时&#xff0c;最好先设定工作目录&#xff08;setwd(),getwd()&#xff09;&#xff09; setwd(“工作文件路径”)&#xff1a;建立工作目录 getwd&#xff08;&…

【Mysql数据库基础07】DDL 数据定义语言

Data Definition Language 1 库的操作1.1 create 创建1.2 alter 修改1.3 drop 删除 2 表的操作2.1 表的创建2.2 表的修改2.2.1 修改表名2.2.2 修改列名2.2.3 修改列的类型和约束2.2.4 添加列2.2.5 删除列 2.3 表的删除2.4 表的复制 3 练习 1 库的操作 1.1 create 创建 create…

jvm(虚拟机)运行时数据区域介绍

Java虚拟机&#xff08;JVM&#xff09;运行时数据区域是Java程序在运行过程中使用的内存区域&#xff0c;它主要包括以下几个部分&#xff1a; 程序计数器&#xff08;Program Counter Register&#xff09;&#xff1a; 程序计数器是一块较小的内存区域&#xff0c;是线程私有…

法律合规| AI产品法律风险应对措施全解析

在此前推文中我们全面分析了生成式人工智能算法模型可能遇到的法律风险&#xff0c;那么这些风险应该如何应对呢&#xff1f; 1、隐私泄漏风险&#xff1a;企业需要遵守数据安全法和个人信息保护法的规定&#xff0c;确保数据来源合法&#xff0c;使用时获得用户授权&…

citus的快速开始

准备 dockercitus最新版本&#xff08;docker pull citusdata/citus&#xff09; docker网络 docker network create --subnet172.72.9.0/24 citus-test docker network ls启动citus服务 启动协调节点 docker run -dit --name citus-cod -p 5433:5432 -e POSTGRES_PASSWOR…

【vue3学习之路(一)】

文章目录 前言一、vue3项目创建1.1环境准备1.1.1 基于 vue-cli 创建&#xff08;脚手架创建&#xff09;1.1.2 基于 vite 创建&#xff08;推荐&#xff09; 二、熟悉流程总结 前言 参考视频&#xff1a;https://www.bilibili.com/video/BV1Za4y1r7KE?p10&spm_id_frompag…

使用uniapp 的 plus.sqlite 操作本地数据库报错:::table xxx has no column named xxxx

背景&#xff1a; 1、使用uniapp 的 plus.sqlite 进行APP本地数据库操作 2、SQLite 模块用于操作本地数据库文件&#xff0c;可实现数据库文件的创建&#xff0c;执行SQL语句等功能。 遇到&#xff1a;在之前创建的表上进行新增字段的操作时候&#xff0c;出现问题&#xff1a…

MyEclipse打开文件跳转到notepad打开问题

问题描述 windows系统打开README.md文件&#xff0c;每次都需要右键选择notepad打开&#xff0c;感觉很麻烦&#xff0c;然后就把README.md文件打开方式默认选择了notepad&#xff0c;这样每次双击就能打开&#xff0c;感觉很方便。 然后某天使用MyEclipse时&#xff0c;双击RE…

java第一次作业(二)

先写思路&#xff0c;再写代码&#xff0c;思路清晰&#xff0c;才能写对代码 7-6 求12...n的和 思路&#xff1a; 运用expression的字符串输出 重点&#xff1a; expression输出 代码&#xff1a; import java.util.Scanner; public class Main {public static void main…