文献引用

Amirian J, Hayet J B, Pettre J. Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs[J]. 2019.

文章是继Social LSTM、Social GAN模型后的进一步提升,在理想的监控俯瞰数据库ETH、UCY上进行数据的预测。重点贡献有:

  1. 引入了注意力机制使模型自主分配对交互信息的关注。
  2. 舍弃了L2代价函数,引入基于互信息的Information Loss,增强了模型对多合理轨迹的预测能力。
  3. 提供了一种能够验证各模型的多轨迹预测能力的小型合成场景和轨迹生成效果的判断指标。

模型框架

如上图所示,文章的基本框架是GAN网络,在不考虑batch批处理的情况下,模型逐一为每个行人预测轨迹。

  • 在Generator中,对于待预测行人\(i\),首先会将所有行人的已知轨迹进行编码,而后基于\(i\)和其他行人之间的地理和运动信息,引入注意力机制使得模型对其他行人的交互信息自主适应。行人\(i\)的轨迹编码、注意力池化后的交互信息、噪音、latent code(新引入内容,之后会讲到)四种输入作为Decoder的输入,解码出行人\(i\)的预测轨迹。
  • 在Discriminator中,会对生成轨迹/真实轨迹进行判别,判别的结果作为Generator/Discriminator的代价函数。
  • 模型框架具体来说是InfoGAN,InfoGAN网络解决的是在无监督的情况下通过修改latent code倾向从而控制GAN的生成分布,与GAN相比其强调latent code对生成的控制性,与cGAN相比其强调能够在有潜在类别的数据中无监督(无数据标签)学习。因而GAN网络中新引入了Latent Code和Information Loss两个结构。

HighLight 1 - 注意力机制

注意力机制采用Key-Value-Query型定义,从认知角度引入合适的手工指标,基于这些指标使模型能够对周围轨迹产生不同的注意力。

  • Key = Value = \(H_t\)(除目标行人\(i\)外,其他的行人的轨迹编码信息)。
  • Query:\(f^{ij}\)由三种运动地理运动信息合成
    • \(i\)和\(j\)之间的欧式距离
    • \(i\)和\(j\)之间运动方向的夹角。
    • 以当前运动姿态,\(i\)和\(j\)未来将会出现的最短距离。

\[\sigma (f^{ik},h^k)={{N-1}\over \sqrt d_{\sigma}}<f^{ik},W_\sigma h^k>\]

\[\alpha^{i,j}={exp(\sigma(f^{ij},h^j)) \over \sum_{k \neq i} exp(\sigma(f^{ik},h^k))}\]

HighLight 2 - InfoGAN

原文[推荐阅读] Chen X, Duan Y, Houthooft R, et al. InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets[J]. 2016.

InfoGAN模型解读:https://www.jiqizhixin.com/articles/2018-10-29-21,内容过简练,建议阅读原文

模型结构

InfoGAN的模型结构相较于GAN的改进是较小的,在上文的模型中,首先是在输入中新增了Latent Code,而后弃用了SGAN中的L2损失函数,在Discriminator在加入了一个子网络\(Q\)产生Information Loss。

原理简介

  1. Motivation: InfoGAN训练后的理想状态是通过调整Latent Code(潜码)——\(c\)输入控制生成的分布。然而GAN自由灵活性很高,网络很容易直接忽视Latent Code的存在,因此必须调整代价函数使网络重视Latent Code的存在。InfoGAN提出使用互信息\(I\)作为优化目标,\(I\)越大则潜码和生成的关系越大:

    \[I(X;Y) = H(X) - H(X|Y)\]

    对于互信息\(I(X;Y)\),其本意是指在已知\(Y\)的情况下,\(X\)的不确定性下降程度,当两者结合得非常紧密时,互信息将变得非常大。因此我们希望\(I(c;G(z,c))\)能够尽可能大,这样潜码就能控制Generator的生成了。

  2. Restriction:

    1. \(H(c)\)是信息熵的计算,文章中在此假定\(H(c)\)是一个固定的值,因此优化目标转化为令\(H(c|x)\)最大化。

      知识补充:

      • 信息熵的计算公式:\(H(X) = E[I(x_i)] = - \sum_{i=1}^NP(x_i)logP(x_i)\)
      • 具体计算:\(H(c|x)=-E_{x \sim G(z,c)}[E_{c'\sim P(c|x)}[logP(c'|x)]]\)
    2. 需要后验概率\(P(c|x)\),要获取其非常困难,因此使用\(Q(c|x)\)(辅助分布)来近似求解后验的概率\(P(c|x)\),并且作者通过数学推导了在互信息的计算中\(P(c|x)\)和\(Q(c|x)\)间的关系:

      [!] 这里请务必留意将“=“变为”>=“时移除的部分是P和Q的KL散度,KL散度是用于衡量P和Q之间分布差异性的指标。这将为后文解释优化的合理性提供重要支撑。

  3. 我们继续与\(P(c|x)\)的斗争,之前我们求出了\(I(c;G(z,c))\)的下界:

    \[E_{x\sim G(z,c)}[E_{c'\sim P(c|x)}[logQ(c'|x)]] + H(c)\]

    下界中相较原式\(E[.]\)中的\(P(c|x)\)被替代了,但是求期望的随机变量\(c'\)的分布中依然涉及\(P(c'|x)\),要进一步替换,作者用了如下公式:

    \[E_{x\sim X,y\sim Y | x}[f(x,y)] = E_{x\sim X, y\sim Y|x,x'\sim X|y}[f(x',y)]\]

    至此,\(P(c|x)\)被彻底干掉了,从而变得可以被实现:

    \[E_{x\sim G(z,c)}[E_{c'\sim P(c|x)}[logQ(c'|x)]] + H(c) = E_{c \sim P(c),x \sim G(z,c)}[logQ(c|x)] + H(c)\]

  4. Target作者将最大化\(I(c;G(z,c))\)的目标转移为最大化\(I\)的下界

    \[L_1(G,Q)=E_{c \sim P(c),x \sim G(z,c)}[logQ(c|x)] + H(c)\]

    [敲黑板]!!!

    为什么最大化互信息可以变为最大化互信息的下界呢?这就是InfoGAN最精华、最巧妙的地方

    我们从训练调整参数的角度来看这个问题,InfoGAN网络的参数可分为Generator、Discriminator和Q三个部分,训练时(Generator)(Discriminator+Q)迭代训练,由于Discriminator与互信息无关,我们先不考虑,因此G和Q实际在两个迭代中完成:

    • 训练Q时:G的参数固定,因此互信息\(I\)是不变的,这时候训练Q就是为了减小互信息下界和互信息的差异。而我们前文重点说道,差异恰好就是P和Q的KL散度,即分布差异,实现了调整Q的参数拟合P的过程。
    • 训练G时:在Q不断拟合P的过程中,互信息\(I\)的下界也越来越接近互信息\(I\)(直至等于)。在这种条件下,训练G增大互信息的下界等同于增大互信息。

    一句话来说,G和Q在计算互信息时有着不同的目标(提升互信息\增强拟合),但是却都通过最大化L1(G,Q)损失函数实现了。(在原文中,作者也提到了这种方式类似于"Wake-Sleep Algorithm" - 同样的训练目标,最终两个权重都正确更新了)

  5. Implement

    最终加入了GAN原有的损失函数后,总优化目标变化为:

    \[min_{G,Q}max_DV_1(D,G)=V(D,G) - \mu L_1(G,Q)\]

    Q是含有待定参数的分布器。

    • 在InfoGAN实现时,Q实际输出的是假设的正则分布的参数,并随着Discriminator进行训练,负似然对数作为损失函数。
    • 在Social Ways模型在实现时,Q实际上是一个latent code reconstructor(潜码恢复器)。Information Loss实指Q所恢复的潜码\(\hat c\)和真实潜码\(c\)之间的MSE。

HighLight 3 - 多轨迹预测的生成场景

GAN模型引入轨迹预测的重要目的就是有助于生成多条轨迹(分布),文章为探究不同类GAN模型对多轨迹的预测能力,特地人工生成了一个测试场景(如下图):

  • 蓝色为已知轨迹,红色为待预测轨迹。
  • 从六个方向上产生轨迹,并在每个方向轨迹上又产生三个具体的分支。

不同的baseline模型在不同的迭代周期产生的预测结果如下图所示,从而验证了InfoGAN对多合理轨迹预测的有效性,其能够在更短的迭代周期中识别出多种可能性的轨迹:

此外,文章还使用了1-Nearest Neighbor classifier和Earth Mover's Distance两种方法对真实未来轨迹和生成轨迹的质量进行评估:

  • 对于1-Nearest Neighbor classifier,越接近50%越好。
  • 对于EMD,越低越好。

文献阅读报告 - Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs的更多相关文章

  1. 文献阅读报告 - Social BiGAT + Cycle GAN

    原文文献 Social BiGAT : Kosaraju V, Sadeghian A, Martín-Martín R, et al. Social-BiGAT: Multimodal Trajec ...

  2. 文献阅读报告 - Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks

    paper:Gupta A , Johnson J , Fei-Fei L , et al. Social GAN: Socially Acceptable Trajectories with Gen ...

  3. 文献阅读报告 - Social LSTM:Human Trajectory Prediction in Crowded Spaces

    概览 简述 文献所提出的模型旨在解决交通中行人的轨迹预测(pedestrian trajectory prediction)问题,特别是在拥挤环境中--人与人交互(interaction)行为常有发生 ...

  4. 文献阅读报告 - Situation-Aware Pedestrian Trajectory Prediction with Spatio-Temporal Attention Model

    目录 概览 描述:模型基于LSTM神经网络提出新型的Spatio-Temporal Graph(时空图),旨在实现在拥挤的环境下,通过将行人-行人,行人-静态物品两类交互纳入考虑,对行人的轨迹做出预测 ...

  5. 【文献阅读】Deep Residual Learning for Image Recognition--CVPR--2016

    最近准备用Resnet来解决问题,于是重读Resnet的paper <Deep Residual Learning for Image Recognition>, 这是何恺明在2016-C ...

  6. 文献阅读报告 - 3DOF Pedestrian Trajectory Prediction

    文献 Sun L , Yan Z , Mellado S M , et al. 3DOF Pedestrian Trajectory Prediction Learned from Long-Term ...

  7. 文献及代码阅读报告 - SS-LSTM:A Hierarchical LSTM Model for Pedestrian Trajectory Prediction

    概览 简述 SS-LSTM全称Social-Scene-LSTM,是一种分层的LSTM模型,在已有的考虑相邻路人之间影响的Social-LSTM模型之上额外增加考虑了行人背景的因素.SS-LSTM架构 ...

  8. 文献阅读报告 - Move, Attend and Predict

    Citation Al-Molegi A , Martínez-Ballesté, Antoni, Jabreel M . Move, Attend and Predict: An Attention ...

  9. 文献阅读报告 - Pedestrian Trajectory Prediction With Learning-based Approaches A Comparative Study

    概述 本文献是一篇文献综述,以自动驾驶载具对外围物体行动轨迹的预测为切入点,介绍了基于运动学(kinematics-based)和基于机器学习(learning-based)的两大类预测方法. 并选择 ...

随机推荐

  1. SpringTest

    Spring Test 1.对junit的一个扩展   必须先导入junit jar包 2.简化获取bean的步骤 它的底层也是IOC容器 3.IOC的全部 junit的全部  junit的版本必须是 ...

  2. 【剑指Offer面试编程题】题目1503:二叉搜索树与双向链表--九度OJ

    题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行为一个 ...

  3. centos查找文件\目录\内容命令

    1.查找文件 find / -name 'php.ini'12.查找目录 find / -name 'path' find / -name 'path' -type d13.查找内容 find . | ...

  4. Lesson 2 Spare that spider

    How much of each year do spiders killing insects? Why, you may wonder, should spiders be our friends ...

  5. redis.rpm 安装

    yum install jemalloc wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/redis-3.0.7 ...

  6. Matplotlib 入门

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

  7. SciPy 教程

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  8. Samjia 和矩阵[loj6173](Hash+后缀数组)

    传送门 本题要求本质不同的子矩阵,即位置不同也算相同(具体理解可以看样例自己yy). 我们先看自己会什么,我们会求一个字符串中不同的子串的个数.我们考虑把子矩阵变成一个字符串. 先枚举矩阵的宽度,记为 ...

  9. JAVA开源爬虫列表及简介

    本文列举了一些较为常用的JAVA开源爬虫框架: 1.Apache Nutch 官方网站:http://nutch.apache.org/ 是否支持分布式:是 可扩展性:中.Apache Nutch并不 ...

  10. ElasticSearch入门了解

    什么是Elasticsearch: Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 1.什么是搜索? 搜索,就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你要搜索 ...