世界模型、薛定谔猫和神经网络之间有什么联系?
几个世纪以来,好奇的头脑一直在试图破解我们周围世界的结构。大多数人都会同意,任何科学分支都遵循相同的目标——试图将函数映射到观察结果。这个函数,它以某种方式通过近似解释世界模型,可以是连续的或离散的,旨在找到输入和输出集之间的对应关系。举几个例子:
- 物理学家寻求最多可以解释某些现象的函数
- 计算神经科学家使用函数来理解神经系统的原理
- 心理学家寻找解释人类思想和行为的功能
- 医学科学家仔细研究治疗疾病的疗法模式,这也是一种功能
毫无疑问,我们周围的世界是复杂而动态的。众所周知,复杂模型可以表示为 简单的规则 ,所以可能会有绕行。 然而,随着时间和空间的变化,不断变化的世界的动态方面不能简单地被忽视。
“有些事情只能通过将其他事情视为理所当然来解释”
理查德·费曼
众所周知,动力学可以通过一个导数来描述,该导数测量函数输出对输入变化的敏感性。同时,函数与其导数之间的关系被定义为 微分方程 .因此,物理学中的许多现象是不言而喻的, 工程 , 经济学 , 生物学 , 心理学 ,并且可以通过使用任何类型的微分方程成功地建模诸如此类的东西。微分方程可用于计算电流或热量的运动或流动、物体的运动,甚至可以用来检查疾病的生长。不用说,整个反向传播算法可以看作是一个微分方程,其中误差的偏导数是根据权重使用链式法则计算的。
一方面,我们有一个未知的函数,另一方面,它的导数代表变化率。微分方程定义了两者之间的关系。
尽管你们中的许多人可能通过他通常被称为“ 薛定谔的猫 ”,众所周知,他是量子理论领域的教父之一。薛定谔假设方程(现在称为 薛定谔方程 ,当然),它支配 波函数 量子力学系统,或描述量子粒子在哪里。
甚至可以设立相当荒谬的案件。一只猫被关在一个钢制房间里,连同以下装置(必须保护它免受猫的直接干扰):在盖革计数器中,有一点放射性物质,非常小,可能在课程中一个原子衰变的小时,但也有相同的可能性,也许没有;如果发生这种情况,计数器管会放电,并通过继电器释放锤子,将一小瓶氢氰酸打碎。如果一个人将整个系统留给自己一个小时,人们会说如果同时没有原子衰变,猫仍然活着。第一次原子衰变会使它中毒。整个系统的 psi 函数将通过将活猫和死猫(请原谅这个表达)等量混合或涂抹在其中来表达这一点。
Schrödinger, E. 量子力学的现状。 Naturwissenschaften 23, 807-812 (1935)。
“薛定谔方程”是理解量子物理学和构建更清晰的世界模型图景的基本里程碑之一。你猜怎么着?这个方程是一个 线性偏微分方程 如下所示:
其中 Ψ 是我们想要找到的未知波函数。好吧,在我们开始之前,我必须告诉你,薛定谔方程的特例数不胜数,尽管其中许多都非常复杂,因此对于大多数原子来说,它们无法解析求解。因此,现在让我们专注于最简单的情况之一,即“薛定谔方程”对“ 盒装粒子 ”,这很好地证明了经典系统和量子系统之间的差异。
想象一下,我们的粒子被困在两个无限势垒之间(这种情况有时被称为 无限势阱 )。不过,粒子可以在墙壁之间自由移动。由于这是一个非常受限的情况,实际上是一个假设的玩具示例,有一些方法可以简化我们的初始表达式,从而得到盒子中单个粒子的与时间无关的薛定谔方程:
我们如何做到这一点?请参阅下面的精彩视频,解释如何推导出盒中粒子的特定情况并分析解决它:
然而,我们最终得到了一个二阶微分方程。 Ψ 函数描述了粒子的行为。位置、动量和能量可以从Ψ导出。如果您已经看过视频,您已经知道如何解决它。但是,如果您没有,上面的等式似乎看起来并不那么复杂。那么问题是什么?!
如果我们仔细观察,那么我们所知道的就是 Ψ(0) = 0,Ψ(a) = 0,而 Ψ 的二阶导数加上 Ψ 本身也为零!但是,我们知道 Ψ 在区间 (0, a) 中不为零。
ಠ益ಠ
好的,让我们将除方程本身之外的所有知识汇总在一起:
- Ψ 是一个函数;
- Ψ(0) = 0
- Ψ(a) = 0
由于 Ψ 是一个函数,而且我们是数据科学家,我们可以利用 普遍逼近定理 ,大致说明如下:
一旦神经元的数量足够,具有非多项式激活函数的前馈神经网络就可以将任何表现良好的函数逼近到任何精度。
该定理适用于多隐藏层和单隐藏层神经网络,基本上适用于任何现代激活函数(ReLU、GeLU、Sigmoid、Tanh 等)。似乎正是我们需要的!
因此,我们很高兴!
不……等等……数据呢?!
好吧,我们没有。但是,有一个出路,叫做 物理信息神经网络 , 或 PINN。 PINN 最近引起了特别的关注,主要是因为它们能够对多物理场和多尺度现实世界系统的动力学进行建模和预测。另一个有趣的特性是,如果我们拟合的数据应该遵守一些物理定律,并且我们知道这个定律,我们可以简单地将这种依赖添加到损失函数中,这使得我们的机器学习模型尊重物理定律,即物理学知识。
一般来说,关于 PINN,我们可以定义三种有效训练模型的方法:
- 大量数据,没有物理(我们都熟悉的)
- 少量数据和一些物理
- 没有数据和我们拥有的所有物理
注意: 为了简单起见,我们将省略方程中的所有常数。我们假设 k=1,我们的量子阱是从 0 到 a=10。
我们的案例正是第三种。我们有物理规律可循,但没有数据。让我们将边界条件简单地定义为返回零的函数:
并且由于上面的方程没有残差,即所有包含 Ψ 的项都在左边,我们可以为薛定谔方程定义一个函数。简而言之,它将是趋于零的东西。
然后,如上所述,具有非多项式非线性的多层感知应该是近似我们的波函数 Ψ 的好选择。在这里我们使用了 高斯误差线性单元 非线性,因为根据经验发现它比 Sigmoid 和 Tanh 工作得稍好,而 ReLU 表现最差。
PINN architecture
因此,我们必须使我们的模型尊重物理定律,这意味着要了解物理。这可以通过定义包括整个微分方程的差异和边界差异的损失函数来实现:
PINN loss function
请注意,我们可以计算梯度(或简单的 Ψ 函数导数 psi_x
) 通过使用[ torch.autograd.grad()](https://pytorch.org/docs/stable/generated/torch.autograd.grad.html)
,一个自动微分函数,计算并返回输出相对于输入的梯度总和。计算二阶导数 psi_xx
, 只需申请 毕业()
作用两次。
因此,我们可以通过框壁的边界和框内的数据点来计算整体损失,然后反向传播误差来更新权重。
training loop
经过几千次迭代,我们可以看看结果。如下所示,我们函数的输出类似于 解决方案 对于盒子里的粒子案例。因为我们知道薛定谔方程的解实际上是一个解族,所以输出可能会随着权重和训练参数的随机初始化而变化。完整的代码可以找到 这里 .
PINN output after 4500 iterations
当然,还有许多更复杂的实现展示了如何使用深度神经网络求解薛定谔方程[ 1 , 2 , 3 ]。另一方面,这篇博文展示了对基于物理的机器学习的简单易懂的介绍,并给出了我们何时以及为什么要“通知”我们的模型的想法。我选择薛定谔方程的原因很简单——因为方程本身和边界条件非常严格且信息量不大(你记得,零无处不在)。梯度下降算法能够找到一个非零解,即使它没有受到惩罚。
最后,我们可以回答博文标题中提出的问题:“世界模型、薛定谔猫和神经网络之间有什么联系?”。众所周知,许多描述世界模型的动态过程都可以使用微分方程来建模。另一方面,即使是非常复杂的微分方程,反过来也可以用基于物理的神经网络来求解。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/14366/24360501
标签:方程,函数,模型,神经网络,薛定谔,微分方程,我们 From: https://www.cnblogs.com/amboke/p/16656694.html