欢迎阅读物理深度学习书籍 (PBDL) v0.2
这是Jupyter书籍"基于物理的深度学习"的源代码仓库。您可以在以下网址找到完整的可读版本: https://physicsbaseddeeplearning.org/
单一PDF版本也可在arXiv上获取:https://arxiv.org/pdf/2109.05237.pdf
简短概述
PBDL书籍包含了物理模拟背景下深度学习相关内容的实用全面介绍。尽可能地,所有主题都配有Jupyter笔记本形式的实践代码示例,以便快速入门。除了标准的从数据中进行监督学习外,我们还将探讨物理损失约束、与可微分模拟更紧密耦合的学习算法,以及强化学习和不确定性建模。我们正处于激动人心的时代:这些方法有巨大潜力从根本上改变我们在模拟中能够实现的目标。
我们将在接下来重点讨论的关键方面包括:
- 解释如何使用深度学习技术解决PDE问题,
- 如何将它们与现有的物理知识结合,
- 同时不放弃我们关于数值方法的知识。
本书重点关注:
- 基于场的模拟(不太涉及拉格朗日方法)
- 与深度学习的结合(还有许多其他有趣的机器学习技术存在,但本书不会讨论)
- 实验作为展望(例如用真实世界的观测替代合成数据)
本书名称"基于物理的深度学习"表示物理建模和数值模拟与基于人工神经网络方法的结合。基于物理的深度学习这一总体方向代表了一个非常活跃、快速增长且令人兴奋的研究领域。
本书旨在利用我们掌握的所有强大的数值技术,并尽可能地使用它们。因此,本书的一个核心目标是调和以数据为中心的观点与物理模拟。
由此产生的方法有巨大潜力改进数值方法的应用:在求解器反复针对某个明确定义的问题域中的案例时,投入大量资源一次性训练一个支持重复求解的神经网络可能是非常有意义的。基于这个网络的领域特定专门化,这样的混合方法可能会大大超越传统的通用求解器。
有什么新内容?
- 对于熟悉本文v0.1版本的读者,强烈推荐从可微分物理训练扩展章节和全新的物理问题改进学习方法章节开始阅读。
预览
这里列举几个亮点:本书包含一个通过可微分物理训练混合流体流动(纳维-斯托克斯)求解器以减少数值误差的笔记本。试试看: https://colab.research.google.com/github/tum-pbs/pbdl-book/blob/main/diffphys-code-sol.ipynb
在v0.2版本中,有一个新的笔记本介绍了改进的学习方案,该方案联合计算神经网络和物理的更新方向(通过半逆梯度): https://colab.research.google.com/github/tum-pbs/pbdl-book/blob/main/physgrad-hig-code.ipynb
它还包含了训练贝叶斯神经网络用于预测翼型周围RANS流动并产生不确定性估计的示例代码。您可以立即在这里运行代码: https://colab.research.google.com/github/tum-pbs/pbdl-book/blob/main/bayesian-code.ipynb
还有一个笔记本用于比较基于近端策略的强化学习与基于物理的学习在控制PDE方面的表现(剧透:基于物理的版本最终表现更好)。试试看: https://colab.research.google.com/github/tum-pbs/pbdl-book/blob/main/reinflearn-code.ipynb