使用图网络和视频嵌入预测物理场

文章目录

  • 一、说明
  • 二、为什么要预测?
  • 三、流体动力学模拟的可视化
  • 四、DeepMind神经网络建模
  • 五、图形编码
  • 六、图形处理器
  • 七、图形解码器
  • 八、具有不同弹簧常数的轨迹可视化
  • 九、预测的物理编码和推出轨迹

一、说明

这是一篇国外流体力学专家在可视化流体物理属性的设计实现。我们知道物理模型多半是微分方程,而将微分粒子看成是训练数据,能否得出解的近似形式?本篇给出这样的启发。对于重事科研工作的人无疑是个启发。

二、为什么要预测?

为什么我们需要预测实体行为?假设你想建造一艘船。事实证明,在实际建造船只之前验证您的船只设计要比事后验证要便宜得多。为此,您应该在实际制造之前检查您的发明在指定环境中的行为。您可以使用计算机模拟来做到这一点,这些模拟近似于水和船之间的物理相互作用。
在这里插入图片描述

三、流体动力学模拟的可视化

举一个更微不足道的例子,我们可以看看视频游戏。下面的游戏《盗贼之海》是整个游戏行业中最逼真的水表现之一。在这种情况下,模拟的准确性可能会降低,但会牺牲性能,因为您希望游戏尽可能快速流畅地运行。

我们希望这篇文章能简要介绍基于图网络的模拟器,并展示我如何扩展这种方法,以便它可以根据短视频推断任何系统的轨迹。

那么,你是怎么做到的呢?这些是纳维-斯托克斯方程。它们描述了粘性流体物质的运动,可用于描述管道中的水流或飞机机翼周围的气流。如果你碰巧不小心在三维空间中找到了它们的解决方案,请打我,因为如果你这样做了,就会有一百万美元的奖金。简而言之,数学很难。幸运的是,有一些方法可以在不计算这个怪物的情况下近似流体运动。
在这里插入图片描述
纳维-斯托克斯方程

这些模拟速度很快。你在这里看到的是一种称为平滑粒子流体动力学的模拟方法。粒子会影响附近的其他粒子。描述这些局部行为并将它们部署在数千个粒子上可以产生非常准确的结果。让我们试着弄清楚如何构建一个预测这种行为的神经网络。
在这里插入图片描述

四、DeepMind神经网络建模

为此,我们需要更明确地构建问题。输入是一组粒子。然后,这个状态应该通过一些有趣的函数来提出这些粒子的新位置。重复这个过程一百万次,我们就有了一个完整的模拟。很简单。
在这里插入图片描述
DeepMind的人会完全同意这一点。他们提出了一种可以预测复杂物理系统行为的方法。您看到的其中一个视频是预测的轨迹,而另一个视频是使用传统方法模拟的。你能猜到什么是什么吗?

正如你所看到的,DeepMind的人知道他们在做什么。
在这里插入图片描述
好的,但是如果你想预测沙子的运动呢?然后,您需要在新数据集上从头开始重新训练新模型。

如果你想有一个专门研究粘液的模型怎么办?然后,新的数据集,新的训练,新的模型。

介于两者之间呢?预测粘沙行为的模型呢?同样,它需要从头开始训练。即使你已经有一个沙子模型和一个粘液模型!

这就引出了我们的研究问题:物理系统的视频是否包含足够的信息来推广图网络?

我们想建立一个基于单个视频的系统,可以预测视频中可见的系统的行为。理想情况下,整个系统只需要一个单一的训练程序,并且能够在不同的系统中很好地推广。

所以这是我的建议。我们将建立一个模型。该模型将观看物理系统的视频,并预测其在某个潜在空间中的属性。这将允许对任何系统的物理属性进行编码,同时保留它们之间的任何差异。正如你所看到的,goop-o-sand 位于沙子和粘液之间的某个地方,表明它的行为应该是这两者的“平均值”。
在这里插入图片描述
不同系统的物理编码的可视化。从顶部:沙子、水、粘液、沙子

因此,让我们使用这种物理编码来预测系统的运动。首先,视频编码器观看视频并计算系统的物理特性。此编码将根据它观看的视频而有所不同。

然后,将这种编码与来自原始粒子的信息相结合。

首先,我们从原始粒子中创建一个图形。每个粒子都变成一个图顶点。边缘是在相邻粒子之间创建的。每条边都包含有关其连接的粒子之间位移的信息。每个粒子存储其最后三个速度以及视频编码器提供的物理属性。

现在,边和顶点都存储向量。我们可以将这些向量通过它们各自的编码器来获得潜在图。编码图的结构与原始图完全相同,但边和顶点的编码已使用这些小型神经网络进行了更新。

在这里插入图片描述

五、图形编码

完善!现在,每条边都有一些编码,每个顶点都有一些其他编码。我们将执行一个称为消息传递的过程。在此示例中,我们将重点关注紫色节点。

首先,我们找到连接到紫色节点的三条边。让我们关注具有 E-Zero 编码的边缘。我们将按以下方式构造一个向量。由于每条边总是只连接两个节点,因此我们将采用这两个节点的编码。在本例中为 V-0 和 V-1。此外,我们还将包括边缘本身的编码。我们对连接到紫色节点的每个边重复此过程。

然后,这些向量通过另一个神经网络,然后相加在一起。

此输出最终通过另一个小模块,以获得新的节点编码。此过程的输出将反馈到原始节点。然后一遍又一遍地重复整个过程。在我的实验中,我执行了其中三个消息传递步骤。

在这里插入图片描述

六、图形处理器

完善!现在是最后一步。每个粒子都有一个与其编码相关的向量。

我们最终可以解码图形,最终获得每个粒子的加速度。既然我们有加速度,我们就可以计算出新的速度。有了新的速度,我们可以计算出每个粒子的新位置。现在,我们可以重复整个过程,在下一个时间步获取系统的状态。
在这里插入图片描述

七、图形解码器

让我们来测试一下。在进入流体之前,我在一个更简单的系统上测试了我刚才描述的方法。该系统由 10 个颗粒组成,与弹簧连接。这种设置自然地转换为图形,其中弹簧被简单地替换为边缘。此外,由于系统仅在一个值 k 上有所不同,即弹簧常数,因此从视频计算的物理编码仅包含一个数字。

为了训练模型,我为具有不同弹簧常数的系统生成了轨迹。在右侧,您可以看到 5 种不同类别的系统。在我的实验中,我改变了系统类的数量。有些模型仅使用弹簧常数非常低或非常高的轨迹进行训练,而有些模型甚至使用 10 个不同的系统类别进行训练。

总的来说,每个数据集始终包含 320 条轨迹。每条轨迹长 3 秒,共计 300 个时间步长。此外,每个带有图形的样本都具有轨迹的关联视频。

在训练过程中,以非标准方式选择样本以增加数据集中的方差。首先,选择单个时间步长。这包含输入图以及目标加速度。假设此时间步长来自弹簧常数 k 等于 4000 的类。然后,从具有该特定弹簧常数的系统的所有视频中,随机选择一个。然后,该视频与图形一起传递到网络,以计算加速度。

重要的是,视频编码器与图网络同时进行训练。这意味着视频编码器仅根据预测的加速度来学习物理特性。
在这里插入图片描述

八、具有不同弹簧常数的轨迹可视化

这是结果!根据视频,物理编码是不同的。在顶部,您可以看到一个具有低弹簧常数和低物理编码的系统的视频。底部是具有更硬弹簧的系统的视频,导致高物理编码。

右边是预测的轨迹。有趣的是,他们俩都是从完全相同的初始条件开始的。但是,根据物理编码,我的模型设法生成了类似于视频中可见的系统的卷展。右上角的弹簧比右下角的弹簧灵活得多。在称其为成功之前,让我们再看一些数据
在这里插入图片描述

九、预测的物理编码和推出轨迹

首先,仅使用两个系统的轨迹训练的模型,要么具有非常低的弹簧常数,要么具有非常高的弹簧常数。虽然这两个类的一步误差非常低,但对于介于两者之间的系统来说,误差要大得多。这可能是因为模型只看到了这些极端情况,因此它不能在它们之间轻松插值。

如果模型使用 5 个不同的类进行训练,则会出现类似的现象,训练期间存在的系统的误差较低,而模型从未见过的系统的误差较高。

最后,如果模型看到了 10 个具有 10 个不同弹簧常数的不同系统,则误差最小。这些结果与神经网络的直觉一致,因为它们在处理原始分布中存在的数据时做得很好,但很难脱离分布。
在这里插入图片描述
具有不同弹簧常数的系统的真实加速度和预测加速度之间的平均欧几里得距离

我想向你展示的另一件有趣的事情是物理编码。在第一个模型中,各种系统的平均编码似乎明显对应于真正的弹簧常数。

其他模型也可以说类似的事情。真实弹簧常数与预测的视频编码之间也存在明显的对应关系。

现在有趣的是这些编码的差异。突出显示的区域表示结果的标准差。如您所见,对于原始分布中存在的系统,方差很小,而对于训练数据集中不存在的系统来说,方差相当大。

对于使用 5 个类训练的模型,方差明显较小,表明模型对其预测更加“自信”。

对于在 10 个系统类上训练的最终模型,这种影响甚至更大。

在这里插入图片描述

由在不同数量的物理系统类别上训练的模型预测的视频编码

根据我们所知道的,让我们回答最初的问题。我们能否使用短视频对系统的物理特性进行可靠的编码?是的,我们能。
我们能否在一个程序中训练整个系统?是的,我们能。最后,我们能否可靠地在不同的材料之间进行插值?

正如我们所看到的,模型在分布之外难以泛化。然而,随着训练分布变得更加精细,并且在系统类中包含更多的变化,整个频谱的误差就会变小。

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

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

相关文章

阿里云CentOS 7.9 64位 Liunx 安装redis

具体的步骤如下: 添加 EPEL 仓库,因为 Redis 在标准的 CentOS 仓库中不可用: sudo yum install epel-release安装 Redis: sudo yum install redis启动 Redis 服务: sudo systemctl start redis如果你想让 Redis 在…

使用Vue3开发项目,搭建Vue cli3项目步骤

1.打开cmd ,输入 vue create neoai遇到这样的问题 则需要升级一下电脑上 Vue Cli版本哈 升级完成之后 再次输入命令,创建vue3项目 vue create neoai安装完成后,输入 npm run serve 就可以运行项目啦~ 页面运行效果

【LLM 论文】OpenAI 基于对比学习微调 LLM 得到嵌入模型

论文:Text and Code Embeddings by Contrastive Pre-Training ⭐⭐⭐⭐ OpenAI 一、论文速读 这篇论文基于大型生成式 LLM 通过对比学习来微调得到一个高质量的 text 和 code 的 embedding 模型。 训练数据的格式:是一堆 ( x i , y i ) (x_i, y_i) (x…

上传文件至linux服务器失败

目录 前言异常排查使用df -h命令查看磁盘使用情况使用du -h --max-depth1命令查找占用空间最大的文件夹 原因解决补充:删除文件后,磁盘空间无法得到释放 前言 使用XFTP工具上传文件至CentOS服务器失败 异常 排查 使用df -h命令查看磁盘使用情况 发现磁盘…

怎么ai解答问题?这三个方法都可以

怎么ai解答问题?在数字化飞速发展的今天,人工智能(AI)技术已经渗透到我们生活的方方面面,尤其是在解答问题方面,AI展现出了令人瞩目的能力。那么,哪些软件可以利用AI技术解答问题呢?…

使用curl命令查看服务器端口开放情况

目录 1.ssh端口 22 2.mysql数据库端口 3306 3.web应用端口 (Jellyfin 8082) (wordpress 8088) (tomcat 8080) 4.不存在的端口 5.被防火墙阻挡的端口 1.ssh端口 22 curl -v 10.10.10.205:22 curl…

leetcode_47.全排列 II

47. 全排列 II 题目描述:给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]]示例 2: 输入:nums [1,2,3] …

了解你的构建:发布经理构建难点应对指南

在如今的计算机行业,发布经理的工作任重而道远。一方面他们必须紧跟日益攀升的行业标准,发布速度的极限不断突破,现在要求的速度在过去是远远无法想象的。另一方面,质量的门槛也在不断抬高。 我并非诟病软件更新换代过于迅速频繁…

揭秘数据可视化:五款利器助力决策

在当今这个数据驱动的时代,数据可视化已成为企业决策、数据分析不可或缺的一部分。通过直观、生动的图形、图像,数据可视化能够更快速、更准确地传达信息,帮助企业洞察数据背后的价值。本文将为您介绍几款优秀的数据可视化工具。 一、山海鲸…

Backblaze发布2024 Q1硬盘故障质量报告-1

作为一家在2021年在美国纳斯达克上市的云端备份公司,Backblaze一直保持着对外定期发布HDD和SSD的故障率稳定性质量报告,给大家提供了一份真实应用场景下的稳定性分析参考数据。 截至2024年第一季度末,Backblaze在其全球数据中心的云存储服务器…

弹性云服务器是什么,为何如此受欢迎

云计算作为当下炙手可热的技术领域,已然成为现代企业不可或缺的核心能力。云服务器作为云计算的基石之一,在这个数字化时代发挥着至关重要的作用。而弹性云服务器,作为云服务器的一种演进形式,更是备受瞩目。 弹性云服务器&#…

[笔记] Win11 Microsoft Store App 离线下载

微软应用商店无法下载或下载缓慢解决方法 在一些环境下 Microsoft Store 下载速度缓慢,或者需要账号登录才能安装的场景,可以通过找到对应的离线安装包的形式进行安装。 Micorsoft Store 中的离线安装包一般后缀为 AppxBundle 和 Appx。以 Ubuntu 为例…

如何根据IP获取国家省份城市名称PHP免费版

最近项目遇到需要根据IP获取用户国家功能需求,网上找了一下,很多API接口都需要付费,考虑为公司节约成本,就取找找有没有开源的 github 上面那个包含多种语言,下面这个只有php,用法很简单 $ip 114.114.114…

[蓝桥杯]真题讲解:班级活动(贪心)

[蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 一、视频讲解二、正解代码1、C2、python33、Java 一、视频讲解 [蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 二、正解代码 1、C #include<bits/stdc.h> using namespace st…

【NodeMCU实时天气时钟温湿度项目 4】通过NTPClient库获取实时网络时间并显示在TFT屏幕上

今天是【实时天气时钟温湿度项目】第四专题&#xff0c;主要内容是&#xff1a;学习导入NTPClient库&#xff0c;通过这个库获取实时网络时间&#xff0c;显示在1.3寸TFT液晶屏幕上。此前三个专题&#xff0c;请选择查看以下链接。 第一专题内容&#xff0c;请参考 【N…

使用wxPython和pandas模块生成Excel文件

介绍&#xff1a; 在Python编程中&#xff0c;有时我们需要根据特定的数据生成Excel文件。本文将介绍如何使用wxPython和pandas模块来实现这个目标。我们将创建一个简单的GUI应用程序&#xff0c;允许用户选择输出文件夹和输入的Excel文件&#xff0c;并根据Excel文件中每个单…

docker jenkins 部署springboot项目

1、创建jenkins容器 1&#xff0c;首先&#xff0c;我们需要创建一个 Jenkins 数据卷&#xff0c;用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷&#xff1a; docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷&#xff1a; docker run -dit…

算法-并查集

目录 什么是并查集 并查集基础 &#xff08;1&#xff09;原理 &#xff08;2&#xff09;初始化 &#xff08;3&#xff09;查询 &#xff08;4&#xff09;合并 &#xff08;5&#xff09;判断是否同一集合 并查集优化 路径压缩 启发式合并 并查集模板 模板 例题…

C#修改默认参数settings文件

右击项目在设置中进行修改&#xff1a; 千万不要在这里改。 如果要在自己的项目里添加这个文件&#xff0c;首先新建个文件夹&#xff0c;然后添加.setting文件&#xff0c;然后再像上面说的那样添加属性。

4.请求体

什么是请求体(Request Body) 请求体是客户端发送到API的数据。 响应体是API发送给客户端的数据 API几乎总是必须发送一个响应体&#xff0c;但是客户端并不需要一直发送请求体 定义请求体&#xff0c;需要使用 Pydantic 模型 不能通过GET请求发送请求体发送请求体数据&…