1. 论文概述

  论文首次将深度学习同图匹配(Graph matching)结合,设计了end-to-end网络去学习图匹配过程。

1.1 网络学习的目标(输出)

是两个图(Graph)之间的相似度矩阵。

1.2 网络的输入

  拿其中的 imageNet 的鸟举例如下图,使用的是另一篇论文使用的数据集。数据特点:①鸟的姿态几乎一致②每个鸟选取15个关键点。这样就默认不同二图中相对应的点(如下图不同颜色的点)是 一 一 匹配的,即当作ground-truth。具体如何将image输入得到graph,下文讲。

  

1.3 论文的loss设计

  由1.2节我们知道了ground-truth,所以loss的设计:因为我们已经知道二图目标点的相互匹配结果,所以对于网络训练得到的匹配结果,我们使用网络输出的结果和真实匹配点之间的物理位移作为考量因素。具体见下文。

2. 网络设计

2.1 网络基本结构

  按顺序大概介绍每层功能:

  第一层(预处理):将上文提到的数据集(比如鸟:①姿态一致②两图15个关键点)通过vgg16提取特征。一阶特征代表点的特征信息,二阶特征代表边的特征信息,分别使用浅层的relu4_2激活信息和relu5_1的激活信息,分别记作F和U,下图的U,F的上标表示两个图。输入二图,输出F,U

  第二层:通过输入的F,U构建二图的相似度矩阵。输入上一层的F,U,输出相似度矩阵M

  第三层:输入M,输出v*。主要求解相似度矩阵的最大特征向量,当作近似的图匹配的解

  第四层:输入v*,输出排列阵S。主要将排列阵按行、列 归一化,归一化成双随机矩阵

  第五层:对排列阵S,按概率选择每一个点对应的匹配结果

  第六层:求loss,并反向传播

3. Deep Feature Extractor层

  使用VGG16提取点、边的特征信息,输入到下一层。分别记作F、U,上标表示二图

4.  Affinity Matrix Factorization 

  介绍下论文使用的相似度矩阵,使用分解形式如下:

  二图的边和点结点分别为:n点p边。m点q边。[..]是将向量变成diagonal矩阵。vec()是将矩阵按列(有些论文是按行)

  第一项[vec(Mp)]是正则项。

  看下图,H1,G1分别代表图一的点和边结点的表示,H2、G2类似。

  Me表示边结点相似度,X、Y的构成不包含运算,个人认为是输入的F、U的拼接。其中 是要训练的对象

5. 矩阵符号

  其中 “:”表示矩阵的内积(对应元素相乘)。(4)式表示函数的偏导数

6. Affinity matrix layer

该层的后向传播分析:因为上一层传入的变量是FU,参数存储在 “半三角形”这个符号中,所以需要求出对FU的偏导,更具上一节,即等于求出X Y的偏导。

中间的为推导需要使用的公式。

7.  Power Iteration Layer  

  因为图匹配数学模型为,其中M为上文的相似度矩阵,为了使上式最大化,可使用M的最大特征向量来近似,所以这层先使用幂迭代方法,求出M的最大特征向量。(通过闭式解方法)

  该层反向传播:

推导中红线第一个等式:

所以结果:

为了进一步降低计算复杂度:

最终结果:

8. bi-stochasic layer  

  这层就是将上一层输入的vk向量变成双随机矩阵。分别进行行、列的归一化。

那么进一步推导反向传播:

9. voting 和 loss

  输入时上一层的s双随机矩阵,所以只要选出概率最大的点就代表这两个点互相匹配,这里的loss函数就是计算匹配的点和真实点的物理位置。

设计基本按照softmax而来。但是我有疑问,就是为什么要减去Pi,感觉不用减,在(23)式中不是在减了嘛?

  其中P式m*2维数,所以应该是第二张图的个点的物理位置。

 有做图匹配的同学欢迎交流!!

论文原文:Deep Learning of Graph Matching

参考:https://zhuanlan.zhihu.com/p/54034817

《Deep Learning of Graph Matching》论文阅读的更多相关文章

  1. Deep Learning of Graph Matching 阅读笔记

    Deep Learning of Graph Matching 阅读笔记 CVPR2018的一篇文章,主要提出了一种利用深度神经网络实现端到端图匹配(Graph Matching)的方法. 该篇文章理 ...

  2. Deep Reinforcement Learning for Dialogue Generation 论文阅读

    本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...

  3. Deep Learning 33:读论文“Densely Connected Convolutional Networks”-------DenseNet 简单理解

    一.读前说明 1.论文"Densely Connected Convolutional Networks"是现在为止效果最好的CNN架构,比Resnet还好,有必要学习一下它为什么 ...

  4. Deep Learning 26:读论文“Maxout Networks”——ICML 2013

    论文Maxout Networks实际上非常简单,只是发现一种新的激活函数(叫maxout)而已,跟relu有点类似,relu使用的max(x,0)是对每个通道的特征图的每一个单元执行的与0比较最大化 ...

  5. Discriminative Learning of Deep Convolutional Feature Point Descriptors 论文阅读笔记

    介绍 该文提出一种基于深度学习的特征描述方法,并且对尺度变化.图像旋转.透射变换.非刚性变形.光照变化等具有很好的鲁棒性.该算法的整体思想并不复杂,使用孪生网络从图块中提取特征信息(得到一个128维的 ...

  6. Sequence to Sequence Learning with Neural Networks论文阅读

    论文下载 作者(三位Google大佬)一开始提出DNN的缺点,DNN不能用于将序列映射到序列.此论文以机器翻译为例,核心模型是长短期记忆神经网络(LSTM),首先通过一个多层的LSTM将输入的语言序列 ...

  7. Deep Learning 24:读论文“Batch-normalized Maxout Network in Network”——mnist错误率为0.24%

    读本篇论文“Batch-normalized Maxout Network in Network”的原因在它的mnist错误率为0.24%,世界排名第4.并且代码是用matlab写的,本人还没装caf ...

  8. Deep Learning 25:读论文“Network in Network”——ICLR 2014

    论文Network in network (ICLR 2014)是对传统CNN的改进,传统的CNN就交替的卷积层和池化层的叠加,其中卷积层就是把上一层的输出与卷积核(即滤波器)卷积,是线性变换,然后再 ...

  9. Deep Learning 28:读论文“Multi Column Deep Neural Network for Traffic Sign Classification”-------MCDNN 简单理解

    读这篇论文“ Multi Column Deep Neural Network for Traffic Sign Classification”是为了更加理解,论文“Multi-column Deep ...

随机推荐

  1. TreeviewEditor.rar

    本工具可以打开.保存指定格式的XML文件. 树形控件的节点可以编辑.删除.增加.使用本工具看方便地创建书或论文的目录大纲,我用这个工具已经写了好几本书了. 动态图1: 动态图2:编辑效果,支持节点拖曳 ...

  2. BGP联盟

    ---恢复内容开始--- 1. 每台路由器设置loop back口,r1和r6另外多设置两个 2. R2 R3 R4 R5 R6做ospf 以R2为例: ospf 1 router-id 2.2.2. ...

  3. web前端校招笔试题集锦

    写一个求和的函数sum,达到下面的效果 // Should equal 15 sum(1, 2, 3, 4, 5); // Should equal 0 sum(5, null, -5); // Sh ...

  4. Linux查看后台任务,关闭后台任务

    jobs查看后台任务, kill %num关闭相应的后台任务

  5. CAD卸载/完美解决安装失败/如何彻底卸载清除干净cad各种残留注册表和文件的方法

    在卸载cad重装CAD时发现安装失败,提示是已安装或安装失败.这是因为上一次卸载后没有清理干净,系统会误认为已经安装过了.有的同学是新装的系统也会出现安装失败的情况,这是因为C++ 或者.NET的原因 ...

  6. Jmeter之CSV文件读取

    注意execl表生成的CSV文件的文件编码是GB2312和分隔符就好了

  7. python中coding:utf-8的作用

    或者

  8. JavaScript中对象数组去重方法

    在一次对后端返回的对象数组的操作时想通过indexOf()或者includes()的方法来实现对对象数组的去重但是行不通,因为用indexOf()返回的都是-1,一下记录两种对象数组(更具指定属性)去 ...

  9. oracle12c 可行的解决办法:ORA-01017: invalid username/password; logon denied

    开启服务OracleServiceORCL和OracleOraDB12Home1TNSListener用Oracle SQL developer 连接测试报错:ORA-01017: invalid u ...

  10. java集合 list与Set、Map区别

      1.List,Set都是继承自Collection接口,Map则不是. 2.List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉 ,(注意:元素虽 ...