重温SSM(三):HiPPO的高效计算(S4)
By 苏剑林 | 2024-06-20 | 24993位读者 | 引用前面我们用两篇文章《重温SSM(一):线性系统和HiPPO矩阵》和《重温SSM(二):HiPPO的一些遗留问题》介绍了HiPPO的思想和推导——通过正交函数基对持续更新的函数进行实时逼近,其拟合系数的动力学正好可以表示为一个线性ODE系统,并且对于特定的基底以及逼近方式,我们可以将线性系统的关键矩阵精确地算出来。此外,我们还讨论了HiPPO的离散化和相关性质等问题,这些内容奠定了后续的SSM工作的理论基础。
接下来,我们将介绍HiPPO的后续应用篇《Efficiently Modeling Long Sequences with Structured State Spaces》(简称S4),它利用HiPPO的推导结果作为序列建模的基本工具,并从新的视角探讨了高效的计算和训练方式,最后在不少长序列建模任务上验证了它的有效性,可谓SSM乃至RNN复兴的代表作之一。
基本框架
S4使用的序列建模框架,是如下的线性ODE系统:
\begin{equation}\begin{aligned}
x'(t) =&\, A x(t) + B u(t) \\
y(t) =&\, C^* x(t) + D u(t)
\end{aligned}\end{equation}
我们经常听说牛顿力学、相对论力学、量子力学等物理名词,也不时会听到“理论力学”。其实,“理论力学”这个名词是不大妥当的,因为这很容易会让人误认为这是一种新的力学体系。而事实上,理论力学并不是像牛顿力学那样是一种力学体系,而是一种研究力学的方法,而研究的对象在多数情况下依然是经典力学(翻开任意一本《理论力学》教程都不难发现这一点)。简单来讲,它把牛顿时代用微积分来研究力学的方法转变为了“变分”,变“常微分”为“偏微分”。看上去这有点“化简为繁”,但事实上这样的一个转变却带来了力学研究的一个巨大的飞跃。
说到这里,也许有的读者会感到害怕了:这里边肯定又涉及了各种高深莫测的高等数学方法,我们只能望而却步。的确,理论力学中的方法很是深奥,纵使是一个优秀的大学数理本科生,也可能要花上一年多时间才能学完一本《理论力学》。可是,通过最小作用量原理的方法去研究物理又显得如此地诱人。难道像我们这些初级人士就无法亲身体验理论力学方法给我们带来的巨大便利和不一样的体验了吗?
[欧拉数学]凸多面体的面、顶、棱公式
By 苏剑林 | 2011-11-17 | 44708位读者 | 引用作为数学史上最高产的数学家(似乎没有之一),欧拉的研究几乎涉及了所有数学领域,包括数论、图论、微积分等,同时他还是一个物理学家,他与拉格朗日首创的变分法使得经典力学的研究达到了一个新的高度。欧拉具有惊人的计算能力和数学直觉,这对他的数学研究帮助极大。现在在很多领域,我们都可以看到不少以欧拉命名的公式、定理。欧拉在数学上极为高产,而且得出了相当多的正确结论,但其中有相当多的结论只是来源于他的数学直觉(创造性思维)以及类比推理,这并非欧拉不追求严谨,而是由于当时数学知识的局限性,难以严密化。还有,研究的顺序是:先得出答案,然后才论证答案!
再者,创造性思维往往令人叫绝,能更加促进我们的思维能力。过多地考虑严格性和技术细节,通常都妨碍了我们得出正确的答案。正如《解题的艺术》中说道:粗略而有灵感的思想可能会引出严格证明;而有时,严格的证明会完全淡化论证的精髓。因此,我们不必在意欧拉证明的不严谨,反而,它是一次完美的视觉与思维享受。正因如此,一些绝妙、非严密、(在某种程度上)不正确的但同时得出了正确结果的数学论证,就被称为“欧拉数学”。事实上,任何人、任何研究都必须经过“欧拉数学”这一不严密的早期阶段。
------------华丽的分割线----------------
下面是一条关于凸多面体的面、顶、棱公式,它属于拓扑学的内容,我们称之为“欧拉公式”。(当然,公式是欧拉的,论证过程只是笔者粗糙地给出的)。
轻微的扰动——摄动法简介(1)
By 苏剑林 | 2013-01-16 | 47140位读者 | 引用为了计算实际问题,我们总会采用各种各样的理想模型。一般而言,一个模型越接近实际现象,它往往会越复杂。而忽略掉多数微小的干扰,只保留一些主要的项,这通常可以得到一个相当简单、能够精确解出的模型。以这样的一个可以精确解出的近似模型为基础,逐渐地把微小项的影响添加进去,使得我们的答案越来越准确,这就是摄动法的思想,也称作“微扰理论”。这种方法源于求解天体力学的N体问题,而现在已经发展成为一门相当系统的学科,并应用到了相对多的领域,如量子力学、电子理论等。
其实不难发现,实际问题中存在不少这样的例子,即当我们要计算某个现象时,先考虑最突出的,然后再考虑细节。比如说,要计算地球的轨道,先把它看成一个与太阳组成的纯粹的二体系统,然后把各种微小效应加进去,比如月球的影响、各大行星的影响甚至由于地球的不规则形状所产生的影响等。当然,不仅仅是这一类复杂的“大问题”,我们平常可能会遇到的一些“小问题”有可能也让摄动法派上用场。本文试图将摄动法介绍给各位读者。
摄动法的主要步骤是先忽略微小影响(令小参数为0),求出精确解;然后把所要求的解表达为关于小参数的幂级数。这个方法可以用于解答代数方程、微分方程等等各种领域。下面先以一个简单的代数方程来说明:
一、求解方程:$\varepsilon x^3+x^2=p^2$
本文我们来探讨下列积分的极值曲线:
$$S=\int f(x,y)\sqrt{dx^2+dy^2}=\int f(x,y)ds$$
这本质上也是一个短程线问题。但是它形式比较简答,物理含义也更加明显。比如,如果$f(x,y)$是势函数的话,那么这就是一个求势能最小的二维问题;如果$f(x,y)$是摩擦力函数,那么这就是寻找摩擦力最小的路径问题。不管是哪一种,该问题都有相当的实用价值。下面将其变分:
$$\begin{aligned} \delta S =&\int \delta[f(x,y)\sqrt{dx^2+dy^2}] \\ =&\int [ds\delta f(x,y)+f(x,y)\frac{\delta (dx^2+dy^2)}{2ds}]\\ =&\int ds(\frac{\partial f}{\partial x}\delta x+\frac{\partial}{\partial y}\delta y)+f \frac{dx d(\delta x)+dy d(\delta y)}{ds} \\=&\int ds(\frac{\partial f}{\partial x}\delta x+\frac{\partial}{\partial y}\delta y)+f \frac{dx}{ds} d(\delta x)+\frac{dy}{ds} d(\delta y) \end{aligned}$$
力学系统及其对偶性(三)
By 苏剑林 | 2013-11-15 | 17334位读者 | 引用在上一篇文章中,我已经初步地从最小作用量原理的角度来观察对偶定律的表现。虽然那是一种便捷有效的方法,但是还是给我们流下了一些遗憾。上一节是从几何形式的作用量原理出发的,而没有在一般形式的作用量框架下讨论。因为如果在$S=\int Ldt=\int (T-U)dt$的形式下讨论坐标变换问题会出现困难,困难源于我们进行了变换$d\tau=|z|^2 dt$,这导致了时间和空间的耦合,变分不能简单地进行。但是,这并非无法解决的问题。我们还是可以在基本的作用量原理之下讨论变换问题。下面将对此问题进行讨论。
变分中的变量代换
考虑一个一般的保守系统的作用量:
$$S=\int_{t_1}^{t_2} L(q,\frac{dq}{dt})dt$$
生成扩散模型漫谈(十八):得分匹配 = 条件得分匹配
By 苏剑林 | 2023-02-28 | 28672位读者 | 引用在前面的介绍中,我们多次提及“得分匹配”和“条件得分匹配”,它们是扩散模型、能量模型等经常出现的概念,特别是很多文章直接说扩散模型的训练目标是“得分匹配”,但事实上当前主流的扩散模型如DDPM的训练目标是“条件得分匹配”才对。
那么“得分匹配”与“条件得分匹配”具体是什么关系呢?它们两者是否等价呢?本文详细讨论这个问题。
得分匹配
首先,得分匹配(Score Matching)是指训练目标:
\begin{equation}\mathbb{E}_{\boldsymbol{x}_t\sim p_t(\boldsymbol{x}_t)}\left[\left\Vert\nabla_{\boldsymbol{x}_t}\log p_t(\boldsymbol{x}_t) - \boldsymbol{s}_{\boldsymbol{\theta}}(\boldsymbol{x}_t,t)\right\Vert^2\right]\label{eq:sm}\end{equation}
其中$\boldsymbol{\theta}$是训练参数。很明显,得分匹配是想学习一个模型$\boldsymbol{s}_{\boldsymbol{\theta}}(\boldsymbol{x}_t,t)$来逼近$\nabla_{\boldsymbol{x}_t}\log p_t(\boldsymbol{x}_t)$,这里的$\nabla_{\boldsymbol{x}_t}\log p_t(\boldsymbol{x}_t)$我们就称为“得分”。
最近评论