Vision GNN: An Image is Worth Graph of Nodes

  • 感受野:在卷积神经网络中,感受野(Receptive Field)是指特征图上的某个点能看到的输入图像的区域,即特征图上的点是由输入图像中感受野大小区域的计算得到的。
    感受野并非越大越好,反而可能因为过大而过于发散
  • 梯度下降(Gradient Descent GD):简单来说就是一种寻找目标函数最小化的方法,它利用梯度信息,通过不断迭代调整参数来寻找合适的目标值。
  • 超参数:在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。

在机器学习的过程中,
超参= 在开始机器学习之前,就人为设置好的参数。
模型参数=通过训练得到的参数数据。
通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果

  • 归一化:数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。
    目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或者[-1,1]),从而消除奇异样本数据导致的不良影响。
  • 骨干网络:在计算机视觉任务中,骨干网络(Backbone)是对图像进行特征提取的基础网络。它是计算机视觉下游任务(如分类、分割、检测等)的核心组成部分。
    一个设计良好的特征提取网络能够显著提升算法的性能表现。

前置(VIT)

  • idea:
    1. 直接把图像分为固定大小的patches
    2. 通过线性变换得到patch embedding。类似于NLP的words和word embedding
    3. 由于transformer的输入就是a sequence of token embeddings,则把图像的patch embeddings送入transformer后就能够进行特征提取从而分类

研究背景

  • 选题切入点
    • CNN和Transformer存在的问题
      CNN和Transformer认为图象是网格或者序列结构,不能灵活地捕捉不规则和复杂的物体。
      在这里插入图片描述
    • GNN在CV中的研究现状
      • GNN只能用在有天然的图的特殊的视觉任务(如点云数据的分类和分割)
      • 对于计算机视觉中的一般应用(如图像分类),缺少一个通用的GNN骨干网络来处理图像
  • 用graph的优点:
    • graph是一种广义的数据结构,网格和序列可以视为图的特例
    • 图比网格或序列更灵活地建模复杂对象,因为图像中的对象通常不是方形的,其形状是不规则的
    • 一个对象可以视为部分的组合(例如说一个人可以分为头,上半身,手臂,腿),图结构可以构建这些部分之间的联系
    • GNN的先进研究可以转移到解决视觉问题上
      用图结构表示图像

方法

用图结构表示图像

图像预处理主要是将 2D 图像转化为一个图结构。图像首先被均匀切分成若干个图像块,每个图像块通过简单的映射转化为特征向量X={x1,x2,……,xN}。这里每个图像块特征视作一个节点,也就是V={V1,V2,……,VN} ,对于每个节点,找到它的 K 近邻 N(vi),然后在两者之间连接一条边,从而构建出一个完整的图结构:
在这里插入图片描述

图卷积

图卷积层通过聚集相邻节点的特征,可以在节点之间交换信息。具体而言,图卷积操作如下:

在这里插入图片描述

其中 Aggregate 聚合操作通过聚合相邻节点的特征来计算节点的表示,Update 更新操作用来更新聚合后的节点特征。在实际部署时,使用了 max-relative 图卷积:

在这里插入图片描述

增强节点多样性

直接堆叠图卷积构建视觉图网络的话,由于图像块存在相似性和图卷积的聚合机制,会出现节点过平滑的现象,也就是随着网络的加深,节点特征之间会越来越相似。为了缓解这个问题,ViG 引入前馈神经网络 FFN 模块以及更多线性变换来增强特征变换能力和特征多样性.

在图卷积之前和之后应用一个线性层,将节点特征投影到同一个域中,并增加特征的多样性。在图卷积后插入一个非线性激活函数,以避免多层退化为单层。升级后的模块称为 Grapher 模块:

在这里插入图片描述

为了进一步提高特征变换能力和缓解过度平滑现象,在每个节点上使用前馈网络(FFN)。FFN 模块是一个简单的多层感知器,具有两个完全连接的层:

在这里插入图片描述

通过 Grapher 模块和 FFN 模块的堆栈构成 ViG 块,ViG 块用作构建网络的基本构建单元。基于图像的图形表示和提出的 ViG 块,可以为视觉任务构建 ViG 网络

ViG 网络架构

通过堆叠 L 个 ViG block,构成作者的 ViG 网络结构。给出了 isotropic 式和金字塔式两种网络架构,如下表所示。

图片

表 1:Isotropic ViG 网络结构参数。
在这里插入图片描述

表 2:Pyramid ViG 网络结构参数。

贡献&局限

  • 创新点
    • 提出了一个用于视觉任务的通用GNN骨干网络,并设计了同向性结构和金字塔结构
    • 直接在图像上使用GNN会出现over-smoothing问题并导致性能变差,故提出了FC操作和FFN层来解决这个问题
  • 局限性
    • 与VIT相同,VIG在少量的数据下表现得性能并不优秀,往往需要通过大量的数据做梯度下降才能取得比较好的效果
    • 从image到graph的过程中,本文采用KNN来取K(超参数)个邻居作为邻居结点;对于不同的图像,所需的K值不一定相同。

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

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

相关文章

突破编程_前端_SVG(使用 svg-pan-zoom 库进行平移与缩放)

1 svg-pan-zoom 概述 svg-pan-zoom 是一个轻量级、高性能且易于使用的 JavaScript 库,专为增强 SVG 图像的浏览体验而设计。它提供了平移和缩放功能,使用户能够无缝探索大型或复杂的 SVG 图形。这个库允许用户对SVG图像进行交互操作,包括缩放…

企业数据模型应用:数字化转型的关键引擎

一、引言 在数字化浪潮席卷全球的今天,数据已经成为企业运营、决策和创新的核心要素。企业数据模型作为数据管理的核心工具,正逐渐成为企业数字化转型的重要引擎。本文将深入探讨企业数据模型的基本概念、应用场景、挑战与对策,以及其在数字…

NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]

NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL] Text-to-SQL(或者Text2SQL),顾名思义就是把文本转化为SQL语言,更学术一…

数据结构——双向循环链表

目录 前言 一、链表的分类 二、双向循环链表 2.1 开辟新的节点 2.2 链表初始化 2.3 打印链表 2.4 链表的尾插 2.5 链表的头插 2.6 链表的尾删 2.7 链表的头删 2.8 查找链表 2.9 在pos位置之后插入数据 2.10 删除pos位置的数据 三、完整代码实现 四、顺序表和双向…

【C/C++笔试练习】read函数、虚拟存储、用户态、线程特点、缺页处理、调度算法、进程优先级、锁的使用、创建进程、不用加减乘除做加法、三角形

文章目录 C/C笔试练习选择部分(1)read函数(2)虚拟存储(3)用户态(4)线程特点(5)缺页处理(6)调度算法(7)进程优先…

服务器Linux搭建NPM私有仓库

服务器Linux搭建NPM私有仓库 环境搭建 安装 nodejs nodejs官网:https://nodejs.org/en/download/package-manager 可以去官网自行下载nodejs的Linux版本,但是出于别的原因考虑,可以使用nvm去下载nodejs这样会切换nodejs也方便。 nvm 这…

整数运算超越存储单元表示范围:上溢出、下溢出、回绕

示例&#xff1a; /*** brief how about integer-underflow-overflow? show you here.* author wenxuanpei* email 15873152445163.com(query for any question here)*/ #define _CRT_SECURE_NO_WARNINGS//support c-library in Microsoft-Visual-Studio #include <std…

P5730 【深基5.例10】显示屏

思路&#xff1a; 此题只需要两层循环&#xff0c;通过数组映射即可求出答案 AC代码&#xff1a; #include<iostream>using namespace std;typedef long long ll; const int N 10; int a[N];int main() {ll n,m;cin >> n >> m;for(ll in;i<m;i){ll nu…

leetcode:42.接雨水

单调栈解题思路&#xff1a; 需要知道当前遍历到的元素左边和右边第一个比该元素大的元素。 如果当前遍历到的元素大于栈顶元素&#xff0c;则该元素为栈顶元素右边第一个比它大的元素&#xff0c;此时&#xff0c;栈顶元素的栈内相邻元素是该元素左边第一个比它大的元素。【…

如何自己制作一个网址二维码,可追踪扫描数据?

我们最近收到许多这样的咨询&#xff1a;如何生成能够追踪扫描次数的二维码&#xff1f;那么通过今天的文章&#xff0c;您就可以了解到什么样的二维码可以追踪扫描数据&#xff1f;以及如何制作能够追踪扫描数据的二维码&#xff1f; 一、哪种二维码可以追踪扫描数据&#xf…

智慧园区开启未来之门:揭秘科技创新如何引领园区发展,构建智慧化生活新场景

随着科技的飞速发展和全球经济的深度融合&#xff0c;智慧园区以其前瞻性的理念、创新的技术和卓越的成果&#xff0c;正成为引领城市发展和产业升级的新引擎。本文将深入探讨智慧园区如何借助科技创新的力量&#xff0c;引领园区发展&#xff0c;并构建智慧化生活新场景&#…

Linux三剑客之awk篇

目录 1、awk 1.1、awk参数 1.2、awk变量 1.3、awk分割符 1.3.1、FS 1.3.2、OFS 1.3.3、RS 1.3.4、ORS 1.3.5、NF 1.3.6、NR 1.3.7、FNR 1.3.8、FILENAME 1.3.9、ARGC与ARGV 1.4、自定义变量 1.5、printf格式化输出 1、awk 作用&#xff1a;具有强大的文本格式化…

代码随想录刷题随记23-回溯3

代码随想录刷题随记23-回溯3 39. 组合总和 leetcode链接 注意同一个 数字可以 无限制重复被选取 怎么体现这个可以重复取的思想很重要 解题代码&#xff1a; class Solution { public:void backtrace( vector<vector<int>>& ret,vector<int> &pat…

腾讯清华联合提出图像到视频生成方法-Follow-Your-Click:点击图像并加上简单提示词就可让图像动起来!

Follow-Your-Click只需单击一次和简短的提示就可以让图像的某一部分动起来&#xff0c;还支持不同的动作表达&#xff0c;比如微笑&#xff0c;悲伤&#xff0c;跳舞…… 相关链接 论文链接&#xff1a;https://arxiv.org/abs/2403.08268 项目链接&#xff1a;https://github…

vue.js入门

vue是一个渐进js框架 渐进式:按需引入Vue.js的部分功能,不用把整个框架都导入 1. 传统开发方式 用vue.global.js <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"…

当当图书网数据采集分析:10万条数据的深入洞察

基于搜索结果&#xff0c;我将为您提供一个关于当当图书网数据采集的文章框架&#xff0c;假设我们已经有了10万条数据的采集结果。请注意&#xff0c;由于没有具体的数据文件&#xff0c;以下内容将是一个示例性的框架&#xff0c;您可以根据实际采集到的数据进行填充和调整。…

1.2MHz,固定频率白光LED驱动器

一、产品概述 TX6216是一款升压转换器&#xff0c;设计用于通过单节锂离子电池驱动多达7个串联的白光LED。 TX6216采用电流模式&#xff0c;固定频率架构来调节LED电流&#xff0c;LED电流通过外部电流检测电阻测量。其低104mV反馈电压可降低功率损耗并提高效率。 TX6216具有…

懒人建站工具过时了?试试这6个WordPress主题,1小时实现高效建站

懒人建站工具&#xff0c;凭借简单易用、快速上手和个性化定制的特点&#xff0c;为不熟悉代码和程序的人提供了搭建美观实用网站的便捷途径。无需专业的前端开发知识&#xff0c;无需雇佣专业开发人员&#xff0c;用户便能轻松实现网站搭建&#xff0c;满足个人或企业需求。懒…

13.C++常用的算法_查找算法

文章目录 遍历算法1. adjacent_find代码工程运行结果 2. binary_search()代码工程运行结果 3. count()代码工程运行结果 4. count_if()代码工程运行结果 遍历算法 1. adjacent_find 代码工程 查找相邻元素是否存在,不存在返回容器最后位置的迭代器#define _CRT_SECURE_NO_WA…

Rustdesk如何编译代码实现安装后,不会在右下角出现托盘图标

环境&#xff1a; Rustdesk1.1.9 问题描述&#xff1a; Rustdesk如何编译代码实现安装后&#xff0c;不会在右下角出现托盘图标 解决方案&#xff1a; 安装后只有自定义进程图标 详细方案&#xff0c;有需要私聊