论文阅读笔记《GAMnet: Robust Feature Matching via Graph Adversarial-Matching Network》

news2024/11/29 0:52:51

核心思想

  本文提出一种基于图对抗神经网络的图匹配算法(GAMnet),使用图神经网络作为生成器分别生成源图和目标图的节点的特征,并用一个多层感知机作为辨别器来区分两个特征是否来自同一个图,通过对抗训练的办法提高生成器特征提取的质量。然后采用可学习的方式获取节点关联矩阵和边关联矩阵。最后,设计了一个稀疏的图匹配求解器,相对于连续空间内的求解方法,该方法引入了图匹配中节点一一匹配的稀疏约束。并且这个操作是可微的,因此整个网络可以端到端的训练。
在这里插入图片描述

实现过程

  首先,给出图的定义形式,本文采用的是节点-边指示矩阵的表示方法 G = { X , Z , G , H } G=\{\mathbf{X,Z,G,H}\} G={X,Z,G,H},其中 X \mathbf{X} X表示节点特征, Z \mathbf{Z} Z表示边特征, G , H \mathbf{G,H} G,H表示节点-边指示矩阵,用于描述节点之间的连接关系。对于源图 G s G_s Gs和目标图 G t G_t Gt分别包含 n s n_s ns n t n_t nt个节点,节点和边的关联矩阵分别为 S v \mathbf{S_v} Sv S e \mathbf{S_e} Se,图匹配的目标就是寻找最优的节点对应关系(匹配)矩阵 P ∈ { 0 , 1 } n s × n t \mathbf{P}\in\{0, 1\}^{n_s\times n_t} P{0,1}ns×nt,目标函数与约束条件如下
在这里插入图片描述
其中 Q = ( H s T P H t ⊙ G s T P G t ) \mathbf{Q=(H_s^TPH_t\odot G_s^TPG_t)} Q=(HsTPHtGsTPGt) Q \mathbf{Q} Q中的每个元素描述了两幅图边和边之间的匹配关系。

  给定源图 G s G_s Gs和目标图 G t G_t Gt,利用图神经网络作为生成器 G \mathcal{G} G用于提取对应的特征 X ~ s \widetilde{\mathbf{X}}_s X s X ~ t \widetilde{\mathbf{X}}_t X t
在这里插入图片描述
Θ \Theta Θ表示网络参数,本文选用SplineCNN作为生成器。经过特征提取得到源图和目标图中每个节点的特征向量 x ~ h ∈ X ~ h \widetilde{x}_h\in\widetilde{\mathbf{X}}_h x hX h x ~ k ∈ X ~ k \widetilde{x}_k\in\widetilde{\mathbf{X}}_k x kX k,其中 h , k ∈ { s , t } h,k\in\{s,t\} h,k{s,t},这表示 x ~ h \widetilde{x}_h x h x ~ k \widetilde{x}_k x k既有可能来自与源图也有可能来自于目标图,作者将二者组合成一个节点对 ϕ h k = ( x ~ h , x ~ k ) \phi_{hk}=(\widetilde{x}_h,\widetilde{x}_k) ϕhk=(x h,x k),如果 h = k h=k h=k则两者来自同一个图,如果 h ≠ k h\neq k h=k则两者来自不同的图。根据两者是否来自同一个图,可以将所有的节点对分成正节点对 S p \mathcal{S}_p Sp和负节点对 S n \mathcal{S}_n Sn两类
在这里插入图片描述
  通过特征向量逐元素相加的 x ~ h + x ~ k \widetilde{x}_h+\widetilde{x}_k x h+x k方式得到节点对 ϕ h k \phi_{hk} ϕhk的特征向量,并利用一个由多层感知机构成的辨别器来区分当前输入的节点对是否来自同一个图,辨别器输出一个类别指示向量
在这里插入图片描述
D ( p ) ( ϕ h k ) \mathcal{D}^{(p)}(\phi_{hk}) D(p)(ϕhk)表示该节点对为正节点对的概率, D ( n ) ( ϕ h k ) \mathcal{D}^{(n)}(\phi_{hk}) D(n)(ϕhk)表示该节点对为负节点对的概率。在生成器和辨别器对抗训练的过程中,生成器要不断提高源图和目标图匹配节点特征的相似性,以混淆辨别器。辨别器也要不断提高区分能力,以分辨两个节点特征是否来自同一个图。图对抗神经网络的损失函数为
在这里插入图片描述
  得到节点的特征向量 x ~ s , x ~ t \widetilde{x}_s,\widetilde{x}_t x s,x t后,边特征向量 z ~ s , z ~ t \widetilde{z}_s,\widetilde{z}_t z s,z t是对应两个节点的特征向量之差。然后可以构建节点关联矩阵 S v \mathbf{S_v} Sv和边关联矩阵 S e \mathbf{S_e} Se
在这里插入图片描述
在这里插入图片描述
w , w ′ \mathbf{w,w'} w,w分别表示节点关联矩阵和边关联矩阵中的可学习权重参数。
  最后,作者提出一个稀疏的图匹配求解器用于计算最优匹配关系矩阵 P \mathbf{P} P,由于原目标函数求解是NP-hard的,因此必须要对约束条件进行一定的松弛,本文采用的是单位正交非负松弛条件,即
在这里插入图片描述
并采用一种高效的乘法更新算法(effective multiplicative update algorithm)求解上述目标函数。具体而言,给定一个初始化的解 P ( 0 ) \mathbf{P}^{(0)} P(0),按照下述迭代过程不断更新直至收敛
在这里插入图片描述
其中
在这里插入图片描述
  上述迭代过程最终会收敛到一个最优的稀疏解,这也就引入了离散的节点一一匹配的约束。此外,上述更新过程是连续且可微的,因此可以采用端到端的训练方法。为了保证得到的最有对应关系矩阵 P \mathbf{P} P与真实的匹配矩阵 H \mathbf{H} H保持尺度一致性,作者进一步采用了Sinkhorn算法作为一种规范化处理操作,这并不会改变矩阵 P \mathbf{P} P的稀疏性。最后作者用交叉熵损失函数对整个网络进行训练
在这里插入图片描述
P ~ i j \widetilde{\mathbf{P}}_{ij} P ij表示对 P \mathbf{P} P进行Sinkhorn规范化操作。

创新点

  • 采用图对抗神经网络用于特征提取
  • 提出了一种稀疏的图匹配求解器,引入了节点一一匹配的约束

算法总结

  本文是我看到的首次将图对抗神经网络应用到图匹配领域中的,利用对抗训练的方式增加匹配点之间的特征相似度,而增大非匹配点之间的差异性,提高匹配的效果。但本文是减少了不同图之间特征的差异性,来试图混淆辨别且。这会不会导致,两个来自不同的图的非匹配点之间的差异性也变小呢?这一点我还没有搞清楚。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/402107.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniCloud基础使用-好文

云函数可以看做java或者php,作为后端服务cloudfunctions/myCloud/index.jsexports.main async (event, context) > {const { name, age } eventreturn 我是${name},今年${age} };pages/index/index.vue//callFunction方法 在前端和云端都可以调用另一个云函数 …

三十而立却被裁,打工人要如何应对职场危机?

又到金三银四就业季,对于部分职场人来说,年龄成为了他们找工作的最大限制。 因为绝大部分企业招聘中层干部以下岗位的时候,都会要求年龄不超过35周岁,再加上每年千万毕业生涌入社会,竞争程度相当激烈,这就导…

QML 模型(ListModel)

LIstModel(列表模型) ListModel 是ListElement定义的简单容器,每个定义都包含数据角色。内容可以在 QML 中动态定义或显式定义。 属性: count模型中数据条目的数量dynamic动态角色,默认情况下,角色的类型…

Android 进程间通信机制(一) IPC概念和模型

一. 前言 一直想把Binder机制认识清楚, 但是它涉及Android系统的Framework, Native, kernel层, 就需要你要有 C C基础阅读底层源码的能力, 目前笔者的水平,对Binder 在Native 和kernel层的实现原理和机制也是懵逼状态, 真的是博大精深, 故现阶段先把看懂和理解清楚的整理出来…

内核链表分析

内核链表 文章目录内核链表list_head创建链表添加节点1. list_add2. list_add_tail 接口删除节点宿主结构1.找出宿主结构 list_entry(ptr, type, member)2 container_of3. 宿主结构的遍历list_head 在 Linux 内核中,提供了一个用来创建双向循环链表的结构 list_hea…

海康摄像头使用RTSP

1.协议格式。海康威视IP摄像头rtsp协议地址如下:rtsp://[username]:[passwd][ip]:[port]/[codec]/[channel]/[subtype]/av_stream主码流:rtsp://admin:12345192.168.1.64:554/h264/ch1/main/av_streamrtsp://admin:12345192.168.1.64:554/MPEG-4/ch1/mai…

SpringCloud微服务保护

微服务保护微服务保护1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel1.4.微服务整合Sentinel2.流量控制2.1.簇点链路2.1.…

java基础学习 day51 (匿名内部类)

1. 什么是匿名内部类? 隐藏了名字的内部类,实际名字为:外部类名$序号可以写在成员位置,为没有名字的成员内部类也可以写在局部位置,为没有名字的局部内部类 2. 匿名内部类的格式? new 类名/接口名() { 重…

深入理解AQS

概念设计初衷:该类利用 状态队列 实现了一个同步器,更多的是提供一些模板方法(子类必须重写,不然会抛错)。 设计功能:独占、共享模式两个核心,state、Queue2.1 statesetState、compareAndSetSta…

SpringMVC简单仿写

之前我分享过SpringMVC的基本原理与配置(原文链接:https://blog.csdn.net/L170311/article/details/129339120),为了更深层次的学习,精益求精,手动仿写了一个MVC原理实现demo,一起学习一下吧 结构目录&…

使用预训练模型自动续写文本的四种方法

作者:皮皮雷 来源:投稿 编辑:学姐 这篇文章以中文通用领域文本生成为例,介绍四种常用的模型调用方法。在中文文本生成领域,huggingface上主要有以下比较热门的pytorch-based预训练模型: 本文用到了其中的ue…

RFID在技术在工业产线上的应用

RFID在技术在工业产线上的应用一工业产线需求制造业生产线几乎每月都要损耗大量物料,并且生产结果与预期因为有误差而影响交货的情况时有发生,生产线也往往因人为原因造成种种误差。将RFID标签贴在生产物料或产品上,可自动记录产品的数量、规…

学完Java只能在互联网公司任职吗?

当然不是只有互联网公司需要软件,需要开发技术人员,传统行业、新经济领域都有软件项目需求;Java也不是只能做网站、企业应用,还可以用于嵌入式、游戏…… 互联网时代的手机、智能电视、家具、机械设备等各种有形产品都将会嵌入智…

二、Neo4j源码研究系列 - 单步调试

二、Neo4j源码研究系列 - 单步调试 一、背景介绍 上一篇我们已经把了neo4j的源码准备以及打包流程完成了,本篇将讲解如何对neo4j进行单步调试。对于不了解如何编译打包neo4j的读者,请阅读《一、Neo4j源码研究系列 - 源代码准备》。 大纲: …

【改机教程】iOS系统去除小黑条,改拍照声、拨号音、键盘音,不用越狱,支持所有机型

大家好,上次给大家分享了几个iOS系统免越狱改机教程 今天带来最新的教程,这次修改利用的是同一个漏洞,由外网大神 tamago 开发,国内大神冷风 进行汉化和优化 可以修改的地方包括 去除底部小黑条 dock栏透明 桌面文件夹透明 桌面…

golang 占位符还傻傻分不清?

xdm ,写 C/C 语言的时候有格式控制符,例如 %s , %d , %c , %p 等等 在写 golang 的时候,也是有对应的格式控制符,也叫做占位符,写这个占位符,需要有对应的数据与之对应,不能瞎搞 基本常见常用…

Cobalt Strike---(2)

数据管理 Cobalt Strike 的团队服务器是行动期间Cobalt Strike 收集的所有信息的中间商。Cobalt Strike 解析来 自它的 Beacon payload 的输出,提取出目标、服务和凭据。 如果你想导出 Cobalt Strike 的数据,通过 Reporting → Export Data 。Cobalt Str…

CentOS7自签SSL证书并配置nginx

一、生成SSL证书 1、安装依赖包 yum install -y openssl openssl-devel 2、生成私钥,会让你输入一个 4~2048 位的密码,你需要暂时记住这个密码 openssl genrsa -des3 -out server.key 2048 输入两遍相同的密码 3、生成CSR(Certificate Signing Request …

Postgresql-12.5 visual studio-2022 windows 添加pg工程并调试

pg内核学习,记录一下 文章目录安装包编译安装VS添加Postgresql工程调试源码安装包 (1)perl下载 https://www.perl.org/get.html (2)diff下载 http://gnuwin32.sourceforge.net/packages/diffutils.htm (…

23届非科班选手秋招转码指南

1.秋招情况介绍 1.1自我介绍 我是一名23届非科班转码选手,本硕均就读于某211院校机械专业,秋招共计拿下12份offer,包括大疆创新、海康威视、联发科技、理想汽车、中电28、阳光电源等各行业、各种性质企业的意向。主要的投递岗位为嵌入式软件…