球面数据的几何深度学习--球形 CNN

news2024/11/16 19:53:36

目录

  • 一、说明
  • 二、球形 CNN概述
  • 三、球面数据的对称性
  • 四、标准(平面)CNN的局限性
  • 五、卷积并发症
  • 六、球面卷积
  • 七、球面卷积是不够的

在这里插入图片描述

一、说明

   球面数据的几何深度学习–球形 CNN。通过对物理世界的平移对称性进行编码,卷积神经网络 (CNN) 彻底改变了计算机视觉。

二、球形 CNN概述

   在这篇博文中,我们研究了如何将CNN成功的基本原理转移到数据表现出复杂几何形状的问题范围,例如球体。

   这篇博文由来自 Kagenova 的 Oliver Cobb 和 Augustine Mavor-Parker 共同撰写。

   球面数据示例。[照片由 NASA 在 Unsplash 上拍摄]
T在过去十年中,CNN从传统(平面)图像和视频中提取语义意义的能力得到了迅速提高。如果有足够的数据,通常可以达到人类水平的性能。然而,对具有空间结构的数据进行分析远未解决问题。对于各种问题,数据表现出空间结构,但非平面结构。示例包括虚拟现实中的 360° 图像、来自宇宙大爆炸的宇宙微波背景 (CMB) 辐射、医学成像中的 3D 扫描以及计算机图形学中的网格表面,仅举几例。

   对于这些问题中的每一个,我们都希望利用我们对数据结构的了解,特别是它们所遵循的对称性变换。正如在之前的博客文章中所讨论的,将对称性的理解编码到机器学习模型中可以成为限制所考虑模型空间的有效方法,从而可以更有效地学习模型。

   对于平面上的图像,通过应用一堆卷积滤波器,可以在图像上平移,从而轻松有效地对平移对称性进行编码。由于在所有位置都应用了相同的卷积滤波器,因此结果操作是平移等变的,即它尊重平移对称性。这意味着无论特征位于图像中的哪个位置,它都会以相同的方式刺激相应位置的激活神经元。

   不幸的是,对于非平面结构的问题,通常不存在这种简单的程序来编码对起作用的对称性的理解。然而,对于这些问题,新兴的几何深度学习领域的研究人员正在制定新的方法,这些方法利用了数据几何形式的属性,并尊重了起作用的对称性。最近取得重大进展的一系列问题是那些在球体表面上定义数据的问题。

三、球面数据的对称性

   许多字段都涉及固存在于球体上的数据。

   在球面上的每个点进行观测时,例如地球的地形图,可能会产生球面数据。然而,当对方向进行观测时,例如宇宙学中的宇宙微波背景 (CMB) 或虚拟现实和计算机视觉中的 360° 图像(见下图),也会出现这种情况。在Kagenova,我们正在努力解决深度学习在这些问题和其他涉及复杂几何数据(如球体)方面取得的巨大成功。
在这里插入图片描述

Examples of spherical data. [Original figure created by authors.]
   对于平面图像,CNN 规定定义特定特征如何变换的规则不应依赖于特征恰好位于平面中的位置。对于在球体上定义的数据,我们希望规定规则不应取决于要素在球体上的方向和位置。变换特征,然后旋转其变换形式应等同于旋转特征并变换其旋转形式。关于此属性的操作被称为旋转等变的(见下图)。

在这里插入图片描述

   旋转等方差的图示。给定球面数据(左上),应用变换 (A) 获得特征图(右上),然后旋转 (Rρ) 特征图(右下)等效于先旋转数据(左下)然后应用变换(右下)。[作者创作的原始数字。]
   在物理学中,规定控制系统行为的物理定律不应取决于系统的方向,从而产生了角动量守恒定律。因此,毫不奇怪,量子物理学中用于研究角动量的一些相同机制可用于定义深度学习中的旋转等变层(我们将在后面看到)。

四、标准(平面)CNN的局限性

   在深入研究球形深度学习的想法之前,也许很自然地想知道为什么不能直接利用平面 CNN 的有效性。我们能不能不能将球面数据投射到某个平面表示上,而简单地以通常的方式应用CNN?毕竟,我们熟悉球形世界的平面投影(地图)。

   投影的问题在于,不存在从球体到平面的投影,它同时保留了形状和面积。换句话说,扭曲是不可避免的。

   这就是为什么格陵兰岛在地球地图上通常看起来与非洲相似,而实际上它的大小不到非洲的十分之一(见下图)。

在这里插入图片描述

   球体到平面的投影会引入不可避免的变形,与所使用的投影方法无关。出于这个原因,格陵兰岛在地球地图上通常看起来与非洲相似,但实际上还不到非洲的十分之一。[图片来自Wikimedia Commons。
   这些失真意味着,当将传统CNN应用于球形图像的平面投影时,特征的显示方式会根据它们所在的位置而有所不同。当应用于球面图像的平面投影时,平面 CNN 的平移等方差不会编码旋转等方差。编码旋转等方差需要一个专门为球体几何形状设计的卷积概念。

五、卷积并发症

   不幸的是,平面 CNN 实现的简单卷积过程不能应用于球形设置。

   要了解为什么会这样,首先考虑平面数据的形式。平面数据表示为像素值的 2D 数组。对于在平面上定义的数据,我们可以在水平和垂直方向上均匀地划分像素位置。平面的这种统一采样意味着每个像素都有关联的邻居,并且所有像素的邻居位于相同的相对位置(北、东北、东等)。这意味着,通过平移,在相同采样位置定义的任何滤波器都可以以输入中的任何像素为中心,从而使样本完全对齐。

   不幸的是,没有办法对球体进行采样,使所有像素的邻居都处于相同的相对位置。球体上的位置通常使用球面坐标来描述,θ 测量极角,φ测量方位角。相对于 θ 和 φ 均匀间隔样品可得到下图左侧所示的球体采样。如果我们使用这些采样位置来定义过滤器,然后旋转过滤器,我们会发现样本位置不对齐(见下图)。无论我们如何选择对球体进行采样,这都是正确的。
在这里插入图片描述

   假设我们使用与球面数据相同的样本位置来定义一个过滤器。这样就不可能评估滤波器在各种旋转下与数据的匹配程度,因为样本不对齐。对于球体的所有采样都是如此。[原创图由作者创作。
众所周知,不可能以不变于旋转的方式离散球体。因此,不可能构造一个严格旋转等变的纯离散球面卷积。

   为了构造一个捕捉旋转等方差所需性质的卷积球形概念,我们必须考虑连续表示。值得庆幸的是,存在这样一种表示,可以执行自然的卷积概念。

   考虑球体上连续信号的表示。这些是函数 f:S² → R,将值与球体 S² 上的每个点 (θ, φ) 相关联,而不仅仅是在选定的样品位置。正如圆上的连续信号(即周期函数)可以分解为正弦和余弦函数的加权和一样,球面上的连续信号也可以类似地分解为谐波基信号的加权和(见下图)。在这两种情况下,都可以使用权重(系数)来表示信号,从而产生圆上信号的傅里叶级数表示和球面上信号的球谐表示。

在这里插入图片描述

球谐波函数。[图片来自Wikimedia Commons。
   尽管这种表示是无限的,但通过适当地截断系数向量,可以非常准确地近似真实世界的信号。从上图中我们可以看到,低度球谐波只能捕获低频变化,而高度球谐波可以捕获较高频率的变化。我们截断的点决定了数据表示的分辨率。

六、球面卷积

回想一下,我们想对满足旋转等方差性质的球面数据进行变换。

有一个非常自然的球面卷积概念,在连续设置中类似于在平面情况下执行的卷积。

这是取球面信号 f:S² → R,定义一个球面滤波器 g:S² → R,并计算由

在这里插入图片描述

这里我们使用了旋转算子 Rρ,定义为 (Rρ g)(ω)=g(ρ⁻¹ω)。换句话说,它具有将相应的反向旋转应用于函数域的效果,类似于我们如何看待平移在一维线或二维平面上定义的函数。

上述等式的解释是,卷积信号 f * g 捕获了在任何给定旋转 ρ 下滤波器 g 与信号 f 的匹配程度(见下图)。这类似于平面情况,在平面情况下,我们考虑滤波器在各种转换下与输入的匹配程度。

在这里插入图片描述

使用滤波器(中)可视化数据的球面卷积(左)以生成特征图(右)。[原创图由作者创作。
这里的主要区别在于,定义卷积信号的空间,即旋转的空间(3D 空间),与定义卷积信号和滤波器的空间(2D 球体)不同。在上面所示的说明性示例中,滤波器不变于方位角旋转,因此输出保持在球体上。

然而,将输入信号从球体提升到 3D 旋转空间并不是特别成问题。随后可以在旋转空间上定义的信号和滤波器之间执行类似的卷积概念。因此,给定一个球面输入,为了分层学习特征,我们可以执行一个球面卷积,从而在 3D 旋转组上生成激活图,然后根据需要进行任意数量的旋转组卷积。

要了解为什么上述卷积概念是旋转等变的,请注意,将输入旋转 ρ 等同于对积分内部的滤波器施加额外的 ρ⁻¹ 旋转。反过来,这又具有旋转由 ρ⁻¹ 定义卷积信号的域的效果。换句话说,在执行卷积之前旋转输入等同于执行卷积,然后旋转输出。

两个球面信号的卷积似乎需要为三维空间中的每个值计算一个二维积分。然而,幸运的是,f * g 的谐波表示与 f 和 g 的谐波表示之间的关系很简单。球面卷积可以通过在 f 的谐波系数和 g 的谐波系数之间进行矩阵乘法来计算谐波空间。鉴于深度学习从业者习惯于利用 GPU 有效地执行矩阵乘法,这特别方便。

七、球面卷积是不够的

配备了可以有效实现的旋转等变线性操作,我们似乎拥有重复应用此操作并分层学习特征所需的一切。

然而,到目前为止,我们忽略了一个重要的组成部分——非线性的引入。

在平面网络中,非线性是由逐点激活函数引入的,即通过将选定的非线性函数分别应用于每个样本位置的值。由于平面采样方案的均匀性,这确实是一种平移等变操作。但是,我们已经过渡到使用没有关联样本位置或值的谐波表示。尽管可以获得基于样本的表示,但我们无法均匀地对球体进行采样(如上所述),这意味着对每个样本应用相同的非线性函数并不是严格意义上的旋转等变操作。

然而,以这种方式引入非线性是可能的,并且正如Cohen等人(2018)和Esteves等人(2018)所表明的那样,通常相当有效。然而,为了执行卷积和非线性运算,在谐波和基于样本的表示之间反复转换是很麻烦的。此外,人们很自然地想知道失去的等价方差在多大程度上阻碍了性能。

在我们的下一篇文章中,我们将看到如何利用量子物理学的思想直接在谐波空间中引入非线性,而不会影响我们对旋转对称性的尊重程度。

引用
[1] Cohen,Geiger,Koehler,Welling,球形CNNs,ICLR(2018),arxiv:1801.10130。

[2] Esteves、Allen-Blanchette、Makadia、Daniilidis,使用球形 CNN 学习 SO(3) 等变表示,ECCV (2018),arXiv:1711.06721。

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

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

相关文章

【Postman】工具使用介绍

一、postman工具介绍 1.什么是postman postman是谷歌开发的一款网页调试和接口测试工具,能够发送任何请求类型的http请求,支持GET/POST/PUT/DELETE等方法。postman简单易用,可以直接填写URL,header,body就可以发送一…

基于SSM非遗视域下喀什旅游网站

ssm非遗视域下喀什旅游网站的设计与实现 摘要 我们的生活水平正在不断的提高,然而提高的一个重要的侧面表现就是更加注重我们的娱乐生活。旅行是我们都喜欢的一种娱乐方式,各式各样的旅行经历给我们带来的喜悦也是大不相同的。带来快乐的同时也因为其复…

详细剖析多线程2----线程安全问题(面试高频考点)

文章目录 一、概念二、线程不安全的原因三、解决线程不安全问题--加锁(synchronized)synchronized的特性 四、死锁问题五、内存可见性导致的线程安全问题 一、概念 想给出⼀个线程安全的确切定义是复杂的,但我们可以这样认为: 在多…

STL标准模板库(C++

在C里面有已经写好的标准模板库〈Standard Template Library),就是我们常说的STL库,实现了集合、映射表、栈、队列等数据结构和排序、查找等算法。我们可以很方便地调用标准库来减少我们的代码量。 size/empty 所有的STL容器都支持这两个方法&#xff0c…

腾讯云GPU云服务器_GPU云计算_异构计算_弹性计算

腾讯云GPU服务器是提供GPU算力的弹性计算服务,腾讯云GPU服务器具有超强的并行计算能力,可用于深度学习训练、科学计算、图形图像处理、视频编解码等场景,腾讯云百科txybk.com整理腾讯云GPU服务器租用价格表、GPU实例优势、GPU解决方案、GPU软…

Python 全栈系列236 rabbit_agent搭建

说明 通过rabbit_agent, 以接口方式实现对队列的标准操作,将pika包在微服务内,而不必在太多地方重复的去写。至少在服务端发布消息时,不必再去考虑这些问题。 在分布式任务的情况下,客户端本身会启动一个持续监听队列的客户端服…

vscode使用Runner插件将.exe文件统一放到一个目录下

找到右下角管理,点击扩展。 找到Code Runner插件,打开扩展设置。 向下翻,找到Executor Map,点击在settings.json中编辑。 在c和c的配置命令栏中增加\\\output\\即可。(增加的目录不能自动创建,需要手动创建…

超高并发下Redis热点数据风险破解

1 介绍 作者是互联网一线研发负责人,所在业务也是业内核心流量来源,经常参与 业务预定、积分竞拍、商品秒杀等工作。 近期参与多场新员工的面试工作,经常就 『超高并发场景下热点数据』 可用性保障与候选人进行讨论。 本文聚焦一些关键点技术进行讨论,并总结一些热点场景…

pytorch 实现线性回归 softmax(Pytorch 04)

一 softmax 定义 softmax 是多分类问题,对决策结果不是多少,而是分类,哪一个。 为了估计所有可能类别的条件概率,我们需要一个有 多个输出的模型,每个类别对应一个输出。为了解决线 性模型的分类问题,我们…

Vscode按键占用问题解决

Vscode按键占用 在使用vscode的过程中,官方按键 Ctrl . 按键可以提示修复代码中的问题,但是发现按了没有反应。 解决问题 首先确认vscode中是否设置了这个按键,默认设置了的系统输入法中是否有按键冲突了,打开输入法设置检查 …

STM32 | Systick定时器(第四天源码解析)

STM32 | Systick定时器(第四天)STM32 | STM32F407ZE中断、按键、灯(续第三天)1、参考delay_us代码,完成delay_ms的程序 定时器频率换算单位:1GHZ=1000MHZ=1000 000KHZ = 1000 000 000HZ 定时器定时时间:计数个数/f(频率) 或者 (1/f(频率))*计数的个数 500/1MHZ = 500/1…

力扣3. 无重复字符的最长子串

Problem: 3. 无重复字符的最长子串 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.川建一个set集合存储最长的无重复的字符; 2.创建双指针p、q,每次当q指针指向的字符不在set集合中时将其添加到set集合中让q指针后移,并且更新…

IDEA, Pycharm, Goland控制台乱码

IDEA, Pycharm, Goland控制台乱码 问题描述: 控制台出现����等乱码 复现频率: 总是 解决方案: 以IDEA为例 添加 -Dfile.encodingUTF-8位置 idea64.exe.vmoptions 在安装idea的bin目录idea.vmoptions idea客户端 示意图

SpringBoot3+Vue3项目的阿里云部署--将后端以及前端项目打包

一、后端:在服务器上制作成镜像 1.准备Dockerfile文件 # 基础镜像 FROM openjdk:17-jdk-alpine # 作者 MAINTAINER lixuan # 工作目录 WORKDIR /usr/local/lixuan # 同步docker内部的时间 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ…

为什么 Hashtable 不允许插入 null 键 和 null 值?

1、典型回答 浅层次的来回答这个问题的答案是,JDK 源码不支持 Hashtable 插入 value 值为 null,如以下JDK 源码所示: 也就是JDK 源码规定了,如果你给 Hashtable 插入 value 值为 null 就会抛出空指针异常 并目看上面的JDK 源码可…

SpringAOP+自定义注解实现限制接口访问频率,利用滑动窗口思想Redis的ZSet(附带整个Demo)

目录 1.创建切面 2.创建自定义注解 3.自定义异常类 4.全局异常捕获 5.Controller层 demo的地址,自行获取《《—————————————————————————— Spring Boot整合Aop面向切面编程实现权限校验,SpringAop自定义注解自定义异常全局…

Godot.NET C# 工程化开发(1):通用Nuget 导入+ 模板文件导出,包含随机数生成,日志管理,数据库连接等功能

文章目录 前言Github项目地址,包含模板文件后期思考补充项目设置编写失误环境visual studio 配置详细的配置看我这篇文章 Nuget 推荐NewtonSoft 成功Bogus 成功Github文档地址随机生成构造器生成构造器接口(推荐) 文件夹设置Nlog 成功!Nlog.configNlogHe…

AIPaperPass功能介绍

点击下方▼▼▼▼链接直达AIPaperPass ! AIPaperPass - AI论文写作指导平台 目录 1.AIPaperPass 插入代码功能上线! 体验方式 2.AIPaperPass介绍 1.高质量 2.免费大纲 3.参考文献 4.致谢模板 3.书籍介绍 AIPaperPass智能论文写作平台 1.AIPap…

Mac电脑高清媒体播放器:Movist Pro for mac下载

Movist Pro for mac是一款专为Mac操作系统设计的高清媒体播放器,支持多种常见的媒体格式,包括MKV、AVI、MP4等,能够流畅播放高清视频和音频文件。Movist Pro具有强大的解码能力和优化的渲染引擎,让您享受到更清晰、更流畅的观影体…

吴恩达2022机器学习专项课程(一) 3.6 可视化样例

问题预览 1.本节课主要讲的是什么? 2.不同的w和b,如何影响线性回归和等高线图? 3.一般用哪种方式,可以找到最佳的w和b? 解读 1.课程内容 设置不同的w和b,观察模型拟合数据,成本函数J的等高线…