下一篇文章可能是关于机器学习的,因为我最近发现,尽管我对于机器学习的一些理论达到了能说会道的地步,但是实际操作起来,却是这里不会,那里也不会。以致于自己弄出来的一个数据集,利用梯度下降法得出来的参数,虽然和最小二乘法得到的参数是一样的,但是根本没办法解释图像的非线性。所以我最近可能会在这一方面多看一点。
说起来,机器学习也算是神经学的预备知识,因为前沿的文献很多都是通过机器学习的方法来解决神经信号方面的问题的。最突出的就是最近谷歌做的对果蝇大脑进行全成像的报道,其内容几乎绝大部分都是基于机器学习的,换句话说,是通过新的神经网络算法得到的。
不说废话了,从这里开始介绍。上一篇文章中陈诺的吸引集和吸引子相关的内容可能要留到下一篇关于动力系统的文章里面来讲了。大致的顺序是这样的:庞加莱映射、周期轨、极限集、周期轨的李雅普诺夫函数。
1,庞加莱映射
在上一篇文章中,我们较为简略地介绍了流与李雅普诺夫指数的特性。在这里,我们基于流本身,讲一种特殊的映射:庞加莱映射。
流,形象化地说,就是空间中的一条曲线,微分方程的一组解对应了空间中一条曲线。这条曲线的去向是未知的,但是很显然,当一个方程确定下来,以及给定了初始点以后,这个流就确定下来了。
这个流可能孤独地往前走,走向了无穷远处,也可能在某一个地方开始弯折,朝着原来的反方向前进。这些都是由微分方程组决定的。接下来,我们引入一个例子,这个例子有非常好看的相图,而且,在我们这一篇文章的叙述当中,它非常完美地可以在每一处概念解释地时候引入。
这个微分方程组被称为Vanderpol方程组。它具有如下形式:
其对应的相图如图所示,横坐标表示
![]()
,纵坐标表示
![]()
:
vanderpol方程的相图。初始点为(0,1),(0,-1),(0,5),(0,-5),(-3,4),(3,-4)从这种图中,我们可以简略地看出Vanderpol方程的性态:它的流最终趋向于一个环,这个环虽然不是圆环,但是可以看出它是由闭合曲线构成的。在这里,我们要说的是,虽然数值模拟不能够完美地,毫无瑕疵地反应一个方程组的相图,但是,对于复杂度不高的方程组(所谓复杂度不高的方程组,是指其混沌特性在一定的可控范围内,或者说,像是洛伦兹系统那样,局限于一个小的范围内,并且在这个小的范围内,流的特点有一定的相似性),由于其流的一定范围内有足够的相似性,因此我们可以认为,数值模拟得到的相图能够反映该方程组的局部性态。
接下来,我们将要详细讨论庞加莱映射。
首先,为了便于推广到高维空间,我们先定义超平面的概念,所谓超平面,就是对于一个n维欧式空间而言,一个n-1维的子空间,这个子空间的要求和线性代数中的子空间要求不同,不需要满足线性空间的要求。或者说,我们可以把超平面理解成内嵌于n维欧式空间的一个n-1维流形。这个流形的要求就是该流形存在一个线性同胚的流形,且这个新流形上的点满足某个坐标相等。
上面这个精确描述有点难以理解了,我们换一个简单易懂的方法。我们都知道,三维空间中的平面就是一个二维空间,而二维空间中的直线就是一维空间。上述两个例子都是超平面,超平面就是三维空间中平面的推广,四维空间中的超平面就是一个三维空间。只不过,与线性空间的区别在于,不需要存在加法单元。
有了这个超平面,我们就可以定义庞加莱映射了。
对于空间中的流
![]()
,取一个包含
![]()
而不与
![]()
相切的超平面
![]()
,可知,
![]()
是流
![]()
与
![]()
的第一个交点。沿着流运动,如果存在第一个时间
![]()
,使得
![]()
,那么,我们称
![]()
经过一次庞加莱映射到了
![]()
,记为:
![]()
。
简而言之,庞加莱映射,就是初始点从过初始点的超平面开始,沿着流,直到流再次与超平面相交得到一个新的点,这就是庞加莱映射。因此,庞加莱映射是随着微分方程组变化而变化的。而且庞加莱映射的定义域是那些存在这样的超平面使得流能够回归的初始点。
庞加莱映射可以简单地通过数值模拟得到。因此我们不打算详细地去讨论庞加莱映射。
2,由庞加莱映射定义周期轨
庞加莱映射给出了一种回归性,这种回归性不是完全回归的,而是近似回归的,在绝大多数情况下的庞加莱映射,都不是一个恒等映射。
以Vanderpol方程为例,例如我们取
![]()
为(0,5),且超平面我们直接取为
![]()
轴。由数值计算结果,我们可以得到,
![]()
。并且我们可以简单地从图像中观察得到,庞加莱映射得到的点的纵坐标是在0两端跳跃的。
因此我们可以得到一个数列,其中的第
![]()
个项是
![]()
的纵坐标,则数列的第0个项就是初始点纵坐标5,我们来观察这个数列,显然,这个数列是没有极限的,因为它在0两端跳跃,而且不是趋于0的。由此,我们可以得出一个结论,该数列的奇数项子列有一个极限,偶数项子列也有一个极限。由数值模拟可以得到奇数项的极限约为-2.172825,按照对称性,偶数项的极限约为2.172825。
在叠函数中,我们可以利用这种极限存在的无穷序列来判断叠函数系的周期点。在这里,我们不就叠函数做详细讨论。
按照一般的定义,我们从流的角度来定义周期轨的话,我们可以得到这样的叙述(事实上,这种定义是最明晰的):
对于流
![]()
,如果存在某一最小的
![]()
,使得
![]()
,那么称流
![]()
形成了周期轨,并且我们
称
为周期轨的周期。
从这里我们可以看到,加入我们做一个穿过
![]()
的超平面
![]()
,并且
![]()
不与
![]()
相切(事实上,相切也没有很大的问题,但是可以使讨论变得简单),我们就可以得到这样的庞加莱映射:
![]()
,也就是说,
在这种情况下,庞加莱映射是一个恒等映射。
因此我们可以通过庞加莱映射来定义周期轨:如果由流组成的集合
![]()
中存在非不动点
![]()
使得
![]()
(这种形式等价于
![]()
),那么,我们称该系统存在周期轨。非不动点的要求并非是完全必要的,因为庞加莱映射基本上是不考虑不动点的,因为
不动点对于庞加莱映射是没有意义的。
周期轨道往往带有吸引性和排斥性,这通过李雅普诺夫函数来确定,我们将在接下来的几节中讨论李雅普诺夫函数和收缩性。在那之前,我们还有一个重要的概念,那就是极限集。
3,极限集
顾名思义,极限集是一个集合,是流的极限的某种集合。如何来明确这个概念是比较困难的,但是我们可以先说出这样的一个事实,那就是:如果在周期轨附近区域,其李雅普诺夫函数的时间微商严格小于0,那么,对于以周期轨附近的初始点起始的流,它的极限集为整个周期轨。这一点将在文章的最后加以叙述。
如何来理解极限集呢?首先我们给出比较完整的定义:
若对空间中的流
![]()
,存在一个时间序列{
![]()
},使得点列
![]()
有一极限
![]()
,则称
![]()
,我们称全体这样的极限点组成的集合为极限集,记为
![]()
,表示以
![]()
为初始点的极限点的集合。如果要用更加精确的语言描述的话,就是:对于
![]()
,使得当
![]()
时,有
![]()
。这是一个非常简单的表述。
直观上,极限集表示流无限次经过其附近的点的集合,如果简单趋于一点的流,那么其极限集就是该极限点;如果是回复环绕的流,那么其极限集将有很多个点,甚至无穷多个点。
例如在上面的Vanderpol模型中,我们可以看到,以(0,5)为初始点的流,其极限集为整个周期轨,也就是说,对于周期轨上的每一点,都有时间序列{
![]()
}使得点列
![]()
以该点为极限。这是显然的。
4,李雅普诺夫函数
这个名词可能对很多人都很陌生,但是有一个名词,所有人都知道,那就是能量函数,事实上,能量函数就是一种李雅普诺夫函数。
我们先来简要叙述一下李雅普诺夫函数:李雅普诺夫函数
![]()
表示满足以下要求的函数:
在不动点
![]()
或周期轨
![]()
附近的区域内,满足对于
![]()
,有
![]()
或者
![]()
为该区域中的极小值,且对于该区域中的其他点
![]()
,满足
![]()
。若增加一个较强的条件,使得李雅普诺夫函数的时间微商严格小于0,则称之为严格李雅普诺夫指数。
简而言之,严格李雅普诺夫函数表明了不动点或者周期轨的最优性,即随着时间的推移,可以推出流最终趋于不动点或者周期轨。
在系统无阻尼无耗散的情况下,区域内的李雅普诺夫函数是没有意义的,因为其李雅普诺夫函数的时间微商严格等于0。
大多数物理系统中,能量函数可以作为李雅普诺夫函数,因为孤立系统的能量是严格非增的。
最后,我们来解释一下前文中所说的话。其实到这里,大家也应该都理解了,由于其李雅普诺夫函数的时间微商严格小于0 ,那么,流的方向会沿着李雅普诺夫函数值减小的方向运动,因此会最终趋于一个极小值,即不动点或者周期轨。然而,对于大多数函数来说,不能简单地使用能量函数来作为李雅普诺夫函数,因此需要发挥观察能力,更需要一种直觉。