3.2.4 NetFV和其他策略
这种将传统算法进行改造,使之可以插入网络端到端训练的方法不仅可以将传统的VLAD 改造为NetVLAD和NeXtVLAD,还适用于其他传统算法。例如,可以将传统的FV(Fisher Vector,费舍尔向量)(Perronnin & Dance,2007)改造为NetFV(Miech et al.,2017),如图3-8所示。
图3-8 使用NetFV 配合上下文门控和MoE 进行动作识别网络结构图
相比于VLAD计算的是一阶信息,FV 同时计算一阶和二阶信息,沿用NetVLAD的符号表示,NetFV的结果包括两组向量,即:
(3.19)
其中,计算的是一阶信息,计算的是二阶信息,是向量和向量逐元素相除之后再逐元素平方的结果。是可学习的参数,类似于NetVLAD中实际并不是聚类得到的,NetFV中的也与FV中的高斯混合模型(Gaussian Mixture Model,GMM)无关,它们都是网络中的参数,可通过学习得到。为了保证是正数,在训练时使用均值为1、标准差很小的高斯噪声进行初始化并取值的平方。
此外,(Miech et al.,2017)还使用了上下文门控(Context Gating)和MoE(Mixture of Experts,混合专家)(Abu-El-Haija et al.,2016;Jordan & Jacobs,1994)两个模块。上下文门控类似于SENet(见2.1.12 节),是一种通道维度的注意力机制。假设上下文门控的输入为特征向量,那么输出为
(3.20)
其中,表示逐元素相乘,是可学习的参数。每一维的取值范围是,用来对输入特征各维进行门控。
上下文门控的作用有两点:一方面,上下文门控可以引入输入特征的非线性交互;另一方面,上下文门控可以对输入特征各维的数值大小进行重新校正,以抑制和预测类别不相关的信息。图3-8在两处使用了上下文门控:一处是在NetFV之后,另一处是在分类层。假设视频内容是一个人在一片树林前滑雪,模型对于“树”这一维的数值响应会很高,但是“树”这个信息对于预测人在滑雪这个动作作用不大,上下文门控可以同时参考“树”、“雪”和“滑雪”这3个维度的数值响应大小,来降低“树”这一维的数值响应值大小。对于在分类层使用的上下文门控,可以让各个类别预测的分数之间产生依赖关系,通过这种依赖关系可以学习到类别的一个先验分布,这对于建模类别标注时的偏差有帮助。
MoE(Mixture of Experts,混合专家)(Abu-El-Haija et al.,2016;Jordan & Jacobs,1994)包括多个专家模块和一个门控模块。每个专家模块相当于一个分类器,门控模块用于控制使用哪个分类器进行输出,最终输出是各个专家模块根据门控值大小的加权和,如图3-9所示。
图3-9 MoE计算流程图
具体地说,假设 MoE 层的输入特征为,专家模块共有个,其中第个专家模块的输出为,对应门控模块的第个输出是:
(3.21)
这通过一个全连接层和Softmax 激活函数实现。最终,MoE的输出为
(3.22)