基于图的数据关联论文《CLIPPER: A Graph-Theoretic Framework for Robust Data Association》学习

news2024/11/20 14:37:29

一、基本概念

基本思想是将数据关联问题转换为图,计算最稠密的全连接子图,具体描述有点拗口:

1、图的节点是什么

假设有两组数据setA和setB,setA有a,b,c,d,e这几个点,setB里面有i,j,k,l这个几个点。
如果认为setA中的某个点a和setB中的某个点j能匹配,setA中的另一个点c和setB中的另一个点l能匹配,那么a-c的相对关系和j-l的相对关系应该是一致的。这个相对关系可以自己设计。这个也很好理解。
这个思路,其实也是所谓的geometry consistency检查的内容。比如orbslam中多次去检测连续几帧的特征点能连续的被匹配到,数量有一定的要求。其实orbslam里不是很严格的几何一致性检测,只是基于概率上来说,不是的概率已经很低了。

看一下论文里面的示意图:
在这里插入图片描述

2、怎么找最稠密的子图

其实以上的思路,自己用过,但是没有进行进一步的处理,提取成为一个最大全联通子图的问题,更没有想到后面的优化。
当时是找到匹配后,找一个点和另一个点计算相对关系,把另一组中的点对也找出来,计算相对关系,然后比较两个相对关系的相似度,满足条件就认为多一个支持度,大概计算一下谁的支持度最多。

重点是理解优化的思路,这个怎么就能够通过优化计算出来了。如果是原始的方法,这个计算,就是一个n的n次方的时间复杂度,可想而知,不太可能在实际中被使用。大概就是这么个结构:

for
    for 
         for
           ....
           

二、关于优化目标

1 先看看最原始的目标

在这里插入图片描述

u是我们的优化目标。我们能不能令u的所有元素都是1呢?不能,因为subject to决定了,如果M(i,j)=0,那么对应ui和uj只能有一个为1 。
原始的找出最优的u向量的值,还是一个 n n n^n nn的复杂度。

上面的问题,如果M是一个二值矩阵,则可以转换为下面的优化目标:
在这里插入图片描述

因为ui不能都取1,所以上面(2)的优化也是有意义的,很明显就是我们要找的。这个问题又等价于MCP问题。上面的文字还解析了为什么能正确的找出来,是因为假设噪声数据都是无序无规律,不会有系统性偏差的,所以相对关系就是一个随机数,而正确关联的数据,其相对关系都是比较一致的。
上面也解析了MCP是一个NP-hard的问题。不能硬解。

但是,说起来,M这个矩阵并不是一个0,1矩阵,而是内部是浮点数,这个也好理解,不是每次观测都是完美的,两个东西,在两次观测中的相对位置会有所变动是有可能的,所以,需要一个相似度来去衡量。为1的话当然好,那就是完全相似,那不是很相似,又有点相似,就需要一个值来去衡量了,看第一个示意图,用两种相似度的衡量,那个矩形框r(x)就是0或者1,而高斯分布的曲线s(x)就是对相似度有一个具体的分辨,一般这个是我们要的。

论文后面说到,公式(2)不是目标,而是需要将M考虑进去。
在这里插入图片描述

2 怎么进一步分析这个优化目标

解决(1)的主要挑战在于问题的组合复杂性,这是由于其二进制域和u的非线性目标所导致的。这使得在实时环境中以全局最优的方式解决问题变得困难,即使对于小规模的数据关联问题也是如此。一个常见的解决方法是放松(1)的域和约束,得到一个连续的问题,便于快速求解,然后将该解投影回原问题的域和约束流形。在可以考虑的放松策略中,以下方法的主要优势是从放松问题中获得的解与原问题的最优解相对应,很快将会讨论。
就是这个:
在这里插入图片描述

与(1)的区别是什么呢?M矩阵,原来是0的地方,填上了一个负数,来表示惩罚,比如同时选择ui和uj,那么总分就会被惩罚降低下来。而且这个惩罚是2倍的uiujd,就是uiujd+ujuid。把subject to的给集成进去一起考虑了。确实是高明。
关键来了:“因此,随着 d 的增加,违反约束条件的解 u 的元素被推向零。”

“当 d ≥ n 时,(5)的(局部或全局)最优解满足原始问题中的约束,即如果 M(i, j) = 0,则 u_i * u_j = 0。这个事实已经在[18]中针对 M 为二进制矩阵的情况下进行了证明。虽然我们已经将证明扩展到了加权情况,但这个讨论超出了本文的篇幅限制,将在随后的期刊投稿中呈现。我们指出,由于(1)是一个NP难题,根据初始条件,用于解决(5)的优化算法可能会收敛到局部最优解。为了保证找到全局最优解,需要搜索整个解空间。”

“给定满足 d ≥ n 的(5)的解 u,设 G0 ⊆ G 表示对应于 u 的非零元素的子图,并且 M0 是对应于 G0 的 M 的子矩阵。注意到 u,因此 G0,在(1)中满足约束条件,问题(1)可以简化为将 u 二值化,使目标最大化。这等价于(3)中的最密子图问题,其目标是找到具有最大密度的 G00 ⊆ G0。最密子图问题可以使用现有的算法[26]在多项式时间内解决,但通过选择 u > Mu 的 ω̂ = round(u > Mu) 最大元素作为 G00 的顶点,可以立即获得一个很好的近似答案。这个解决方法的合理性可以从以下众所周知的事实得到解释:u > Mu,即 G0 的谱半径,是图的密度的紧密上界[27],而 u 的非零元素,即 M0 的主特征向量,代表其对应顶点的中心性,这是图中顶点连通性的度量[28]。” 这一段话涉及到谱图,理解不了了。

待续。。。。

三、我非常感兴趣的是怎么就将这个看似离散的问题变成连续优化的问题了

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

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

相关文章

【设计模式】模板方法与策略模式的结合使用

文章目录 1. 概述1.1.简述模板方法 2.模板方法实现2.1.简单实现2.2.在SpringBoot中的实现 3.模板方法与策略模式的结合使用3.1.代码实现 4.总结 1. 概述 模板方法是一种非常简单的设计模式,只要能够理解面向对象中的继承与多态就能够理解这种设计模式,我…

安卓布局详解:探索各种布局方式

文章目录 前言一、线性布局(LinearLayout)二、相对布局(RelativeLayout)三、帧布局(FrameLayout)四、表格布局(TableLayout)五、约束布局(ConstraintLayout)六…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第十二章 无线网络安全上)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、无线网络技术1、GSM、CDMA与3G网络2、无线局域网 二、移动通信网安全性分析1、GSM网络安全2、3G网络安全 一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员…

springboot项目构建docker镜像部署到云服务器

云服务器系统环境: 华为云 Ubuntu 9.3.0-17ubuntu1~20.04 1.ECS准备docker相关环境 1.1ECS安装docker 一行一行执行 都是从官网找的命令 sudo -i apt update apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL htt…

【Leetcode -872.叶子相似的树 -993.二叉树的堂兄弟节点】

Leetcode Leetcode -872.叶子相似的树Leetcode -993.二叉树的堂兄弟节点 Leetcode -872.叶子相似的树 题目:请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一棵…

C++ 文件和流

我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。 本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C 中另一个标准库 fstream,它定义了三个新的数据类型: 数据类型描述of…

React createContext优化方案contextType

我们先来看个这样的组件 import React,{createContext} from "react"const ThemeContext createContext();export default class Demo14 extends React.Component {constructor(props){super(props);this.state {theme:"red"}}render(){const { theme }…

划片机QFN封装工艺流程揭秘及芯片切割分离技术及工艺应用

QFN封装工艺流程包括以下步骤 磨片:对晶圆厂出来的圆片进行减薄处理,方便在有限的空间中进行封装。 划片:将圆片上成千上万个独立功能的芯片进行切割分离。 装片:将芯片装入QFN封装壳中。 焊线:将芯片与壳体上的引…

Java——《面试题——Redis篇》

前文 java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 Java…

c++11 标准模板(STL)(std::basic_streambuf)(八)

定义于头文件 <streambuf> template< class CharT, class Traits std::char_traits<CharT> > class basic_streambuf; 类 basic_streambuf 控制字符序列的输入与输出。它包含下列内容并提供到它们的访问&#xff1a; 1) 受控制字符序列&#xff0…

hadoop-hdfs分布式文件系统理论(一)

为什么要开发HDFS分布式文件系统 可以更好的支持分布式计算。 hadoop distribute file system是一个分布式 文件系统&#xff0c;操作的是文件&#xff0c;增、删都是以文件为单位。 存储模型 文件线性按字节切割成块&#xff08;block&#xff09;&#xff0c;具有offset&a…

驱动开发:取进程模块的函数地址

在笔者上一篇文章《驱动开发&#xff1a;内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址&#xff0c;由于是入门系列所以并没有封装实现太过于通用的获取函数&#xff0c;本章将继续延申这个话题&#x…

【UE5 Cesium】03-Cesium for Unreal 添加本地数据集

上一篇&#xff1a;【UE5 Cesium】02-Cesium for Unreal 添加在线数据集 步骤 1. 在官网&#xff08;Adding Datasets – Cesium&#xff09;上下载一个示例 下载的是一个名为“Tileset.zip”的压缩文件 解压后文件内容如下 2. 打开虚幻编辑器&#xff0c;点击“Blank 3D Tiles…

macOS Ventura 13.5beta4(22G5059d)发布

系统介绍 黑果魏叔 6 月 28 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 4 更新&#xff08;内部版本号&#xff1a;22G5059d&#xff09;&#xff0c;本次更新距离上次发布隔了 12 天。 macOS Ventura 带来了台前调度、连续互通相机、F…

Spring Boot + Vue3前后端分离实战wiki知识库系统<九>--文档管理功能开发一

接着Spring Boot Vue3前后端分离实战wiki知识库系统&#xff1c;八&#xff1e;--分类管理功能开发二继续往下&#xff0c;这次咱们则来到文档管理功能的开发学习了&#xff0c;对于知识库的核心功能当然得是能发表文章及查看对吧&#xff0c;所以接下来一步一个脚印来完成它&…

Linux CentOS_7.9卸载Oracle适用于多版本(亲测验证)

前言&#xff1a;近期安装测评的比较多&#xff0c;在完成使命后还是可以按部就班形成个B环&#xff0c;这里主要是记录Linux卸载Oracle&#xff0c;下述方法适用于Oracle 11g&#xff0c;Oracle 12c&#xff0c;Oracle 19g版本的数据库&#xff0c;我们这边以CentOS_7.9、Orac…

C语言进阶教程(include只能包含.h文件吗?)

文章目录 前言一、include工作原理二、include只能包含.h文件吗三、include包含文件时<>和""的区别总结 前言 include在多文件编程中是非常重要的&#xff0c;我们经常使用他来包含一些头文件&#xff0c;方便我们管理代码和项目&#xff0c;那么include是只能…

《计算机系统与网络安全》 第八章 操作系统安全基础

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

Linux文件的权限

1.Linux文件的权限 linux文件的权限可以分为四类&#xff1a;可读、可写、可执行、没有权限。分别用字符r、w、x、- 表示。 2. 用户与用户组 Linux是一个多用户多任务的操作系统&#xff0c;可以通过用户和用户组来更好的控制文件的权限。 每个文件都有一个拥有者&#xff08…

能在图片上涂鸦的软件有哪些?分享几种好用涂鸦工具

涂鸦可以增加趣味性。在照片上涂鸦可以增加趣味性&#xff0c;让照片更加有趣。无论是在旅行照片中添加一些有趣的涂鸦&#xff0c;还是在生活照片中添加一些幽默的涂鸦&#xff0c;都可以让照片更具有趣味性。很多小伙伴不清楚怎么在照片上进行涂鸦&#xff0c;下面给大家分享…