作者简介:
张皓
南京大学计算机系机器学习与数据挖掘所(LAMDA)
研究方向为计算机视觉和机器学习,特别是视觉识别和深度学习
个人主页:goo.gl/N715YT
细粒度图像分类旨在同一大类图像的确切子类。由于不同子类之间的视觉差异很小,而且容易受姿势、视角、图像中目标位置等影响,这是一个很有挑战性的任务。因此,类间差异通常比类内差异更小。双线性汇合(bilinear pooling)计算不同空间位置的外积,并对不同空间位置计算平均汇合以得到双线性特征。外积捕获了特征通道之间成对的相关关系,并且这是平移不变的。双线性汇合提供了比线性模型更强的特征表示,并可以端到端地进行优化,取得了和使用部位(parts)信息相当或甚至更高的性能。
在本文,我们将对使用双线性汇合进行细粒度分类的方法发展历程予以回顾。研究方向大致分为两类:设计更好的双线性汇合过程,以及精简双线性汇合。其中,对双线性汇合过程的设计主要包括对汇合结果规范化过程的选择及其高效实现,以及融合一阶和二阶信息。精简双线性汇合设计大致有三种思路:利用PCA降维、近似核计算、以及低秩双线性分类器。此外,双线性汇合的思想也被用于其他计算机视觉领域,例如风格迁移、视觉问答、动作识别等。我们也将介绍双线性汇合在这些领域的应用。
1. 数学准备
在本节,我们介绍本文用要用到的符号和在推导时需要的数学性质。
1.1 符号
深度描述向量(deep descripto)xi ∈RD 。其中1<=i<=HW。例如对VGG-16网络,我们通常使用relu5-3层的特征提取图像的深度描述向量,那么H=W=14,D=512。
描述矩阵(descriptor matrix)X∈RD*HW。定义为
均值向量(mean vector)μ∈RD。定义为
格拉姆矩阵(Gram matrix)G∈RD*D。定义为
协方差矩阵(covariance matrix)∑∈RD*D。定义为
其中
是中心化矩阵(centering matrix)。
分数向量(score vector)y∈Rk,softma层的输入,k是分类任务的类别数。
1.2 数学性质
由于双线性汇合相关的论文涉及许多矩阵运算,尤其是迹运算。如下性质在推导时将有帮助。这些性质在使用时即可以从左向右使用,也可以从右向左使用。
向量化操作的迹等价
弗罗贝尼乌斯范数(Frobenius norm)的迹等价
矩阵迹满足交换率和结合率
矩阵转置不改变迹
矩阵幂等价于特征值分别取幂
1.3 双线性
对函数分f(x,y),双线性(bilinear)是指当固定其中一个参数(例如x)时,f(x,y)对另一个参数(例如y)是线性的。在这里,研究的双线性函数是形如f(x,y)=XTAy这样的形式。本文关注的双线性汇合叫双线性这个名字是受历史的影响,在早期两个分支是不同的,现在主流做法是两个分支使用相同的输入,整个操作将变为非线性而不是双线性,但这个名称沿用至今。
2. 双线性汇合
双线性汇合在深度学习复兴前就已经被提出,随后,在细粒度图像分类领域得到了广泛使用。本节将介绍双线性汇合及其变体。
2.1 细粒度分类中的双线性汇合
Tsung-Yu Lin, Aruni RoyChowdhury, and Subhransu Maji. Bilinear CNN models for fine-grained visual recognition. ICCV 2015: 1449-1457.
Tsung-Yu Lin, Aruni RoyChowdhury, and Subhransu Maji. Bilinear convolutional neural networks for fine-grained visual recognition. TPAMI 2018, 40(6): 1309-1322.
双线性汇合操作通过计算深度描述向量的格拉姆矩阵G捕获特征通道之间成对的相关关系。随后,将格拉姆矩阵展成向量
并进行规范化(normalization)
得到最终的双线性特征。
在原文中,Lin等人使用了两个不同的网络得到双线性汇合的不同分支,动机是希望一个分支学到位置(where)信息,而另一个分支学到外观(what