Bilinear Pooling
Paper: Revisiting Bilinear Pooling: A coding Perspective
常见的特征融合:BoW(Bag of Words), VLAD(Vector of Locally Aggregated Descriptor), FV(Fisher Vector)。
最近的研究表示:Bilinear Pooling (双线性池化)是一个更有效的特征融合方法。
双线性池化是通过建模特征的高阶统计信息来捕获特征之间的关系,进而生成具有表达力的全局表示。
问题:
1.双线性池化生成的表示含有大量的信息冗余(redundancy);
2.双线性池化具有突发性(burstiness)的问题,降低了表示的判别力。
方法:
1.双线性池化的编码----池化框架
双线性池化方法的形式是:
其中是双线性池化的矩阵表示,将Z向量化得到z作为全局表示。在本文中,作者证明了双线性池化是一个基于相似性的编码--池化框架。全局表示z可以写成:
其中,
B 是字典, 双线性池化计算双线性特征fi和字典bl的內积相似度。由相似度构成的编码通过一个求和池化(SumPooling)聚合成全局表示z。
在上述的编码--池化框架下,有三个的性质影响了双线性池化的性能:
(1) 双线性特征
是秩为1的矩阵,含有大量的信息冗余;
(2)字典B由输入的双线性特征决定。
因此对不同的输入进行编码所使用的字典不同;
(3)将双线性池化用于多模态任务时,字典元
常见的特征融合:BoW(Bag of Words), VLAD(Vector of Locally Aggregated Descriptor), FV(Fisher Vector)。
最近的研究表示:Bilinear Pooling (双线性池化)是一个更有效的特征融合方法。
双线性池化是通过建模特征的高阶统计信息来捕获特征之间的关系,进而生成具有表达力的全局表示。
问题:
1.双线性池化生成的表示含有大量的信息冗余(redundancy);
2.双线性池化具有突发性(burstiness)的问题,降低了表示的判别力。
方法:
1.双线性池化的编码----池化框架
双线性池化方法的形式是:
其中是双线性池化的矩阵表示,将Z向量化得到z作为全局表示。在本文中,作者证明了双线性池化是一个基于相似性的编码--池化框架。全局表示z可以写成:
其中,
B 是字典, 双线性池化计算双线性特征fi和字典bl的內积相似度。由相似度构成的编码通过一个求和池化(SumPooling)聚合成全局表示z。
在上述的编码--池化框架下,有三个的性质影响了双线性池化的性能:
(1) 双线性特征
是秩为1的矩阵,含有大量的信息冗余;
(2)字典B由输入的双线性特征决定。
因此对不同的输入进行编码所使用的字典不同;
(3)将双线性池化用于多模态任务时,字典元
2.分解的双线性编码
从编码的角度,作者提出了分解的双线性编码(FBC)融合特征。作者将基于相似性的编码替换成为稀疏编码(Sparse Coding),激活尽可能少的字典元并保持尽可能多的信息。与原始的双线性池化相比,分解的双线性编码学习一个全局字典进行编码,提高了z的判别力。
对高维的双线性特征直接编码很容易引入大量的参数,为了避免这个问题,作者将字典元进行分解,其中每个字典元被分解成两个矩阵的乘积,矩阵分解的秩远小于双线性特征的维度。
分解的双线性编码与原始的双线性池化相比,减少了大量的内存消耗。
例如在视觉问答任务中,文本特征的维度p=1024,视觉特征的维度q=2048,答案有3000个类别。使用双线性编码需要存储3000pq个参数。
如果首先计算双线性特征,并使用非分解的编码方案,其中字典元的个数k=1000,需要存储的参数量为kpq+3000k。
与这两种方案相比,分解的双线性编码不需要直接计算高维的双线性特征,且字典元的空间复杂度由O(pq)减少为O(r(p+q))。
分解的双线性编码可以比较灵活地应用到各种视觉任务中。例如:图像分类和视觉问答任务。
Note: Details adopt from CVer
Comments
Post a Comment