chebykan阅读收尾

ops/2025/3/14 13:43:31/

sciml

SciML 是 科学机器学习 (Scientific Machine Learning) 的缩写,它指的是将机器学习方法应用于解决科学问题,例如物理、化学、生物学等领域中的问题。SciML 旨在利用机器学习的强大能力来提高科学计算的效率和准确性。

SciML 的主要问题:

  • 数据获取: 科学问题通常需要大量的高质量数据,而获取这些数据可能非常困难、昂贵或耗时。

  • 模型选择: SciML 需要选择合适的机器学习模型来描述科学问题,例如物理信息神经网络 (PINNs) 和深度算子网络 (DeepONets)。

  • 模型训练: SciML 需要训练机器学习模型,使其能够准确地预测科学问题的行为。这通常需要大量的计算资源和时间。

  • 模型验证: SciML 需要验证机器学习模型的准确性,以确保其预测结果可靠。

  • 模型解释: SciML 需要解释机器学习模型的预测结果,以便科学家能够理解其背后的物理机制。

SciML 的应用:

  • 偏微分方程 (PDEs) 求解: SciML 可以用于求解各种 PDEs,例如波动方程、扩散方程、流体动力学方程等。

  • 算子学习: SciML 可以用于学习将函数映射到函数的算子,例如傅里叶算子、拉普拉斯算子等。

  • 不确定性量化 (UQ): SciML 可以用于量化科学问题中的不确定性,例如参数估计、数据噪声等。

  • 材料设计: SciML 可以用于设计新材料,例如药物分子、合金等。

  • 生物信息学: SciML 可以用于分析生物数据,例如基因组序列、蛋白质结构等。

SciML 的优势:

  • 提高计算效率: SciML 可以显著减少科学计算所需的时间和资源。

  • 提高预测精度: SciML 可以提高科学问题的预测精度,例如物理现象的模拟和材料性能的预测。

  • 发现新知识: SciML 可以帮助科学家发现新的科学知识和物理规律。

总而言之,SciML 是一个快速发展的领域,它为解决科学问题提供了新的工具和方法 

 deeponet代码

 

由于 DeepONet 的应用范围很广,需要根据具体问题进行代码编写。以下是一个基于 PyTorch 的简单 DeepONet 代码示例,用于解决一个简单的函数逼近问题:

python

复制

import torch
import torch.nn as nn
import torch.optim as optim# 定义主干网络
class BranchedNN(nn.Module):def __init__(self, input_dim, hidden_dim, output_dim):super(BranchedNN, self).__init__()self.net = nn.Sequential(nn.Linear(input_dim, hidden_dim),nn.Tanh(),nn.Linear(hidden_dim, hidden_dim),nn.Tanh(),nn.Linear(hidden_dim, output_dim))def forward(self, x):return self.net(x)# 定义分支网络
class TrunkNN(nn.Module):def __init__(self, input_dim, hidden_dim, output_dim):super(TrunkNN, self).__init__()self.net = nn.Sequential(nn.Linear(input_dim, hidden_dim),nn.Tanh(),nn.Linear(hidden_dim, hidden_dim),nn.Tanh(),nn.Linear(hidden_dim, output_dim))def forward(self, x):return self.net(x)# 定义 DeepONet
class DeepONet(nn.Module):def __init__(self, input_dim, hidden_dim, output_dim):super(DeepONet, self).__init__()self.branched_nn = BranchedNN(input_dim, hidden_dim, hidden_dim)self.trunk_nn = TrunkNN(hidden_dim, hidden_dim, output_dim)def forward(self, x):x = self.branched_nn(x)x = self.trunk_nn(x)return x# 定义函数逼近问题
def f(x):return torch.sin(x)# 生成训练数据
x = torch.randn(1000, 1)
y = f(x)# 定义 DeepONet 模型
model = DeepONet(1, 64, 1)# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)# 训练模型
for epoch in range(1000):optimizer.zero_grad()y_pred = model(x)loss = criterion(y_pred, y)loss.backward()optimizer.step()if epoch % 100 == 0:print(f'Epoch {epoch}: Loss = {loss.item()}')# 评估模型
x_test = torch.linspace(-5, 5, 100).unsqueeze(1)
y_test = f(x_test)
y_pred_test = model(x_test)# 绘制结果
import matplotlib.pyplot as pltplt.plot(x_test.numpy(), y_test.numpy(), label='True Function')
plt.plot(x_test.numpy(), y_pred_test.detach().numpy(), label='DeepONet')
plt.legend()
plt.show()

代码解释:

  1. 定义主干网络和分支网络: 代码首先定义了主干网络和分支网络的类,它们都使用两层隐藏层,每层 64 个神经元,并使用 tanh 激活函数。

  2. 定义 DeepONet 模型: DeepONet 类将主干网络和分支网络组合起来,并定义了前向传播过程。

  3. 定义函数逼近问题: 代码定义了一个简单的正弦函数作为逼近目标。

  4. 生成训练数据: 代码生成了 1000 个随机数作为输入,并计算对应的函数值作为目标输出。

  5. 定义 DeepONet 模型: 代码创建了一个 DeepONet 实例。

  6. 定义损失函数和优化器: 代码使用均方误差作为损失函数,并使用 Adam 优化器进行训练。

  7. 训练模型: 代码进行 1000 个训练轮次,每个轮次计算损失、更新模型参数,并打印损失值。

  8. 评估模型: 代码使用 100 个等距分布的测试数据点来评估模型的性能,并绘制真实函数和模型预测结果的对比图。

请注意,这只是一个简单的示例,实际的 DeepONet 代码需要根据具体问题进行调整。 例如,你可能需要调整网络架构、激活函数、损失函数、优化器等参数。

其他 DeepONet 代码资源:

  • DeepONets 论文: https://arxiv.org/abs/1806.07366

  • PyTorch Geometric: https://pytorch-geometric.readthedocs.io/en/latest/modules/nn.html#deephomology networks

  • TensorFlow Probability: https://www.tensorflow.org/probability/api_docs/python/tfp/layers/deeponet

希望这个代码示例能帮助你理解 DeepONet 的基本原理和代码实现。

 

ns方程的Re=400和2000是什么意思

 

在纳维-斯托克斯方程的研究中,雷诺数 (Re) 是一个非常重要的无量纲参数,它表征了流体的惯性力与粘性力之比。Re 的值决定了流体的流动状态,并影响流动的复杂性和物理特性。

Re = 400:

  • 层流: 当 Re 较低时 (例如 Re = 400),流体的粘性力占主导地位,流体呈现出层流状态。层流是一种平滑的、有序的流动,其中流体以平行层的形式流动,层与层之间没有明显的混合。

  • 流动分离: 即使在层流状态下,当 Re 达到 400 左右时,在特定情况下也可能出现流动分离现象。流动分离是指流体在经过物体表面时,由于粘性效应,流体与物体表面分离,形成旋涡。

Re = 2000:

  • 过渡流: 当 Re 介于 400 到 4000 之间时,流体处于过渡流状态。过渡流是介于层流和湍流之间的流动状态,其中流体既包含层流区域,也包含湍流区域。

  • 湍流: 当 Re 较高时 (例如 Re = 2000),流体的惯性力占主导地位,流体呈现出湍流状态。湍流是一种复杂的、无序的流动,其中流体以混乱的方式流动,并伴随着强烈的混合和能量耗散。

在纳维-斯托克斯方程的研究中,研究 Re = 400 和 Re = 2000 的流动可以帮助我们理解:

  • 层流和湍流的转变: 通过研究 Re = 400 和 Re = 2000 的流动,我们可以了解流体何时以及如何从层流转变为湍流。

  • 流动分离: 通过研究 Re = 400 和 Re = 2000 的流动,我们可以了解流动分离现象发生的条件,以及如何控制流动分离。

  • 湍流特性: 通过研究 Re = 2000 的湍流,我们可以了解湍流的物理特性,例如湍流强度、湍流结构等。

总而言之,Re = 400 和 Re = 2000 是纳维-斯托克斯方程研究中两个重要的雷诺数,它们分别代表了层流和湍流状态,以及层流到湍流的过渡状态

 

EVM熵粘度法是什么意思

 

在提供的文章中,EVM 指的是 熵粘度法 (Entropy Viscosity Method),它是一种用于高雷诺数流动模拟的数值方法。

EVM 的原理:

  • 人工粘度: EVM 通过引入人工粘度来稳定数值解。人工粘度是一种人为添加的粘性项,它可以抑制数值解中的波动和振荡,从而提高解的稳定性和精度。

  • 熵条件: EVM 引入熵条件来控制人工粘度的大小。熵条件要求数值解满足熵增原理,即流动过程中的熵不会减少。

EVM 的优势:

  • 提高稳定性: EVM 可以显著提高数值解的稳定性,尤其是在高雷诺数流动模拟中。

  • 提高精度: EVM 可以提高数值解的精度,尤其是在流动分离和激波等复杂流动现象的模拟中。

  • 保持物理一致性: EVM 引入熵条件,可以确保数值解满足物理规律,例如熵增原理。

EVM 的应用:

  • 高雷诺数流动: EVM 广泛应用于高雷诺数流动模拟,例如湍流、流动分离等。

  • 激波: EVM 可以有效地模拟激波,例如爆炸波、冲击波等。

  • 多相流: EVM 也可以应用于多相流模拟,例如气液两相流、颗粒流动等。

EVM 与其他数值方法相比:

  • 传统数值方法: 传统数值方法,例如中心差分法、迎风格式等,在高雷诺数流动模拟中容易出现不稳定和振荡问题。EVM 可以有效地解决这些问题。

  • 其他粘度方法: 其他粘度方法,例如人工压缩性法、耗散格式法等,也需要引入人工粘度来稳定数值解。EVM 通过引入熵条件,可以更好地控制人工粘度的大小,从而提高解的精度。

总而言之,EVM 是一种有效的数值方法,可以用于高雷诺数流动模拟,并提高数值解的稳定性和精度

 

翻译Thesolutionsof(31)usingPIKAN,cPIKAN,cPIKANwithRBA,andPINNwithRBAareshowninFig.14.Theparametersusedfor trainingthesenetworksaredetailedinTable5.TheresultsinFig.14wereobtainedusingtheAdamoptimizerwithalearningrateof 5×10−4.Thetrainingwasperformedasasinglebatchtrainingtill150,000iterations.InFig.14(a),wedisplaythereferencesolution of(31)computedusingthespectralelementmethod[65].Fig.14(b)presentsthesolutionobtainedusingPIKAN,whileFig.14(c) showstheabsolutepointwiseerrorbetweenthereferenceandPIKANsolutions.ThesolutionobtainedfromthePIKANmethoddid notconvergetothereferencesolution,asrelative𝑙2−errorbetweenPIKANandreferencesolutionsis58.39%.InFig.14(d)and(f), weshowthesolutionsof(31)obtainedfromcPIKANandcPIKANenhancedwithRBA, respectively.Theabsolutepointwiseerrors inthesolutionsobtainedfromcPIKANandcPIKANwithRBAareshowninFig.14(e)and(g),respectively.Therelative𝑙2−errors betweenthereferencesolutionandthosefromcPIKANandcPIKANwithRBAare5.15%and5.65%,respectively, indicatingalmost similarlevelofaccuracyamongthem. InFig.14(h)and(i),weshowthesolutionof(31)obtainedusingPINN(MLParchitecture) withRBAandtheabsolutepointwiseerror, respectively.Therelative 𝑙2−errorbetweenthePINNandthereferencesolutions is 1.51%. InFig. 15,weshowtheconvergenceof all themethodsbyplotting the loss functionEq. (34)against the iterations. It isevident fromFig.15that theMLP-basedarchitecture, enhancedwithRBA, exhibits fasterconvergencecomparedtotheother methods.Adetaileddescriptionofparameters, errors, andefficiency(intermsof runtime) isprovidedinTable5.Theruntime measurements inTable5weretakenonanNvidia’sGeForceRTX-3090GPU. InTable5it isnotedthat runtimeforcPIKANand cPIKANwithRBA(Row2and3)isalmostsimilardespitehaving50,000additionalRBAparameters.Thisiscausedbylatencywhile movingthedatafromtheDRAMtotheprocessor.Asthemodelanddataareverysmall, thevolatileGPUutilitydoesnotexceed morethan15%.Therefore, theruntimeforcPIKANandcPIKANwithRBAisdominatedbylatency

 

使用PIKAN、cPIKAN、带有RBA的cPIKAN以及带有RBA的PINN对(31)式的解如图14所示。用于训练这些网络的参数详细列于表5中。图14的结果是使用Adam优化器,学习率为5×10^-4,进行单批训练至150,000次迭代得到的。在图14(a)中,我们展示了使用谱元法[65]计算的(31)式的参考解。图14(b)展示了使用PIKAN得到的解,而图14©显示了参考解与PIKAN解之间的绝对点对点误差。PIKAN方法得到的解没有收敛到参考解,因为PIKAN与参考解之间的相对l2误差为58.39%。在图14(d)和(f)中,我们分别展示了使用cPIKAN和带有RBA的cPIKAN得到的(31)式的解。图14(e)和(g)分别展示了从cPIKAN和带有RBA的cPIKAN得到的解的绝对点对点误差。参考解与cPIKAN和带有RBA的cPIKAN得到的解之间的相对l2误差分别为5.15%和5.65%,表明它们之间的精度几乎相同。在图14(h)和(i)中,我们分别展示了使用带有RBA的PINN(MLP架构)得到的(31)式的解及其绝对点对点误差。PINN与参考解之间的相对l2误差为1.51%。在图15中,我们通过绘制损失函数方程(34)与迭代次数的关系,展示了所有方法的收敛性。从图15可以看出,经过RBA增强的基于MLP的架构与其他方法相比,收敛速度更快。参数、误差和效率(以运行时间为准)的详细描述提供在表5中。表5中的运行时间测量是在Nvidia的GeForce RTX-3090 GPU上进行的。表5中指出,尽管带有RBA的cPIKAN(第2行和第3行)有额外的50,000个RBA参数,但其运行时间几乎相同。这是由于在数据从DRAM移动到处理器时的延迟造成的。由于模型和数据非常小,易挥发的GPU利用率不会超过15%。因此,cPIKAN和带有RBA的cPIKAN的运行时间主要由延迟决定。

 

第四章 信息瓶颈

第4章深入分析了切比雪夫物理信息神经网络 (cPIKAN) 的学习动态,并将其与物理信息神经网络 (PINN) 进行了比较。为了揭示模型在训练过程中的行为,作者采用了信息瓶颈 (IB) 理论,该理论基于信息论原理,旨在理解神经网络如何有效地学习和泛化。

4.1 信息瓶颈方法

IB 方法通过研究神经网络层之间传递的信息量来分析其学习过程。理想情况下,模型应该保留关于输出变量的所有相关信息,同时丢弃输入变量中的无关信息,从而形成一个“信息瓶颈”。P29

IB 方法将神经网络训练过程划分为三个阶段:

  • 拟合阶段: 模型学习数据中的模式,降低训练误差。P30

  • 扩散阶段: 模型探索不同的特征组合,以提高泛化能力。P31

  • 总扩散阶段: 模型找到最佳特征组合,并利用它们最小化泛化误差。P31

4.2 信噪比 (SNR)

为了量化模型学习过程中的信息传递,作者使用了信噪比 (SNR) 作为指标。SNR 衡量了梯度中“信号” (即对模型性能有贡献的方向) 与“噪声” (即随机波动) 之间的比例。P29

4.3 学习阶段

作者通过分析 PINN 和 cPIKAN 在求解二维亥姆霍兹方程时的 SNR 变化,揭示了它们的学习动态。P29

  • 拟合阶段: PINN 和 cPIKAN 的 SNR 在训练初期都较高,表明模型能够有效地学习数据中的模式。P30P31

  • 扩散阶段: 随着 SNR 的下降,模型开始探索不同的特征组合,以提高泛化能力。P30P31

  • 总扩散阶段: 当模型找到最佳特征组合时,SNR 再次上升,并达到平衡状态。在这个阶段,模型利用这些特征最小化泛化误差。P31

主要发现:

  • PINN 和 cPIKAN 都经历了三个学习阶段,表明它们的学习过程具有相似性。P31

  • RBA 技术可以加速 PINN 和 cPIKAN 的训练过程,并提高它们的预测精度。P32

  • EVM 方法可以帮助 cPIKAN 在高雷诺数流动模拟中保持稳定,并提高预测精度。P21

4.4 总结

第4章通过信息瓶颈理论揭示了 PINN 和 cPIKAN 的学习动态,并强调了 RBA 和 EVM 技术在提高模型性能方面的作用。这些发现有助于我们更好地理解基于 KAN 和 MLP 的表示模型,并为未来的研究提供了指导方向。

未来研究方向:

  • 将 IB 方法应用于其他基于 KAN 的表示模型,例如 DeepOKAN。

  • 开发新的训练策略和架构,以进一步提高模型的性能和效率。

  • 将基于 KAN 的方法应用于更复杂的科学和工程问题。


http://www.ppmy.cn/ops/165675.html

相关文章

【webrtc debug tools】 rtc_event_log_to_text

一、rtc_event_log 简介 在学习分析webrtc的过程中,发现其内部提供了一个实时数据捕获接口RtcEventLog。通过该接口可以实时捕获进出webrtc的RTP报文头数据、音视频配置参数、webrtc的探测数据等。其内容实现可参考RtcEventLogImpl类的定义。其文件所在路径 loggin…

MFC 项目:简易销售系统实践

预览 源链接:https://blog.iyatt.com/?p19158 测试环境 https://blog.iyatt.com/?p18843#%E7%8E%AF%E5%A2%83 项目 参考黑马程序员的案例教程进行实践的记录,部分内容自行修改过,比如原案例直接读写文件保存账号、密码、数据&#xff0…

【C++】 —— 笔试刷题day_4

刷题day_4 继续加油!!! 一、Fibonacci数列 题目链接:Fibonacci数列 题目解析 题目要求,输入一个数N,我们可以对N进行1/-1操作;题目让我们输出对N进行至少多少步可以变成Fibonacci数。 这里题目…

网络安全之命令

passwd 1.作用 passwd命令原来修改账户的登陆密码,使用权限是所有用户。 2.格式 passwd [选项] 账户名称 3.主要参数 -l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。 -u:解开账户锁定状态,只有…

C语言每日一练——day_4

引言 针对初学者,每日练习几个题,快速上手C语言。第四天。(连续更新中) 采用在线OJ的形式 什么是在线OJ? 在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用…

游戏引擎学习第153天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 目前正在进行的是一个比较大的系统调整,原本预计今天会继续深入这个改动,但实际上在昨天的开发中,我们已经完成了大部分的代码编写,并且运行之后几乎一切都能正常工作&#x…

HCIA-11.以太网链路聚合与交换机堆叠、集群

链路聚合背景 拓扑组网时为了高可用,需要网络的冗余备份。但增加冗余容易后会出现环路,所以我们部署了STP协议来破除环路。 但是,根据实际业务的需要,为网络不停的增加冗余是现实需要的一部分。 那么,为了让网络冗余…

【二分查找 寻找首端】P3718 [AHOI2017初中组] alter|普及+

本文涉及知识点 本博文代码打包下载 C堆(优先队列) C二分查找 P3718 [AHOI2017初中组] alter 题目描述 有 n n n 盏灯排成一列,其中有些灯开着,有些灯关着。小可可希望灯是错落有致的,他定义一列灯的状态的不优美度为这些灯中最长的连续…