s2fft库介绍:可微分和加速球谐变换

news2024/10/7 14:33:05

一、说明

        科学和工程的许多领域都会遇到在球体上定义的数据。对此类数据进行建模和分析通常需要傅里叶变换的球面对应物,即球面谐波变换。我们简要概述了球谐变换,并提出了一种新的可微分算法,该算法专为GPU上的加速而定制[1]。该算法在最近发布的 S2FFT python 包中实现,该包同时支持 JAX 和 PyTorch。

        我我们经常对分析存在于球体上的数据感兴趣。从量子化学、生物医学成像、气候物理学和地球物理学到更广阔的宇宙,应用的多样性是显着的。

        人们最熟悉的领域是在物理科学中,特别是在大气科学、地球物理建模和天体物理学中。

        最广为人知的球形数据案例的例子,如地球(左)和艺术家对天文观测的印象(右)。[地球图像来源 维基百科;天体物理学图片来自维基百科

        这些问题自然是球形的,因为观测是在球体表面的每个点进行的:地球物理学的地球表面和天体物理学的天空。其他例子来自计算机图形学和视觉等应用,其中 360° 全景相机从各个方向捕捉您周围的世界。

        在许多情况下,手头问题的球形性质很容易看出;然而,情况并非总是如此。也许令人惊讶的是,球形数据在生物学学科中经常遇到,尽管球形方面通常不那么明显!由于我们经常关注生物学研究中的局部方向,例如水在大脑内扩散的方向,因此我们会遇到球形数据。

人脑中神经元连接的扩散张量成像。在每个体素中,神经元可以自由地向任何方向移动,因此问题自然是球形的。[阿尔弗雷德·安万德(Alfred Anwander)的动画,CC-BY许可。

鉴于此类数据的普遍性,开发出许多球形分析技术也就不足为奇了。对数据的频率分析可能很有见地,通常可以为进一步的分析或建模提供统计摘要或有效的表示。最近,几何深度学习技术已被证明对复杂域的数据分析非常有效[2–6],特别是对于高度复杂的问题,如分子建模和蛋白质相互作用(参见我们之前的文章《几何深度学习简介》)。

二、傅立叶遇见勒让德

        因此,我们有关于球体的数据和各种可以分析球面数据的技术,但我们需要数学工具来做到这一点。具体来说,我们需要知道如何有效地将球形数据分解为频率。

        傅里叶变换提供了频率分解,通常用于计算数据中的统计相关性。许多物理系统也可以在频率空间中更直接地描述,因为每个频率可以独立演化。

        为了将标准的傅里叶变换扩展到球体,我们需要两位 17 世纪法国数学家的共识:约瑟夫·傅立叶和阿德里安-玛丽·勒让德。

        约瑟夫·傅立叶(左)和阿德里安-玛丽·勒让德(右)。可悲的是,勒让德的漫画是他唯一已知的形象。[傅里叶图片来源 维基百科。勒让德图片来源于维基百科

        首先,让我们考虑如何将欧几里得数据分解为不同的频率。这种数据转换首先由约瑟夫·傅立叶(Joseph Fourier)推导,由下式给出

        它几乎随处可见,并且是本科物理的主要内容,这是有原因的!这是通过将我们的数据 f(x) 投影到一组三角函数(称为)上来工作的。人们可以在球体上有效地做同样的事情,但基函数现在由球谐 Ylm 给出:

        其中 (θ, φ) 是通常的球面极坐标。

球谐基函数(实分量)。[来源于:Source: 维基百科

        球谐波(如上图所示)可以进一步分解为指数和勒让德多项式的乘积——à la Adrien-Marie Legendre——为

        因此,球谐变换可以写为傅里叶变换,然后是相关的勒让德变换。真正的困难在于评估变换的勒让德部分:它要么计算成本高昂,要么内存耗大,这取决于人们选择的方法。

三、可区分性的重要性

可微分编程的发展开辟了许多新的分析类型。特别是,许多应用需要可微分的球面变换。

        可微分编程是一种编程范式,其中数字计算机程序可以通过自动微分进行整体微分。[1][2][3][4][5]这允许对程序中的参数进行基于梯度的优化,通常通过梯度下降,以及基于高阶导数信息的其他学习方法。可微分编程已广泛应用于各个领域,尤其是科学计算和机器学习。[5] 2016年初,欧洲航天局的高级概念团队提出了以系统的方式采用这种框架来改进学习算法的早期建议之一。

        球体上的机器学习模型需要可微变换,以便模型可以通过基于梯度的优化算法进行训练,通过反向传播。

        用于混合数据驱动和基于模型的方法[8]的新兴物理增强机器学习方法[7]也需要可微分物理模型,在许多情况下,这些模型本身需要可微球变换。

        考虑到这一点,很明显,对于现代应用来说,一个有效的球谐变换算法是必要的,但还不够。可区分性是关键。

四、一个名为 S2FFT 的软件包

        这一切都很好,但如何有效地评估球谐变换呢?已经开发了各种算法,以及一些很棒的软件包。然而,对于现代应用程序,我们需要一个可区分的,可以在GPU等硬件加速器上运行,并且计算可扩展的应用程序。

        通过从头开始重新设计核心算法(如我们相应的论文 [1] 中深入描述的那样),我们最近开发了一个名为 S2FFT 的 python 包,它应该符合要求。

        S2FFT 是在 JAX 中实现的,JAX 是 Google 开发的一种可微分编程语言,还包括一个 PyTorch 前端。

S2FFT 是一个 Python 包,用于实现可微分和加速的球谐变换,具有 JAX 和 PyTorch 中的接口。[图片由作者创建。

        S2FFT提供两种操作模式:预先计算关联的勒让德函数,然后在运行时访问这些函数;或在转换过程中即时计算它们。预计算方法的速度几乎与你能得到的一样快,但存储所有勒让德函数值所需的内存会随着分辨率的立方变化而缩放,这可能是一个问题!相反,我们提供的第二种方法是递归地即时计算勒让德项,因此可以扩展到非常高的分辨率。

        此外,S2FFT还支持混合自动和手动微分方法,以便可以有效地计算梯度。

        该软件包旨在支持球体上的多种不同采样方案。在发布时,支持等角(McEwen & Wiaux [9]、Driscoll & Healy [10])、Gauss-Legendre 和 HEALPix [11] 采样方案,尽管将来可以很容易地添加其他方案。

S2FFT支持的球体上的不同采样方案。[原创图由作者创作。

S2FFT 软件包在 PyPi 上可用,因此任何人都可以通过运行以下命令直接安装它:

pip install s2fft

        或者通过运行以下命令来获取 PyTorch 支持:

pip install "s2fft[torch]"

        从这里可以简单地调用顶级转换

import s2fft

# Compute forward spherical harmonic transform
flm = s2fft.forward_jax(f, L) 

# Compute inverse spherical harmonic transform
f = s2fft.inverse_jax(flm, L)  

        这些功能可以开箱即用,并作为层集成到现有模型中,无论是在 JAX 还是 PyTorch 中,都完全支持正向和反向模式区分。

五、未来展望

        随着研究人员对科学应用的可微分编程越来越感兴趣,迫切需要现代软件包来实现科学通常基于的基础数学方法,例如球谐变换。

        我们希望 S2FFT 在未来几年会有很大的用处,并很高兴看到人们会使用它!

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

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

相关文章

basic_string.h不同版本引起的异常崩溃

程序运行时报错,查看core文件,发现basic_string.h报错 经过排查发现 编译文件CMakeLists中设置了_GLIBCXX_USE_CXX11_ABI 0 _GLIBCXX_USE_CXX11_ABI 是C中的编译宏, 用来控制string及list使用的版本。 该宏仅在GCC5.1及后续版本中有效。 s…

说说JVM的垃圾回收机制

简介 垃圾回收机制英文为Garbage Collection, 所以我们常常称之为GC。那么为什么我们需要垃圾回收机制呢?如果大家有了解过Java虚拟机运行时区域的组成(JVM运行时存在,本地方法栈,虚拟机方法栈,程序计数器,堆&#xf…

第六节:使用SMB开发WebService

一、概述 webservice在日常开发中是常用的接口形式,SMB在设计之初就将webservice作为重要的代理协议。在组件库中提供了webservice input和webservice output两个组件,分别用于发布接口和调用接口。 二、发布webservice 在csdnProject工程中创建名为c…

C语言易错知识点:scanf函数

scanf在C语言学习中比较常用,但因为其涉及屏幕缓冲区导致有的时候会调入陷阱,下面分享一下常见的需要注意的事项: 1.输入末尾带有回车\n 当我们输入数据后,最后按下回车时,屏幕缓冲区的末尾都会含有这个字符 scanf的…

综合知识篇08-数据库系统考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例…

【工具推荐】tmux 终端与会话分离神器 | 再也不用担心训练到一半不小心关闭终端导致训练终止了

文章目录 [toc] 0 什么是终端?什么是会话?1 tmux的安装2 tmux的基本操作2.1 启动与退出(杀死tmux)2.2 分离会话2.3 重接会话2.4 当前已有的会话查看2.5 切换会话 0 什么是终端?什么是会话? tmux是一个 ter…

每个私域运营者都必须掌握的 5 大关键流量运营核心打法!

很多人觉得私域运营比较简单,只是运营的事情,但事实并非如此,私域运营体系非常大,包含了公私域联动、品牌运营、品类战略,它是一个自上而下,由内到外的系统化工程。 很多人天天在想着如何引流拓客&#xf…

人民币跨境支付系统CIPS应用架构设计

人民币跨境支付系统(Cross-border Interbank Payment System,简称CIPS)作为中国重要的金 融市场基础设施之一,为境内外机构提供人民币跨境支付清算服务及其他相关服务。随着CIPS网络延伸 和规模扩大,为保障公司核心竞争…

每日一题——LeetCode1694.重新格式化电话号码

方法一 模拟: 首先去除number里面的破折号和空格,取出纯数字组成的字符串str。 对于str每三个数分成一组,加一个破折号,当str的长度小于等于4时再分情况讨论,如果等于4就分为22形式,如果小于4&#xff0c…

网络编程--高并发服务器

这里写目录标题 引入场景 多进程并发服务器二级目录二级目录二级目录 多线程并发服务器二级目录二级目录二级目录 多路IO转接服务器设计思路对比引入 select函数简介参数介绍第一个参数第234参数返回值对于第234参数的应用对于最后一个参数总结 附加操作(附加四个函…

一招搞定:教你用苹果手机截取滚屏网页

打开Safari浏览器,进入需要截取的网页。 点击屏幕底部的分享按钮,即中间有一个向上箭头的矩形图标。 在弹出的分享菜单中,向左滑动找到“截屏”选项,点击后选择“整页”。 系统会自动将网页保存为PDF文件,并自动打开…

【Redis知识点总结】(五)——Redis实现分布式锁

Redis知识点总结(五)——Redis实现分布式锁 setnxsetnx expiresetnx expire lua脚本set nx exset nx ex 随机值set nx ex 随机值 lua脚本set ex nx 随机值 lua脚本 锁续期RedissonRedLock 在Redis的众多应用场景中,分布式锁是Redis比…

Ypay源支付2.8.8免授权聚合免签系统

本帖最后由 renleixiaoxu 于 2024-3-15 09:46 编辑 产品介绍 XPay是专为个人站长打造的聚合免签系统,拥有卓越的性能和丰富的功能。采用全新轻量化的界面UI,让您可以更加方便快捷地解决 知识付费和运营赞助的难题。同时,它基于高性能的Thin…

算法练习:前缀和

目录 1. 一维前缀和2. 二维前缀和3. 寻找数组中心下标4. 除自身以外数组的乘积5. !和为k的子数字6. !和可被k整除的子数组7. !连续数组8. 矩阵区域和 1. 一维前缀和 题目信息: 题目链接: 一维前缀和思路:求前缀和数组,sum dp[r] …

预应力锚杆测力计安装埋设

锚杆测力计用于观测预应力锚杆预应力的形成与变化。当前,预应力锚杆广泛地应用于岩土工程的锚固结构中,通过安装测力计观测锚杆,可以了解锚固力的形成与变化,从而保证监测工程的质量与安全。测力计的安装包括安装测力计和观测锚杆…

【LeetCode热题100】 226. 翻转二叉树(二叉树)

一.题目要求 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 二.题目难度 简单 三.输入样例 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:…

餐饮店引流活动方案与最佳营销方案揭秘

想开实体店或正在创业的朋友们,大家好!我是一名资深的实体店创业者,本人经营鲜奶吧5年时间,做的是社区店,今天我将分享一些餐饮店引流活动和营销方案的干货,希望能给大家带来一些启发和帮助。 一、引流活动…

【人工智能】英文学习材料02(每日一句)

🌻个人主页:相洋同学 🥇学习在于行动、总结和坚持,共勉! 目录 Supervised Learning(监督学习) Unsupervised Learning(无监督学习 ) Semi-supervised Learning&#…

【视频图像取证篇】模糊图像增强技术之色彩空间类滤波器场景应用小结

【视频图像取证篇】模糊图像增强技术之色彩空间类滤波器场景应用小结 模糊图像增强技术之色彩空间HSI滤波器—【蘇小沐】 (一)色彩空间滤波器 1、HSI滤波器 HSI(色调、饱和度和强度)滤镜用于将彩色图像转换为 HSI 图像。这意味…

当贝X5 Ultra坚果N1S Ultra哪个好?2024年旗舰投影仪哪家强

家用投影仪在目前年轻用户新家装修的娱乐选择上,有着越来越大的占比。不过虽然投影仪的体验已经逐渐弯道超越传统电视,画面和沉浸感已经抹去了曾经的一些小问题;但仍然有很多雷区和选购的迷惑,以致于在同价位往往陷入不知道哪款更…