重温SSM(一):线性系统和HiPPO矩阵
By 苏剑林 | 2024-05-24 | 129347位读者 | 引用前几天,笔者看了几篇介绍SSM(State Space Model)的文章,才发现原来自己从未认真了解过SSM,于是打算认真去学习一下SSM的相关内容,顺便开了这个新坑,记录一下学习所得。
SSM的概念由来已久,但这里我们特指深度学习中的SSM,一般认为其开篇之作是2021年的S4,不算太老,而SSM最新最火的变体大概是去年的Mamba。当然,当我们谈到SSM时,也可能泛指一切线性RNN模型,这样RWKV、RetNet还有此前我们在《Google新作试图“复活”RNN:RNN能否再次辉煌?》介绍过的LRU都可以归入此类。不少SSM变体致力于成为Transformer的竞争者,尽管笔者并不认为有完全替代的可能性,但SSM本身优雅的数学性质也值得学习一番。
尽管我们说SSM起源于S4,但在S4之前,SSM有一篇非常强大的奠基之作《HiPPO: Recurrent Memory with Optimal Polynomial Projections》(简称HiPPO),所以本文从HiPPO开始说起。
《新理解矩阵6》:为什么只有方阵有行列式?
By 苏剑林 | 2014-07-15 | 83428位读者 | 引用学过线性代数的朋友都知道,方阵和非方阵的一个明显不同是,对于方阵我们可以计算它的行列式,如果不是方阵的话,就没有行列式这个概念了。在追求统一和谐的数学系统中,为什么非方阵却没有行列式?也许对于这个问题最恰当的回答是——因为不够美。对于非方阵,其实也可以类似地定义它的行列式,定义出来的东西,跟方阵的行列式具有同样的性质,比如某行乘上一个常数,行列式值也就乘以一个常数,等等;而且还可以把其几何意义保留下来。但是,非方阵的行列式是不够美的,因为对于一个一般的整数元素的方阵,我们的行列式是一个整数;而对于一个一般的整数元素的非方阵,却导致了一个无理数的行列式值。另外,一个也比较重要的原因是,单单是方阵的行列式也够用了。综合以上两个理由,非方阵的行列式就被舍弃不用了。
非方阵的行列式不够漂亮
$n$阶方阵的行列式是每个向量的线性函数,它代表着向量之间的线性相关性;从几何上来讲,它就是向量组成的平行n维体的(有向)体积。我们当然期望非方阵的行列式也保留这些性质,因为只有这样,方阵行列式的那些运算性质才得以保留,比如上面说的,行列式的一行乘上一个常数,行列式值也乘上一个常数。我们考虑$m\times n$的矩阵,其中$ m < n $,我们将它看成是$m$个$n$维向量的组合。最简单的,我们先考虑$1\times 2$矩阵的行列式,也就是二维向量$(a,b)$的行列式。
在讨论曲线坐标系的积分时,通常都会出现行列式这个东西,作为“体积元”的因子。在广义相对论中,爱因斯坦场方程的作用量就带有度规的行列式,而在对其进行变分时,自然也就涉及到了行列式的求导问题。我参考了朗道的《场论》以及《数理物理基础--物理需用线性高等数学导引》,了解到相关结果,遂记录如下。
推导
设
\begin{equation}\boldsymbol{A}(t)=\left(a_{ij}(t)\right)_{n\times n}\end{equation}
是一个n阶矩阵,其中每个矩阵元素都是t的函数。其行列式为$|\boldsymbol{A}|$,自然地,考虑
\begin{equation}\frac{d}{dt}|\boldsymbol{A}|\end{equation}
[问题解答]有多少位数字?
By 苏剑林 | 2013-02-21 | 19099位读者 | 引用解决完上一题《有多少个5?》后,子瑞表示看到一道类似的题目,当然,这道题比上一道难一些:
一个数,各个数字加起来等于900,乘以2后各个数字加起来还是等于900,已知这个数字只有3、4、5、6组成,请问满足条件的最大数与最小数的积有多少位数?
要解答这个问题,我们只需要知道最大数和最小数分别有多少位即可。因为最大数必然是6...3的形式,而最小数只能是3...6的形式,它们的位数之和就是所求的位数。
怎样比较两个数的大小呢?显然,在不同位数的数时,位数多的数要大,同样位数才从高到低逐位比较。因此,我们应当考虑位数的最大与最小。
矩阵化简二次型(无穷小近似处理抛物型)
By 苏剑林 | 2012-12-25 | 30356位读者 | 引用(阅读本文最好有一定的线性代数基础,至少对线性代数里边的基本概念有所了解。)
这学期已经接近尾声了,我们的《解析几何》已经讲到化简二次曲线了。可是,对于没有线性代数的其他同学们,直接用转轴和移轴这个计算公式来变换,那计算量会让我们很崩溃的;虽然那个“不变量”方法计算上有些简单,却总让人感到很诡异,总觉得不知从何而来,而且又要记一堆公式。事实上,如果有线性代数的基础,这些东西变得相当好理解的。我追求用统一的方法求解同一种问题,即用统一的方式处理所有的二次型,当然也希望计算量简单一点。
一般的模型
一般的二次型可以写成
$$x^T A x + 2 b^T x + c=0$$
其中$x,b$都是n维列向量(各元素为$x_i$和$b_i$),A是n阶方阵(各元素为$a_{ij}$),c是常数。在这里,我们只讨论n=2和n=3的情况。化简二次型的过程,可以归结为A矩阵的简化。
算子与线性常微分方程(下)
By 苏剑林 | 2012-11-30 | 26439位读者 | 引用不可交换
很自然会想到把这种方法延伸到变系数微分方程的求解,也许有读者回去自己摆弄了一下却总得不到合适的解而感到困惑。在这里群的非Abel性就体现出来了,首先用一个例子来说明一下,我们考虑算子的复合
$$(D-x)(D+x)=D^2-x^2+(Dx-xD)$$
我们要谨慎使用交换律,我们记$[P,Q]=PQ-QP$
其中P和Q是两个算子,此即量子力学中的“对易式”,用来衡量算子P和算子Q的可交换程度,当然,它本身也是一个算子。我们先来求出$[D,x]$给出了什么(要是它是0的话,那就表明运算可以交换了)。究竟它等于什么呢?直接看是看不出的,我们把它作用于一个函数:
$$[D,x]y=(Dx-xD)y=D(xy)-xDy=yDx+xDy-xDy=y$$
由于“近水楼台先得月”,所以$Dxy$表示x先作用于y,然后D再作用于(xy);而$xDy$表示D先作用于y,然后x再作用于Dy。最终我们得到了
算子与线性常微分方程(上)
By 苏剑林 | 2012-11-30 | 54334位读者 | 引用简介
最近在学习量子力学的时候,无意中涉及到了许多矩阵(线性代数)、群论等知识,并且发现其中有不少相同的思想,其中主要是用算子来表示其对函数的作用和反作用。比如我们可以记$D=\frac{d}{dx}$,那么函数$f(x)$的导数就可以看作是算子D对它的一次作用后的结果,二阶导数则是作用了两次,等等。而反过来,$D^{-1}$就表示这个算子的反作用,它把作用后的函数(像)还原为原来的函数(原像),当然,这不是将求导算子做简单的除法,而是积分运算。用这种思想来解答线性微分方程,有着统一和简洁的美。
线性微分方程是求解一切微分方程的基础,一般来说它形式比较简单,多数情况下我们都可以求出它的通解。在非相对论性量子力学的薛定谔方程中,本质上就是在求解一道二阶偏线性微分方程。另一方面,在许多我们无法求解的非线性系统中,线性解作为一级近似,对于定性分析是极其重要的。
一阶线性常微分方程
这是以下所有微分方程求积的一个基础形式,即$\frac{dy}{dx}+g(x)y=f(x)$的求解。这是通过常数变易法来解答的,其思想跟天体力学中的“摄动法”是一致的,首先在无法求解原微分方程的时候,先忽略掉其中的一些小项,求得一个近似解。即我们先求解
$$\frac{dy}{dx}+g(x)y=0$$
《新理解矩阵4》:相似矩阵的那些事儿
By 苏剑林 | 2012-11-11 | 71126位读者 | 引用这篇文章估计是这个系列最后一篇了,也许以后会继续谈到线性代数,但是将会独立开来讲述。本文主要讲的是相似矩阵的一些事情,本文的观点很是粗糙,自己感觉都有点模糊,因此请读者细细阅读。在孟岩的文章里头,它对矩阵及其相似有了一个非常精彩的描述:
“矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述。”
同样的,对于一个线性变换,只要你选定一组基,那么就可以找到一个矩阵来描述这个线性变换。换一组基,就得到一个不同的矩阵。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。








最近评论