Skip to content
LinCoce edited this page Dec 7, 2019 · 1 revision

双线性汇合(bilinear pooling)在细粒度图像分析及其他领域的进展综述

原创: 张皓 SigAISIGAI推荐SIGAI 资源大汇总

作者简介:张皓

南京大学计算机系机器学习与数据挖掘所(LAMDA)

研究方向:计算机视觉和机器学习(视觉识别和深度学习)

个人主页:goo.gl/N715YT

细粒度图像分类旨在同一大类图像的确切子类。由于不同子类之间的视觉差异很小,而且容易受姿势、视角、图像中目标位置等影响,这是一个很有挑战性的任务。因此,类间差异通常比类内差异更小。双线性汇合(bilinear pooling)计算不同空间位置的外积,并对不同空间位置计算平均汇合以得到双线性特征。外积捕获了特征通道之间成对的相关关系,并且这是平移不变的。双线性汇合提供了比线性模型更强的特征表示,并可以端到端地进行优化,取得了和使用部位(parts)信息相当或甚至更高的性能。

在本文,我们将对使用双线性汇合进行细粒度分类的方法发展历程予以回顾。研究方向大致分为两类:设计更好的双线性汇合过程,以及精简双线性汇合。其中,对双线性汇合过程的设计主要包括对汇合结果规范化过程的选择及其高效实现,以及融合一阶和二阶信息。精简双线性汇合设计大致有三种思路:利用PCA降维、近似核计算、以及低秩双线性分类器。此外,双线性汇合的思想也被用于其他计算机视觉领域,例如风格迁移、视觉问答、动作识别等。我们也将介绍双线性汇合在这些领域的应用。

1. 数学准备

在本节,我们介绍本文用要用到的符号和在推导时需要的数学性质。

1.1 符号

深度描述向量(deep descriptor)。其中1<=i<=HW 。例如对VGG-16网络,我们通常使用relu5-3层的特征提取图像的深度描述向量,那么H=W=14,D=512。

描述矩阵(descriptor matrix)。定义为

均值向量(mean vector)μ∈RD。定义为

格拉姆矩阵(Gram matrix)。定义为

协方差矩阵(covariance matrix)。定义为

其中

是中心化矩阵(centering matrix)。

分数向量(score vector),softma层的输入,k是分类任务的类别数。

1.2 数学性质

由于双线性汇合相关的论文涉及许多矩阵运算,尤其是迹运算。如下性质在推导时将有帮助。这些性质在使用时即可以从左向右使用,也可以从右向左使用。

向量化操作的迹等价

弗罗贝尼乌斯范数(Frobenius norm)的迹等价

矩阵迹满足交换率和结合率

矩阵转置不改变迹 5. 总结

本文介绍了双线性汇合在细粒度图像分类及其他计算机视觉领域的应用。研究方向大致分为两类,设计更好的双线性汇合过程,以及精简双线性汇合。未来可能的研究方向包括以下几个部分

  • 双线性汇合结果的规范化。目前发现矩阵幂规范化对提升性能很有帮助,是否还有其他规范化方法,以及能否设计出其在GPU的高效实现?
  • 精简双线性汇合。目前研究的一大关注点是对参数矩阵进行低秩近似,是否还有其他精简双线性汇合方法?
  • 双线性汇合原理。目前对双线性汇合原理的理解围绕着深度描述向量之间的二阶多项式核展开,是否还有其他对双线性汇合原理的理解方法?

此外,经典双线性汇合官方源代码是基于MatConvNet实现,这里提供一个基于PyTorch的实现版本:https://github.com/HaoMood /bilinear-cnn

Clone this wiki locally