论文笔记:Learning Disentangled Representations of Video with Missing Data

news2024/9/23 13:24:33

2020 Neurips

1 intro & abstract

  • 视频表征的一个挑战是高维、动态、各个像素之间多模态分布
    • 最近的一些研究通过探索视频的inductive bias,并将高维数据映射到低微数据中
    • —>这种方法通过将视频的各帧分解成语义上有意义的因子,来获得视频的解耦表征
    • ——>但是,当物体在视频中有缺失时,现存的方法并不能很好地进行建模
  • 这篇论文就希望学习 带有缺失数据的视频的解耦表征
    • 提出了DIVE (disentangled-imputed-video autoencoder)
      • 通过将视频分解成appearance、pose和missingness 这三个隐变量,来学习视频的表征
      • 通过学习到的解耦隐变量,来补全视频中的缺失数据
      • 使用补全了的视频表征进行随机的、无监督的视频预测

2 related work

2.1 解耦表征

  • 序列的无监督学习解耦表征通常有三类
基于VAE的

  •  Learning to decompose and disentangle representations for video prediction NIPS 2018
  • Sequential attend, infer, repeat: Generative modelling of moving objects. NIPS 2018
  • Compositional video prediction.NIPS 2018
  • Unsupervised learning of disentangled and interpretable representations from sequential data.NIPS 2017
  • Structured object-aware physics prediction for video modeling and planning. ICLR 2020
  • R-sqair: Relational sequential attend, infer, repeat.,2019 arxiv
基于GAN的

  • Unsupervised learning of disentangled representations from video. NIPS 2017
  • Decomposing motion and content for natural video sequence prediction. arxiv 2019
  • Stochastic video generation with a learned prior. ICML2018
基于加&乘的
  • Structured object-aware physics prediction for video modeling and planning. ICLR 2020
  • 对于视频数据而言,最常用的做法是将视频帧编码成隐变量,然后将隐藏表征分解成内容和动态因子(content,dynamics)
    • 视频中的内容(物体、背景。。。)是固定的
    • 视频中物体的方位则会一直改变
    • ——>但大部分模型只能解决没有缺失数据的视频

2.2 视频预测

  • 视频预测一般是基于过去的视频帧来预测未来的视频帧
    • 使用LSTM,ConvLSTM,PredRNN等模型
    • 但这些模型的问题是,他们预测的都是确定值(帧),这并不能很好地建模视频数据中未来帧的不确定性
  • 论文中使用随机视频预测,这能更好地捕获环境中的随机动力学

3 Disentangled-Imputed-Video-autoEncoder (DIVE)

  • 在这篇论文中,作者假设每一个视频最多有N个物体;观测K个时间片的视频序列,预测K+1~T的视频帧
  • 模型整体上是一个VAE架构,将视频中的物体分解成三种不同的隐变量:appearance、pose、missingness

  •  记带缺失数据的视频为\left(\mathbf{y}^1, \cdots, \mathbf{y}^t\right),其中每一个y^t \in R^d是一帧
    • 论文旨在学习视频的隐藏表征z_i^t,并将其解耦成三个不同的隐变量
      • \mathbf{z}_i^t=\left[\mathbf{z}_{i, a}^t, \mathbf{z}_{i, p}^t, \mathbf{z}_{i, m}^t\right], \quad \mathbf{z}_{i, a}^t \in \mathbb{R}^h, \mathbf{z}_{i, p}^t \in \mathbb{R}^3, \mathbf{z}_{i, m}^t \in \mathbb{Z}
        • i表示视频的第i个物体
        • z_{i,a}^t表示h维的appearance向量
        • z_{i,p}^t是一个三维的向量,表示pose(x,y坐标和缩放大小)
        • z_{i,m}^t是0/1的missingness 标签(1表示物体被遮住/丢失)

3.1 补全模型

  • 补全模型根据missingness标签z_{i,m}^t来更新隐藏状态
  • 如果没有丢失数据,那么补全模型的隐藏状态更新方式为:
    • h_{i,y}^t=f_{\mathrm{enc}}\left(\mathbf{h}_{i, y}^{t-1}, \mathbf{h}_{i, y}^{t+1},\left[\mathbf{y}^t, \mathbf{h}_{i-1, y}^t\right]\right)
      • 这里f_{enc}是双向LSTM
      • i-1是上一个物体(但是视频里面物体怎么排序,我好像在这篇论文里没有找到,熟悉这一领域的欢迎补充)
  • 如果有缺失值的话\left[\mathbf{y}^t, \mathbf{h}_{i-1, y}^t\right]中yt是得不到的,故而需要补全,记此时需要补全的内容的隐藏状态为\hat{\mathbf{h}}_{i, y}^t
    • \hat{\mathbf{h}}_{i, y}^t=\mathrm{FC}\left(\mathbf{h}_{i, p}^{t-1}\right)
      • FC是全连接层,\mathbf{h}_{i, p}^{t-1}是这一小节要介绍的pose的隐藏状态
  • 记隐藏层的向量为u_i^t,他回根据不同的 missingness标签z_{i,m}^t 来选择不同的隐藏状态
    • \mathbf{u}_i^t=\left\{\begin{array}{ll} \hat{\mathbf{h}}_{i, y}^t & \mathbf{z}_{i, m}^t=1 \\ \gamma \mathbf{h}_{i, y}^t+(1-\gamma) \hat{\mathbf{h}}_{i, y}^t & \mathbf{z}_{i, m}^t=0 \end{array}, \quad \gamma \sim \operatorname{Bernoulli}(p)\right.
    • 这里当没有丢失数据的时候,这边使用的是h_{i,y}^t,\hat{h_{i,y}^t}的混合,论文发现这样效果更好
    • 输入只是带缺失值的y,所以我们并不能直接知道missingness标签z_{i,m}^t,这个值到底是0还是1,是通过后面的3.2.1 missingness inference得到的

  • pose的隐藏状态h_{i,p}^t通过LSTM来更新
    • \mathbf{h}_{i, p}^t=\operatorname{LSTM}\left(\mathbf{h}_{i, p}^{t-1}, \mathbf{u}_i^t\right)

3.2 推断模型

一开始我们只有视频数据y,怎么得到z呢

3.2.1 missingness inference

  • 对于missingness变量z_{i,m}^t,使用如下的方式推断
    • \mathbf{z}_{i, m}^t=H(x), \quad x \sim \mathcal{N}\left(\mu_m, \sigma_m^2\right), \quad\left[\mu_m, \sigma_m^2\right]=\operatorname{FC}\left(\mathbf{h}_{i, y}^t\right), \quad H(x)= \begin{cases}1 & x \geq 0 \\ 0 & x<0\end{cases}

3.2.2 pose inference

 \bg_white q\left(\mathbf{z}_{i, p}^{1: T} \mid \mathbf{y}^{1: K}\right)=\prod_{t=1}^K q\left(\mathbf{z}_{i, p}^t \mid \mathbf{z}_{i, p}^{1: t-1}\right), \quad \mathbf{z}_{i, p}^t=f_{\operatorname{tran}}\left(\mathbf{z}_{i, p}^{t-1}, \beta_i^t\right), \quad

\beta_i^t \sim \mathcal{N}\left(\mu_p, \sigma_p^2\right),\left[\mu_p, \sigma_p^2\right]=\operatorname{FC}\left(\mathbf{h}_{i, p}^t\right)

 3.2.3 dynamic appearance

  • appearance变量z_{i,a}^t是一个随时间一直变化的内容
    • 论文这里把appearance分解成静态分量a_{i,s}和动态分量a_{i,d}
  • 对于静态分量,作者使用“Learning to decompose and disentangle representations for video prediction.”中的inverse affine spatial transformation \mathcal{T}^{-1}(\cdot ; \cdot)
    • \mathbf{a}_{i, s}=\operatorname{FC}\left(\mathbf{h}_{i, a}^K\right), \quad \mathbf{h}_{i, a}^{t+1}= \begin{cases}\operatorname{LSTM}_1\left(\mathbf{h}_{i, a}^t, \mathcal{T}^{-1}\left(\mathbf{y}^t ; \mathbf{z}_{i, p}^t\right)\right) & t<K \\ \operatorname{LSTM}_2\left(\mathbf{h}_{i, a}^t\right) & K \leq t<T\end{cases}
    • (对未来视频的预测,就是一种自回归的方式了(t的hidden state是t+1的input)
  • 对于动态分量,作者建模的是各帧之间的区别
    • \mathbf{a}_{i, d}^1=\mathrm{FC}\left(\left[\mathbf{a}_{i, s}, \mathcal{T}^{-1}\left(\mathbf{y}^1 ; \mathbf{z}_{i, p}^1\right)\right]\right), \quad \mathbf{a}_{i, d}^{t+1}=\mathbf{a}_{i, d}^t+\delta_{i, d}^t, \quad \delta_{i, d}^t=\mathrm{FC}\left(\left[\mathbf{h}_{i, a}^t, \mathbf{a}_{i, s}\right]\right)
  • 最后的appearance是将动态和静态结合在一块得到的
    • q\left(\mathbf{z}_{i, a} \mid \mathbf{y}^{1: K}\right)=\prod_t \mathcal{N}\left(\mu_a, \sigma_a^2\right), \quad\left[\mu_a, \sigma_a^2\right]=\mathrm{FC}\left(\left[\mathbf{a}_{i, s}, \gamma \mathbf{a}_{i, d}^t\right]\right), \quad \gamma \sim \operatorname{Bernoulli}(p)

3.4 生成模型与学习

  • 给定带有丢失数据的视频\left(\mathbf{y}^1, \cdots, y^t\right),记潜在的完整视频为\left(\mathbf{x}^1, \cdots \mathbf{x}^t\right),那么,视频序列的生成概率分布为:p\left(\mathbf{y}^{1: K}, \mathbf{x}^{K+1: T} \mid \mathbf{z}^{1: T}\right)=\prod_{i=1}^N p\left(\mathbf{y}_i^{1: K} \mid \mathbf{z}_i^{1: K}\right) p\left(\mathbf{x}_i^{K+1: T} \mid \mathbf{z}_i^{K+1: T}\right)
  • 其中每一个object的概率可以用如下方式计算而得p\left(\mathbf{y}_i^t \mid \mathbf{z}_{i, a}^t\right)=\mathcal{T}\left(f_{\operatorname{dec}}\left(\mathbf{z}_{i, a}^t\right) ; \mathbf{z}_{i, p}^t\right) \circ\left(1-\mathbf{z}_{i, m}^t\right), \quad p\left(\mathbf{x}_i^t \mid \mathbf{z}_{i, a}^t\right)=\mathcal{T}\left(f_{\operatorname{dec}}\left(\mathbf{z}_{i, a}^t\right), \mathbf{z}_{i, p}^t\right)

4 实验部分

  • 给定10帧,预测10帧

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

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

相关文章

Maven初级(二)

目录 四.第一个Maven项目&#xff08;手工制作&#xff09; 4.1 Maven工程目录结构 4.2 手工制作Maven项目的步骤 4.2.1 手工制作项目的目录结构或使用插件创建项目的目录结构 4.2.2 在项目的src同层目录下创建pom.xml文件 4.2.3 在cmd中使用Maven项目构建命令 四.第一个…

自动驾驶感知——物体检测与跟踪算法|4D毫米波雷达

文章目录1. 物体检测与跟踪算法1.1 DBSCAN1.2 卡尔曼滤波2. 毫米波雷达公开数据库的未来发展方向3. 4D毫米波雷达特点及发展趋势3.1 4D毫米波雷达特点3.1.1 FMCW雷达角度分辨率3.1.2 MIMO ( Multiple Input Multiple Output)技术3.2 4D毫米波雷达发展趋势3.2.1 芯片级联3.2.2 专…

[docker]-docker安装prometheus和grafana

导语&#xff1a;需要排查部分出问题的私有化环境。直接上一个docker的node_exporter prometheus grafana 最方便。 所用到的安装包在最下面的云盘。 解压安装自定义node_exporter # 这个abc的包名可以忽略 tar zxvf abc.tgz cd abc cp node_exporter /usr/local/ cat <…

Mybatis 动态sql的编写|开启二级缓存

❤️作者主页&#xff1a;微凉秋意 ✅作者简介&#xff1a;后端领域优质创作者&#x1f3c6;&#xff0c;CSDN内容合伙人&#x1f3c6;&#xff0c;阿里云专家博主&#x1f3c6; ✨精品专栏&#xff1a;数据结构与课程设计 &#x1f525;系列专栏&#xff1a;javaweb 文章目录前…

Linux-主要目录

/: 根目录&#xff0c;一般根目录下只存放目录&#xff0c;在Linux下有且只有一个根目录&#xff0c;所有的东西都是从这里开始当在终端里输入 /home,其实是在告诉电脑&#xff0c;先从/&#xff08;根目录&#xff09;开始&#xff0c;再进入到home目录/bin、/usr/bin:可执行二…

java基于ssm的旅游景点门票预订网站

通过本系统&#xff0c;能够实现用户进行登录后&#xff0c;在网站上对旅游景点信息进行门票预订&#xff0c;也可以通过在线留言系统&#xff0c;了解景点相关信息&#xff0c;为用户提供全方位的服务&#xff0c;同时为节省用户的时间&#xff0c;本系统采用分地名的方式&…

2022尚硅谷SSM框架跟学(七)Spring MVC基础二

2022尚硅谷SSM框架跟学 七 Spring MVC基础二4.SpringMVC获取请求参数4.1.通过ServletAPI获取4.2.通过控制器方法的形参获取请求参数4.3.RequestParam4.4.RequestHeader4.5.CookieValue4.6.通过POJO获取请求参数4.7.解决获取请求参数的乱码问题5.域对象共享数据5.1.使用ServletA…

LCX端⼝转发

LCX是一款十分经典的内网端口转发工具&#xff0c;基于Socket套接字&#xff0c;具有端口转发和端口映射的功能。但是目前很多杀软已经将其加入了特征库&#xff0c;在实际利用的时候需要自行做免杀处理。lcx有三个功能&#xff1a;第一个功能将本地端口转发到本地另一个端口上…

红米10A 一键root教程 跳过 秒过 168小时解锁BL 限制完美面具root保数据救黑砖刷机 解决无法解锁BL 新版本问题

新版本红米10A 无法秒解锁BL。root bootloader 要刷机、线刷救砖、获取Root权限都需要解除bootloader锁 我们称解除刷机限制的这个操作就叫解锁BL&#xff0c;只有解锁BL后&#xff0c;才可以进行刷机、刷Root权限等等一些列的操作。&#xff08;注&#xff1a;bootloader锁不…

Spring为什么这么火 之 五大类注解

目录 前言 存储Bean对象 1、配置扫描路径 2、将Bean存储到容器中 2.1、5大注解实现&#xff08;Controller、Service、Repository、Component、Configuration) Controller Service Repository Configuration Component 为什么需要五个类注解&#xff1f; 五大类注解的关…

Jmeter分布式

Jmeter的分布式控制&#xff0c;就是指远程启动功能。执行原理&#xff1a; 1、一台作为调度机(master)&#xff0c;其它机器做为执行机(slave) 2、执行时&#xff0c;master会把脚本发送到每台slave上&#xff0c;slave 拿到脚本后就开始执行 3、执行完成后&#xff0c;sla…

go语言编译文件踩坑

目录 1 no required module provides package xxx go.mod file not found in current directory or any parent directory; see go help modules 方式1 执行 go env -w GO111MODULEauto后再编译 方式2 创建go.mod 2 报错syscall.go:84:16: undefined: unsafe.Slice 3 b…

ArrayList集合类和对象数组案例区别讲解

目录 对象数组案例讲解 集合 ArrayList类的构造方法和成员方法 对象数组案例讲解 创建一个学生数组&#xff0c;存储三个学生对象并遍历 package com.demo01; /*** * author 无限嚣张菜菜* 分析&#xff1a;* A&#xff1a;定义学生类* B&#xff1a;创建学生数组* C&am…

关于PKI 你了解多少

公钥基础设施PKI&#xff08;Public Key Infrastructure&#xff09;&#xff0c;是利用公开密钥机制建立起来的基础设施&#xff0c;在信息互联互通时代&#xff0c;可以说它是创建、颁发、管理、注销公钥证书所涉及的所有软件、硬件集合体。对拥有庞大用户的系统来说&#xf…

Activity的5种启动模式详解(新增singleInstancePerTask类型)

前言 看到这个标题的时候&#xff0c;也许你会认为我写错了&#xff0c;Activity不是只有四种启动模式吗&#xff1f;分别为startard,singleTop,singleTask,singleInstance这四种。 一般来说是四种&#xff0c;但是android12的时候新加入了singleInstancePerTask类型&#xf…

【金三银四系列】之MySql面试突击(2023版)

Mysql金三银四面试突击班 1.Bin log是什么&#xff0c;有什么用&#xff1f;&#xff08;数据库被人干掉了怎么办&#xff1f;&#xff09; 1.bin Log: 数据恢复 主从复制 MySQL Server 层也有一个日志文件&#xff0c;叫做 binlog&#xff0c;它可以被所有的存储引擎使用。…

PRD-产品需求说明文档

产品需求说明文档&#xff08;PRD&#xff09;可以将产品设计思路清晰的展现给团队人员&#xff0c;便于他们快速理解产品。产品需求说明文档如何写呢&#xff1f;本文希望能够得到高人指点&#xff0c;本人是小白&#xff0c;同时不建议其他小白参考此文以免造成干扰。 包括文…

Spark 学习案例

案例1&#xff1a;搜索引擎日志分析 数据来源&#xff1a;使用搜狗实验室提供的【用户查询日志】数据。使用Saprk框架&#xff0c;将数据封装到RDD中进行数据处理分析。 数据网址&#xff1a;数据地址 这个地址可能过期了&#xff0c;需要的伙伴可以私聊博主。 数据格式&…

css清除浮动的方法

浮动的盒子会脱离标准流&#xff0c;不占有自己原先的位置&#xff0c;导致下面的其他标签往上移动 此时&#xff0c;可以给浮动的盒子添加一个父盒子&#xff08;块级&#xff09;&#xff0c;并设置高度&#xff0c;就可以避免下面的其他标签上浮 但是有时候父盒子不能设置高…

pycharm:新建虚拟环境和安装依赖

前言 小编深有体会&#xff0c;在刚开始用pycharm跑python的项目的时候&#xff0c;一时间不知道如何下手&#xff0c;特别是作为一个新手小白&#xff0c;这里总结了一份新手避坑指南&#xff0c;主要是新建虚拟环境&#xff08;生成一个项目对应的解释器&#xff09;以及安装…