语义通信与联邦学习阅读笔记(四)

深度学习从图片到视频

Two-Stream Convolutional Networks for Action Recognition in Videos

https://arxiv.org/abs/1406.2199

视频是一个很好的数据来源,比 2D 这种单一的图像能包含更多的信息,比如有物体移动的信息,还有长期的时序信息,也有音频信号等等,人眼看到的信号也都是连续的,即以视频形式展现的,所以做视频领域的学习非常符合当今多模态的趋势。本文收录于 2014 年的 NIPS (NeurIPS),是在视频领域中应用深度学习的开山之作。

对于一个 2D 图像分类的任务来说,当有一个单张图片时,只要把它扔给一个卷积神经网络就可以了,然后过几层 Conv 和 FC,最后就可以得到分类的结果,也就是 Figure 1 中上半部分(黄绿色部分)的流程。但如果现在的输入是视频,而不是单一的图片,那又应该怎么利用卷积神经网络呢?

在早期的一些工作中,要么就是在视频中抽取一些关键帧出来,然后把这些帧一个一个通过卷积神经网络,最后再把结果合并;要么就是把这些帧叠起来,当做整体的一个输入扔给卷积神经网络,然后在网络中做一些 early fusion 或 later fusion ,达到一种时空学习的效果。

early fusion:先将不同的特征融合在一起,再使用分类器对其进行分类,这个融合过程发生在特征之间,一般称之为特征融合或 “early fusion” 。
later fusion:不同的特征使用不同的分类器,得到基于每个特征的分类结果,再对所有结果进行融合(可能是投票、加权平均等),这个融合发生在不同特征分类结果之间的融合,称为 “later fusion” 或 “decision fusion”。
  之所以用一个神经网络无法处理好这种视频问题,是因为卷积神经网络比较擅长学习局部的特征,而不擅长去学习视频中这种物体的移动规律。于是作者想要 “教” 卷积神经网络学,既然无法处理这种 运动信息 (Motion Information),那么就先帮网络把这个运动信息提取出来,即 光流法 (多帧光流,multi-frame optical flow) ,那么就只需要神经网络学习从最开始的输入光流到最后的动作分类之间的映射。学习这种映射正是深度卷积神经网络最擅长的,它通过一系列的矩阵乘法去学习输入到输出之间的映射关系。

问题的难点就在于如何能够同时获取两种信息,一种是从静止的图像上获得外观的信息(如形状,大小,颜色,整个的场景信息等等,另一种就是物体的运动信息(视频中的时序信息),这两种信息对于视频理解都至关重要。

1.提出了一个双流卷积神经网络 (two-stream ConvNet),由一个空间流卷积神经网络和一个时间流卷积神经组成。
2.证实了即使只有少量训练数据的情况下,一个直接在光流数据上训练的神经网络也能取得很好的效果。
3.为了弥补训练数据的不足,使用多任务学习 (multi-task learning) 的方法,在两个不同的动作分类数据集上同时训练一个 backbone,这样不仅 backbone 训练得很好,而且在这两个数据集上都能有效地提高性能。

    作者将深度卷积神经网络扩展到视频动作识别,这是一种最新的静态图像表示方法。这项任务最近在 Large-scale Video Classification with Convolutional Neural Networks 中通过使用堆叠的视频帧作为网络的输入来解决,但结果比最好的手工设计的特征要差得多。作者发现,之前手工设计的特征基本都是在光流上去提取特征的,它能非常好地获取运动信息。于是作者提出了两个独立的卷积神经网络,即空间识别流和时间识别流,然后通过 late fusion 的方式结合得到最终的结果。这样做有两个好处:① 对于空间流来说,现在的输入就是单张图片,所以可以用 ImageNet 上预训练好的模型来做初始化,接下来的优化也就更容易做;② 对于时间流来说,因为是直接用光流来做输入,从而去识别动作,所以卷积网络本身已经不用去学运动信息了。作者是从人脑视觉系统中受到启发,人类的视觉皮层包含两个通路:ventral stream (处理物体识别) 和 dorsal stream (识别运动)。

2 用于视频识别的双流结构

视频可以自然地分解成空间部分和时间部分。空间部分主要是外观信息,用来描绘场景及物体的信息。时间部分就是运动信息,描述物体是如何运动的。基于此作者设计了双流结构,空间流学习空间特征,时间流学习运动特征,最后的结果通过 late fusion 合并就得到了最终的预测。作者提供了两种 late fusion 方法:① 加权平均;② 在得到的堆叠的L2归一化的 softmax 分数上,把它当成特征,再去训练一个 SVM 去做分类。

空间流卷积神经网络: 拿视频帧一帧一帧的作为输入,也就是从静止的图像中去做动作识别,其实就是一个图像分类任务。静止的外观信息本身就是一个非常有用的信息,因为很多动作与特定的物体相绑定(比如打球,弹琴等等),只要模型识别到了这些物体基本就能判别出动作。作者在后续的实验中,证明了基于静止图像的视频分类本身就具有相当的竞争力。而且用这种单帧的图像作输入,就可以用 ImageNet 做预训练,一般如果能够在足够大的数据集上预训练,然后在小的数据集(如 UCF-101)上做 fine-tune 的话,效果就会好很多。

3 时间流卷积神经网络

光流:(a)(b):一对连续的视频帧,其中移动的手周围的区域用青色矩形勾勒。( c ) :勾勒区域密集光流的特写 (光流可视化);(d):光流在位移向量场的水平分量

 转移到深度学习,不能只用一张光流图,而要把多张光流图叠在一起,也就是说时间流神经网络的输入是多个光流图叠加在一起的。作者在这里讨论了两种叠加的方法:

简单直白地直接把光流图叠加在一起
根据光流的轨迹,在轨迹上进行光流数值的叠加

Figure 3: 从多帧光流导出的ConvNet输入。

如 Figure 3 左图所示,是光流图叠加的方法。因为这些光流图已经是要进入网络的输入了,所以他们都已经经过 resize,因此图中都是正方形,也就是 224 × 224 224×224224×224,然后将这些光流图 stack,也就是说这个网络的输入实际上都是在对应的同样的点的位置上去取光流,对于每一张光流图来说,每次都是询问同一个点下一帧往哪走,

如 Figure 1 所示,时间流网络的结构和空间流网络基本是一样的,都是 5 层 conv 再接 2 层 FC,最后 softmax 出结果,只不过是第一个卷积层的输入维度与空间流不一样。空间流的输入维度是 3 channel (RGB 3 个 channel),时间流的输入维度为 2L channel (本文中一般使用 11 帧作为输入,也就是说会得到 10 个光流图,那么这个输入 channel 就是 2 × 10 = 20 2\times 10=202×10=20,其中这些光流图叠加的顺序是:先叠加水平部分的光流位移,再叠加竖直方向的光流位移,叠加后的维度即是 224 × 224 × 2 L 224×224×2L224×224×2L)。得到空间流和时间流两个 softmax 分数后做个 late fusion (对其求加权平均),再做 argmax 就能得到分类结果。

该模型最关键的就是引入了时间流,巧妙地利用光流信息来提供视频中的运动信息,而不需要神经网络自己学习这种运动信息。
  在测试时,无论视频有多长,都从视频中 等间距地采样 25 帧(在 UCF-101 和 HMDB-51 数据集中,它们的视频长度基本都是在 5-7 秒,因此取出的这 25 帧之间的时间间隔还是比较短的,图像变化也不是很大)。然后,对于每一帧中,通过裁剪获得四个角和中心,这样一张图就变成了 5 张图,然后对原始帧翻转,再在翻转后的图像上裁剪获得四个角和中心,这样也得到了 5 张图,所以最后是由 1 张图变成了 10 张图,那么对于一个视频 (25 帧) 来说,最终也就是得到了 250 张图。然后每张图都会通过一个 2D 的空间流神经网络得到结果,那这 250 张图得到的结果直接取平均就得到了最终的预测。

对于时间流神经网络,也是先取得 25 帧,然后分别从这 25 帧的位置开始,往后连续地取 11 帧,通过这 11 帧会得到 10 张光流图,再把这些光流图传给时间流神经网络,最后再把所有的结果去平均

当空间流和时间流都得到最终的预测结果后,再把两个流的结果做 late fusion,即加权平均,就得到了最终整个网络的预测结果。

光流计算速度慢,且占用空间大,一直都是被人诟病的,所以后续也有很多工作尝试改进光流的计算,或者直接舍弃了光流。

改进思路:

既然空间流网络中使用预训练的效果比不使用预训练的要好很多,那么时间流网络也可以尝试下使用预训练的网络。或者也可以尝试在大型数据集上进行训练,这样训练的网络应该也会好一些,但提取光流的速度和占用空间太大了。
基于轨迹的方法 (Trajectory stacking) 在实验中表现的并不好,按理来说应该比 Optical flow stacking 要好一些,所以这也是未来的一个研究方向。
很多视频中会带有相机本身的运动 (camera motion),而不是背景不动只有物体动,这样就会影响光流的计算,会导致光流计算不准,网络学习运动信息时也会有偏差。在本文中用了减均值的方法,稍微减弱了相机移动带来的影响。而之前的那些手工特征都考虑了很多如何处理相机移动带来的影响,效果也都不错,因此在深度学习方法中也应该考虑如何处理这些相机移动的影响。
 

 本文的贡献不仅仅是额外使用了时间流 ConvNet 的工作,也给提供了一种思路,当发现神经网络不能很好的解决问题时,仅仅魔改模型或改目标函数没办法很好地解决,不如给模型提供一些先验信息 (如本文中的光流),既然模型学不到,就帮它学,往往能大幅简化任务。当一个神经网络解决不了问题时,可以考虑下用多个网络,利用别的数据,用别的模型做这种多流网络,因为这些网络是互补的所以效果一般都会提升。

FedSeg: Class-Heterogeneous Federated Learning for Semantic Segmentation

面向异构联邦学习在语义分割方面的两大问题:

(1)由于非IID分布,不同的客户端可能包含不一致的前景-背景类,导致局部更新的发散。

(2)复杂密集预测任务的类异质性使得客户端的局部最优值与全局最优值相距较远。在这项工作中,我们提出了FedSeg,这是一种用于类异构语义分割的基本联邦学习方法。首先提出了一种简单但强的修正交叉熵损失来纠正局部优化并解决前景背景不一致问题。在此基础上,引入了像素级对比学习来强制执行属于全局语义空间的局部像素嵌入

本文的贡献如下:

1.系统地研究了具有各种类的语义分割任务的联合学习,特别是类异构问题。

2.提出了一个强大的base line,通过简单修改的 CE 损失和局部到全局的指标学习方法,以缓解客户之间的类别分布漂移问题。

引入了一个简单但强大的基线,该基线修改了交叉熵损失以纠正局部优化。并说明了局部到全局像素对比学习的细节。

假设有 N 个客户端,每个客户端都有一个局部语义分割数据集 Di 。对于类异质情况,Pc∼Di ̸∼ Pc∼Dj (i ̸= j),其中 c 表示类。我们的目标是在数据集 D := ∪i∈[N]Di 上训练语义分割模型 w,而不交换客户端的原始数据。目标为:

语义类的本地客户端使得客户端之间的本地优化存在分歧,导致全局模型的收敛性较差。例如,仅使用“cat”注解的本地客户端的优化与仅使用“person”注解的另一个客户端的优化有很大不同,因为本地模型的梯度方向朝向局部最优以识别“cat”,而忽略了指向其他类的方向。因此,我们建议通过聚合其他类(不在此客户端中的类)的概率来修改 CE 损失,从而通过向其他类提供梯度方向来纠正局部优化。

优化方向与 pc 和 pl 两个项相关。由于局部模型是从包含所有类信息的聚合全局模型开始的,因此预测的概率可以提供伪标签信息。如果 pc 较大,即像素标签 yj 为 c 的预测概率较高,则朝向 c 类的梯度 如果 pl 较大,由于标签不是 l,梯度提供一个更大的数字,以使方向朝向 c 类并远离 l 类。从嵌入空间的角度来看,如果局部模型从未访问过其他类的数据,它就无法学习像素嵌入空间中不同类的相对位置。因此,全局模型无法区分不同的语义,如图 1 (b) 所示。Lbackce学习了本地类和其他类之间的相对位置。然后,聚合模型通过背景对齐获得判别嵌入空间,如图3所示。

 

一种局部到全局像素对比学习方法。

在局部更新过程中,我们提取了局部模型和全局模型的像素表示。然后,局部像素表示被拉近同一语义类的全局表示,同时远离不同语义类的全局表示,FedSeg 旨在以细粒度的方式将学习到的局部像素嵌入空间强制执行到全局嵌入空间。从形式上讲,对于由具有语义标签 c 的局部模型提取的像素表示 vl,正样本是由属于同一标签 c 的全局模型提取的像素表示 v + g,而负样本是由属于其他全局模型提取的像素表示 v − g。局部到全局像素的对比度损失如下:

采用全局模型为背景像素提供伪标签,因为聚合的全局模型能够预测所有语义类别。我们设置了一个阈值 θ,并且将大于 θ 的像素的预测概率注释为相应类的伪标签。 像素到区域对比度。在实践中,上述像素到像素的对比学习在计算上效率低下,因为在密集预测设置中存在大量的像素样本。它们中的大多数是多余的,尤其是来自相同对象的像素。因此,我们选择保持每个图像的每个类别的表示,因为在一个图像中属于同一类别的像素包含相似的信息。我们采用平均运算将同一类的全局像素表示聚合为一个区域表示。具体来说,对于具有N张图像的Client i的本地数据集,我们通过全局模型提取区域表示Vrg ∈R N×K×D,其中K表示总语义类别,D表示像素嵌入的维度。阳性和阴性样本由 Vr g 提供。像素到区域的对比学习显著提高了效率。

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小小小邱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值