• Multi-Modal Domain Adaptation for Fine-Grained Action Recognition--论文


    文章题目:多模态域自适应的细粒度动作识别

    1、引言

      首先明确几个名词含义。

      Multi-Modal(多模态):每种信息来源可以称作一个模态,多模态就是同时处理两种或两种以上的信息来源。例如一个视频有视觉、听觉、字幕等,同时考虑视觉,听觉就是多模态方法。

      Domain Adaptation(域自适应):这是一种迁移学习的方法,它主要利用有着丰富监督信息的source域样本,来提升target域模型的性能。换句话说其解决的问题就是源域与目标域分布不一样的时候怎么样使在源域训练的模型放在目标域模型进行使用时性能更好或者持平。其主要有三种方向:样本层面,加权重采样即源域相对于目标域比较接近的数据权重的增大;特征层面,找到他们的公共特征子空间;模型层面,修改loss加入目标域模型的考量。

      Fine-Grained(细粒度):举个例子,猫狗大战;牧羊犬和哈士奇大战。前者属于粗粒度后者属于细粒度。

      Action Recognition(动作识别):理解多媒体中人体的动作信息。

    综上,大致看完题目可以知道文章是在一个视频上采用多模态(例如采用帧和语音信息两者)并在学习方法上采用域自适应方法进行细粒度上的动作识别,即识别你是在切菜还是在搅拌。

    2、Abstract

      由于数据集之间都存在environmental bias,所以训练的模型在部署的时候可能表现会变差。使用对抗学习(Adversarial Training)的UDA(Unsupervised Domain Adaptation)无监督域自适应方法大部分人已经在使用了,但是本文作者发现这些方法没有考量每个域的多模态性质(the multi-modal nature of video within each domain.),即假如我使用其他模态进行协同学习时这种environmental bias会不会变小,或许一种模态下学习的特征与另一个模态下学习的特征融合之后有助于任务。

      本文作者利用模态的对应关系(只关注于动作)创建伪标签来作为自监督的对齐方式,作者在 EPIC-Kitchens数据集上使用RGB与Optical Flow(光流)两种模态进行测试。结果比只使用源域训练的方法平均提高2.4%,接着又结合了多模态自监督与对抗学习比其他UDA方法提高了3%。

      总结:提出考量每个域的多模态性质,展示了多模态自监督可以应用于域自适应(迁移学习),再结合对抗学习(source与target)可以提升模型再target上的表现。最主要的贡献在于加入多模态的自监督对于域的自适应有帮助.

    3、Introduction

      使用监督的方法进行细粒度学习主要由于数据的搜集和标注工作太大,且采集的数据场景单一,导致在学习表征的时候模型并不能表现很好。

      UDA的方法可以解决上述数据搜集与标注的问题,且采用对抗学习又可解决场景不一时域自适应的问题。作者列举前人工作提出一种多模态自监督的对抗学习UDA方式。(多模态表现在Flow与RGB,自监督表现在Flow与RGB的alignment,对抗学习表现在source与target的域自适应。由于加入考量了多种模态下的source与target域的自适应,所以比原来只加入对抗学习准确率高)

      作者做出的贡献:

    • 展示了多模态自监督可以用于域自适应
    • 提出了MM-SADA,使用了对抗学习和多模态自监督
    • 在EPIC-Kitchen数据集上进行训练,提供了UDA的benchmark(基准),并与source-only的方法做对比

    4、Related Works

      4.1UDA of Action recognition

      基于神经网络的UDA的一般方法为minimising a discrepancy measure(最小化差异方法),匹配两个域的mid-level表征。

      2014年,Muhammad Ghifary等人采用MMD(Maximum Mean Discrepancy)

      2016年,Yaroslav Ganin等人加入了对抗学习,使用GRL来反向传播。

      2018年,Fan Qi,等人研究多模态(image and video)来识别鸟的种类。

      2019年,Yu Sun,等人把自监督学习也引进入了域自适应,在目标检测任务上展示自监督学习可以替代对抗学习,在同一批工作中,自监督学习与对抗学习结合用于语义分割。以上两个工作都是基于单张图像

      作者的工作是基于视频的多模态,展示了自监督学习可以应用于目标域的行为识别。

      4.2Supervised Action Recognition

        Simonyan and Zisserman等人解决了two-stream late fusion两流后期融合(RGB和Optical-Flow)

        Joao Carreira and Andrew Zisserman提出了I3D

      4.3Self-supervision for Action Recognition

        Relja Arandjelovic and Andrew Zisserman将自监督应用到audio和RGB的多模态任务上,预测模态是否同步或者对应。

      4.4Domain Adaptation for Action Recognition

      Foucus on one significant problem.cross-viewpoint(or viewpoint-invariant) action recognition(交叉视点或者不变视点)

      Recent works have used GRLs to create a view-invariantrepresentation [27]. Though several modalities (RGB, flowand depth) have been investigated, these were aligned andevaluated independently.

      剩下就是一些deeplearning之前的了。反正归结为一句话,综上得知,我做的方法前人没有做过:)

    5、Proposed Method

     图中左边分为两个stream,一个是RGB,另一个是Optical-Flow。两个模态的数据分别经过I3D卷积模型$F^{RGB} quad and quad F^{Flow}$提取特征,生成一个向量,一方面将该向量通过GRL层(起到一个反向传播的作用,方便训练)到达域判别器,一方面将该向量输入到Classification部分(FC+softmax)。我们的目标是拉近source与target域,且将视频尽量分类正确,所以最大化$L_{d}^{Flow} quad and quad L_{d}^{RGB}$ 和最小化$L_y$,对于$self-supervised$部分,它用来判断模态是否同步和模态样本是否来自同一样本。

    5.1Classification部分(即Action Recognition最后的判别部分)

    先上损失函数

    egin{equation}
    L_y=sum_{xin{S}}-ylogP(x) \
    where:P(x)=sigma(sum_{m=1}^M G^m(F^m(x^m)))
    end{equation}

    input is multi-modal:$X=(X^1,...X^M)$,$X^m$ is $m^{th}$ modality of input
    $G^m$ is the modality's task classifiter
    $F^m$ is the modality's learnt feature extractor
    $sigma$ is defined as softmax

    为什么这样构建损失函数:https://blog.csdn.net/huwenxing0801/article/details/82791879

    5.2Adversarial Alignment 部分(即经过I3D提取特征后生成的特征向量,一方面经过GRL送入域判别器,一方面送入Classification部分,这部分为对抗学习)

    损失函数如下:

    egin{equation}
    L_d^{m}=sum_{xin{S,T}}-dlog(D^m(F^m(x)))-(1-d)log(1-D^m(F^m(x)))
    end{equation}

    $D(cdot)$ is the discriminator to predict the domain of an input($i.e.quad$source or target) from the input feature $F(cdot)$

    Given a binary domain label $d$ 来指出数据$x$是来自$Squad or quad T$,for per modality

    为了maximising判别器的loss,网络会学习两个域中invariant的特征表征部分,为了更好的匹配两个域的距离,作者提出了可以对每个模态进行惩罚如果这个模态表现出Specific features的话

    5.3Self-Supervised Alignment部分(即学习模态之间的action对应)

    对于positive的样本(即模态对应正确的样本,)我们从同一动作中采样,可能样本来自同一时间或者同一动作的不同时间;

    对于negative的样本,每个模态从不同的动作中采样。

    由于我们的任务是动作识别,所以我们只关注Action即可

    因此,就可以构建损失函数描述采样是否正确来达到自监督的模态之间的时序对齐。

    对于自监督匹配判别器$C$来说,越浅越好,因为其自监督信息都是在$F^m$中学习到的

    egin{equation}
    L_c=sum_{xin{S,T}}-clogC(F^0(x),...,F^M(x))
    end{equation}

    5.4、MM-SADA损失函数

    egin{equation}
    L=L_y+lambda_dsum_{m}L_d^{m}+lambda_cL_c
    end{equation}

    $L_y$使用源标记数据进行训练

    $L_d^m$和$L_c$都使用源无标记数据和目标域数据训练

    6、Experiments

    6.1、dataset

    EPIC Kitchens,32种环境。采用了P01,P22,P08三种环境,分别叫D1,D2,D3.识别八种动作,train和test二八分,segment是一个动作起始时间、结束时间和动作类别标签

    6.2、Architecture

    $F$是一个I3D模型,最后是一个平均池化层,dropout=0.5,lr=1e-7

    $G$是一个全连接层加一个softmax

    $D$是一个两层全连接(1000)加上ReLU

    Baseline的结构略

    6.3、Training and Hyper-parameter Choice

    Adam 优化器,先训练3000轮分类和自监督,lr=1e-2;再训练对抗学习部分6000轮,lr=2e-4

    监督学习作为准确率的上限;

    $lambda_{c}=5$,观察source domain only得来的;

    $lambda_{d}=1$;Batch_size=128;8个V100 GPUs跑了9个小时

    6.4、Baseline

    AdaBN;MMD:MCD

    结果如图:

    训练过程种准确率变化

    6.5、Ablation Study

    看哪个改动对结果准确率影响较大

    结果如图:

    观察D3-->D2的结果,发现自监督学习-only较好,则我们采用只有对抗学习来验证一下是不是自监督学习的加入带来的提升,同时调整自监督的比重

    接着我们来验证一下相同时间对齐的模态效果好还是动作相同对齐的模态效果好

     不同方法训练过后两个空间的feature map分布(越重合越好)

    7、总结

    • 作者提出了一个多模态自适应的方法,利用多模式自我监督和每个模式的对抗性训练进行细粒度的动作识别。表明多模态的对应的自监督是一个有效的域适应方法。
    • 实验表明,在进行源域与目标域自我监督任务的同时,进行多模态的自监督可以提高动作识别模型的准确率.
  • 相关阅读:
    datetime和time的时间戳用法
    ER图
    python update()
    理解JWT(JSON Web Token)认证及python实践
    python lambda匿名函数 用法
    flask_restful(转载)
    Flask-SQLALchemy
    创建只有一个元素的元组
    MySQL安装过程中显示无法启动
    聚类
  • 原文地址:https://www.cnblogs.com/lizhe-cnblogs/p/13757744.html
Copyright © 2020-2023  润新知