Bilinear model 以及相关的变形

最近读到了一篇关于bilinear cnn的文章,就把几篇相关的文章进行了阅读和汇总,总共有三篇文章。我将对这三篇文章分别进行描述。

Bilinear CNN Models for Fine-grained Visual Recognition-ICCV2015

<手动空格> 这篇文章的主要思想是对于两个不同图像特征的处理方式上的不同。传统的,对于图像的不同特征,我们常用的方法是进行串联(连接),或者进行sum,或者max-pooling。论文的主要思想是,研究发现人类的大脑发现,人类的视觉处理主要有两个pathway, the ventral stream是进行物体识别的,the dorsal stream 是为了发现物体的位置。论文基于这样的思想,希望能够将两个不同特征进行结合来共同发挥作用,提高细粒度图像的分类效果。论文希望两个特征能分别表示图像的位置和对图形进行识别。论文提出了一种Bilinear Model。下面就是bilinear cnn model的示意图

两个不同的stream代表着通过CNN得到的不同特征,然后将两个特征进行bilinear 操作。接下来,我们将要对bilinear model 进行定义。一个bilinear model 由四元组构成,B=(fA,fB,P,C)B=(fA,fB,P,C)B=(f_A,f_B,P,C),其中fA,fBfA,fBf_A,f_B为来个不同的特征,P为Pooling操作,C表示分类器;对特征的每一个位置lll,进行如下计算。

bilinear(l,I,fA,FB)=fA(l,I)TfB(l,I)" role="presentation">bilinear(l,I,fA,FB)=fA(l,I)TfB(l,I)bilinear(l,I,fA,FB)=fA(l,I)TfB(l,I)

bilinear (l,I,f_A,F_B) = f_A(l,I)^T f_B(l,I)
通俗一点讲,就是对图像上的每个位置上的特征进行矩阵相乘,然后进行sum pooling 或者进行max-pooling。对于一个CNN来讲,有c个通道数,那么在位置i上的特征就是1*c的大小,然后与同一位置上,不同CNN得到的1*c的矩阵进行乘积,得到c*c的矩阵,然后将所有位置上的c*c的矩阵进行求和,再转换成向量的形式就可以得到Bilinear vector。得到的特征需要进行开平方y←sign(x)|x|−−√y←sign(x)|x|y\gets sign(x)\sqrt{|x|},和归一化操作z←y/||y||2Fz←y/||y||F2z\gets y/||y||_F^2。反向传播过程为:

Bilinear model 可以看做是其他特征算子(BOW,FV,VLAD)的通用形式,

实验部分

实验采用在ImageNet 上预训练好的两个网络模型进行实验。发现模型的效果很好。另外,对与传统的模型,增加box的监督信息,会对performance有较大的提高,但是对于bilinear model 缺不明显,说明bilinear model可以更好的发现物体的位置信息,只需要图形的类标信息就可以得到一个很好结果,这对于训练数据的选取是非常有效的,可以去除繁杂的图像标注的内容。

Compact Bilinear Pooling-CVPR2016

由于上述模型的得到的特征维度较高,那么得到的参数数目较多,计算量较大,存储和读取开销较大。这篇文章就采用了一种映射的方法,希望能够达到Bilinear model的performance情况,能够尽量的减少特征的维数。
首先,论文将bilinear model 看做是一种核方法的形式,对于不同的 x的不同特征,x,y,可以进行如下的核方法转化。

然后论文希望找到一种映射ϕ(x)ϕ(x)\phi(x),使得<ϕ(x),ϕ(y)>≈k(x,y)<ϕ(x),ϕ(y)>≈k(x,y)<script type="math/tex" id="MathJax-Element-1533"><\phi(x),\phi(y)> \approx k(x,y)</script>这很像是核方法反着用的形式。

论文采用了两种方法的映射,Random Maclaurin(RM)和Tensor Sketch(TS),这两个映射的期望都是<x,y>2<x,y>2<script type="math/tex" id="MathJax-Element-1534">^2</script>,方差为1/d。

实验部分


通过对比,可以发现,当d为较小维度的时候,就可以得到与bilinear model 相同的精度。其中,蓝色线为full bilinear pooling 方法的误差。

Low-rank Bilinear Pooling for Fine-Grained Classification-CVPR2017

这篇文章的目的与第二篇文章相同,都是要降低参数维度。同时,提高模型的精度。论文与第一篇论文模型不同的是,这篇论文采用对称的网络模型,也就是两个steam是相同的,那么只需要训练一个CNN过程就好,大大的减少了计算的开支。同时特征的意义就变为在位置i上特征的相关性矩阵。最后论文采用了一个低秩的分类器进行分类。

上图是三个模型的对比图。在论文中,bilinear model变为如下形式

接下来,我们将要对得到的特征进行向量化,然后放入到SVM分类器中,进行训练。SVM的目标方程为:

这里将W变为一个c*c的矩阵,目标方程变为:

论文也证明了两个方程是就具有相同的优化解。w=vec(W),这个可以根据SVM里对w的求解可以得到。zi=vec(XiXTi)zi=vec(XiXiT)z_i = vec(X_iX_i^T)

由于W是一组对称矩阵的sum ,那么很容易得到W也是一个对称矩阵。那么可以将W分解成两个半正定矩阵的差,对W进行特征值分解。如下所示:

+表示特征值为正值的部分,负值为特征值为负数的那部分,这样就可以把W分解为U+,U−U+,U−U_+,U_-两个参数。那么为什么要这样分解,因为这样的分解可以使得W具有低秩的特性。那么为什么W要具有低秩的特性呢?论文对200个分类的器的参数求其平均值和方差,发现很多的W的值是接近于0;然后,论文通过降低W的秩来看分类的表现,发现当W的秩为10时,就可以得到与更高秩相同的performance。于是对W进行低秩约束。通过转化,可以将目标方程变为如下形式:

这里可以发现,目标方程里面不在出现XiXTiXiXiTX_i X_i^T,只有对U+,U−U+,U−U_+,U_-进行求解就可以了,这两个参数的维度可以很低。对这个两个参数的更新可以采用反向传播。另外,论文还提出了另外一种模型,就是对UkUkU_k进行降维,来减少参数的数目。
论文采用的方法,添加一个1×1×c×m1×1×c×m1\times 1\times c\times m的卷积层对U就行降维。

实验结果

【参考文献】

【1】Lin T Y, RoyChowdhury A, Maji S. Bilinear cnn models for fine-grained visual recognition[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 1449-1457.
【2】Gao Y, Beijbom O, Zhang N, et al. Compact bilinear pooling[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 317-326.
【3】Kong S, Fowlkes C. Low-rank bilinear pooling for fine-grained classification[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2017: 7025-7034.

Bilinear model 及其相关文献相关推荐

  1. boost::geometry模块model::polygon相关的测试程序

    boost::geometry模块model::polygon相关的测试程序 实现功能 C++实现代码 实现功能 boost::geometry模块model::polygon相关的测试程序 C++实 ...

  2. Worthington毒液中核酸外切酶的特征及相关文献

    毒液核酸外切酶(磷酸二酯酶 I)连续水解来自 3'-羟基末端的核糖和脱氧核糖寡核苷酸的 5'-单核苷酸.Laskowski, Sr. (1971) 对其进行了审查. 该酶已被广泛用作核酸结构和序列研究 ...

  3. 市盈率指标详解及相关文献概述

    导言 市盈率(P/E ratio)是衡量一公司股票价值是否合理的重要指标之一.本文首先对市盈率指标进行简单的介绍,并探讨了公式背后的经济学含义:其次对几篇学界论文进行简要介绍,深化对市盈率概念的理解, ...

  4. 写综述前应如何快速、高效地阅读相关文献?

    [写在前面] 综述一般会引用大量的相关文献,然而这些文献量大.内容多,应如何快速.高效地把相关文献浏览完毕,完美地完成一篇综述? 来源:https://www.zhihu.com/question/3 ...

  5. [书籍翻译]12周撰写期刊文章 学术出版成功指南——第 5 周:回顾相关文献

    第 5 周:回顾相关文献 每日任务 第 5 周每日写作任务 预计任务时间 第 1 天(星期一?) 通读第 163 页并填写这些页面上的方框:开始记录您的时间(第 169 页) 60 分钟 第 2 天( ...

  6. 铅酸蓄电池三阶simulink仿真模型,可获得蓄电池充放电特性,并提供数学模型相关文献和多组电池模型参数。

    铅酸蓄电池三阶simulink仿真模型,可获得蓄电池充放电特性,并提供数学模型相关文献和多组电池模型参数. ID:6950652335028570t***5

  7. 『文献回顾』“文本自动摘要” 相关文献综述

    文献回顾--『文本自动摘要』 在大四毕设选题时,我选到了『在线评论信息的自动摘要技术研究』的题目.因此,我决定在此记录所读的每一篇文献的思路及方法,一方面用于理清每篇文章的思路,另一方面便于日后写论文 ...

  8. 泰尔指数计算的stata代码,详细教学,包括相关文献讲解与结果分析

    泰尔指数计算的stata代码,详细教学,包括相关文献讲解与结果分析泰尔指数计算详细教学,里面包含文献讲解.结果分析与解读.stata软件操作,使用本人制作的新命令taier11,简单好用,可以计算四种 ...

  9. 【卫星影像三维重建】相关文献及资源

    目录 1.介绍 2.相关文献资料 2.1 中文文献 2.2 英文文献 3.卫星重建数据集 4.相关竞赛 4.1 DATA FUSION CONTEST 2019 (DFC2019) 4.2 DFC20 ...

最新文章

  1. 南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
  2. java输出数组中出现的次数最多的那个及次数
  3. ActiveMQ组件使用方法
  4. 怎样解决IPv4网络和IPv6网络的共存互通?
  5. Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中
  6. Maven项目错误解决小结
  7. 程序员进阶架构师路线
  8. HDU - 7031 Power Station of Art 思维 + 二分图模型
  9. nginx问题一则:nginx路径匹配特殊处理及增加cookie等二三事
  10. pyspark报错问题 Exception in thread main java.lang.UnsupportedClassVersionError 成功解决
  11. Java设计模式(四)行为型 设计模式
  12. 个人简历自我介绍求职面试PPT模板
  13. 网易云音乐java爬虫_Java爬取网易云音乐民谣并导入Excel分析
  14. 彩钢板进行BS 476-3屋顶外露部分防火测试
  15. Spring Cloud Gateway的断路器(CircuitBreaker)功能
  16. 图形学-着色(Blinn-Phong模型)
  17. docker创建CentOS云主机(docker实践)
  18. 游戏图片文件和声音文件的隐藏
  19. 模拟QQ心情图片上传预览
  20. 美团/饿了么外卖CPS联盟返利公众号小程序核心源码代码

热门文章

  1. Python 学习第六讲作业2020-12-28
  2. 别再问我彩票怎么才能中奖了,这个问题让Python给你回答
  3. 【169期】面试官问:说说为什么要限流,有哪些解决方案?
  4. JavaScript应用:前端MD5加密
  5. Spring Mvc 上传图片代码
  6. 数学分析讲义习题解答:(三:第一部分)
  7. Visual Studio2010简体中文版/旗舰版安装教程
  8. 50行python代码自动生成文章_50行Python代码,教你获取公众号全部文章
  9. PC主板晶振的分类及作用
  10. 自动化测试的流程是怎样的?