3.2.3 NeXtVLAD
NetVLAD的弊端在于NetVLAD 看似参数量不大,但是输出特征维度太高,导致随后用于分类的全连接层参数量过大。假设有个类别,分类层的参数量为,例如,当时,很大。但是,如果直接减少聚类数又会限制模型表示能力。NeXtVLAD在NetVLAD 基础上降低 NetVLAD 最终输出的特征维度和参数量,NeXtVLAD被用于2018年YouTube-8M 竞赛的季军方案(Lin et al.,2018a),并且是2018年YouTube-8M 竞赛中表现最优的单模型。
从 NetVLAD 到 NeXtVLAD的基本思想类似于从 ResNet(见 2.1.6 节)到 ResNeXt(见 2.1.11 节),ResNeXt在ResNet的基础上对特征进行分组,各个分组内卷积之后再进行合并。具体地说,相比于VLAD和NetVLAD的计算过程分为3步,NeXtVLAD的计算过程整体分为以下4步。
(1)特征升维分组。这是NeXtVLAD相比于VLAD和NetVLAD新增的步骤。NeXtVLAD的输入也是帧特征,其中。首先通过一个全连接层(如果使用卷积层特征作为输入,则对应一个卷积层)将特征升维到,其中。随后类似于分组卷积,将每个特征分为组,其中。是两个超参数,满足,这使得的维度低于帧特征的维度。
(2)特征“聚类”。“聚类中心”仍然有个,每个“聚类中心”的维度和分组后特征保持一致,因此维度降为。和NetVLAD一样,这些“聚类中心”仍然由网络学习得到,本质仍然是全连接层的参数。
(3)特征分配。回顾 NetVLAD 对每个“聚类中心”有一个分配系数,表示帧特征属于第个“聚类中心”的概率。而 NeXtVLAD 因为涉及特征分组,因此帧特征对每个特征分组的每个“聚类”中心各有一个分配系数,表示分组后的特征属于第个“聚类中心”的概率:
(3.14)
令
(3.15)
和NetVLAD 类似,分配系数的计算可以通过全连接层(如果使用卷积层特征作为输入,则对应卷积层)和Softmax 激活函数实现。两者的区别在于,NetVLAD 只需要一个全连接层,或者说不同帧特征共享全连接层参数;而 NeXtVLAD 需要个全连接层,对应个分组,其中第个全连接层的参数为。对于升维后的帧特征,需要同时经过这个全连接层和对应的Softmax 激活函数,其中经过第个全连接层和Softmax 激活函数之后,可以得到,它的第维是。
除此之外,每个分组还有一个权重系数:
(3.16)
令
(3.17)
类似地,权重系数可以通过一个全连接层(如果使用卷积层特征作为输入,则对应卷积层)和Sigmoid 激活函数实现,其中全连接层的参数为。对于升维后的帧特征,经过该全连接层和Sigmoid 激活函数之后,可以得到,它的第维是。
(4)差值求和。在进行差值求和时,既对每个分组独立进行差值求和,又将不同分组按权重相加:
(3.18)
图3-7是NeXtVLAD的实现。和图3-4 相比,图3-7 做了一些变形,以缩小图像左右宽度。在输入帧特征之后,NeXtVLAD 首先会使用全连接层将特征升维到,其中,随后传入图3-7中下的两个部分。其中一部分又分为个单元,每个单元对应一个分组,其中第个分组利用以为参数的全连接层和Softmax 激活函数计算。另一部分通过以为参数的全连接层和Sigmoid 激活函数计算。
随后在图3-7中右侧存在个单元,包括个“聚类”和个分组,图中展示了其中的第个单元的计算过程。该单元接受两组输入,一个输入是分组之后的特征,另一个输入是对应位置相乘的结果,即。该单元内部计算过程和NetVLAD 类似,分别计算。其中,第个“聚类”的全连接层的参数为,同一“聚类”下不同分组的全连接层是共享的。最终输出是,每个各自进行内部规范化,之后整体再进行规范化,得到最终的特征作为NeXtVLAD的输出。
图3-7 NeXtVLAD计算流程图
最后,我们总结一下 NeXtVLAD 的参数量和特征维度。第 1 步,特征升维分组需要一个全连接层进行特征升维,参数量为;第 2 步,“聚类中心”需要的参数量为;第 3 步,特征分配中计算分配系数需要的参数量为、计算权重系数需要的参数量为;第 4 步,差值求和不需要额外的参数。总之,NeXtVLAD的参数量是,特征维度是。NeXtVLAD的输出特征是一组特征,每个输出特征的维度是。因此,总的输出特征维度是,小于NetVLAD的输出特征维度。
相比于NetVLAD的参数量是,NeXtVLAD的参数量反而增加了。但是,如果考虑到后续全连接层的参数,NetVLAD的总参数量是,主导项是,而 NeXtVLAD的总参数量是,主导项。可以看出,NeXtVLAD通过分组处理的操作,能大幅降低随后的分类层的参数,最终减少了总参数量。
将 VLAD、NetVLAD、NeXtVLAD 三者进行对比,如表3-1所示。
表3-1 VLAD、NetVLAD、NeXtVLAD 参数量和特征维度对比