一种针对1维实函数的学习机*

熊楚渝

 

独立研究员-美国纽约

 

 Email[email protected]

 

2020120

 

 

 

 

摘要

 

通用学习机是这样的计算系统,它可以不用人工预设和人工干预,就可以从数据中学会处理信息的能力1维实函数是非常重要和基本的数学对象。可以说,在任何工程和应用中,1维实函数都以某种方式出现。遵循通用学习机的思想方法,我们特别设计一种学习机用于1维实函数的通用学习,即不用人工预设模型和人工干预,在数据的驱动下,这个学习机就可以学会任何1维实函数。为此,我们设计了特殊的思绪空间,更重要的是,我们建立了一种新的学习动力学方法,使得学习可以高效进行,具备明显的优点。这种学习动力学方法,具备相当的普适性,可以扩展到更一般的通用学习机。

 

Keywords. 通用学习机,思绪空间,学习动力学,元素函数,表达集,最小合适采样,限制泛函,拟合极值

 

 

不应否认任何理论的终极目标都是尽可能让不可削减的基本元素变得更加简单且更少,但也不能放弃对任何一个单一经验数据的充分阐释。——阿·爱因斯坦

1、导言

1维实函数是一种最常见的数学对象。更具体地说,我们考虑函数f(x),此处x,f都是实数,x ∈[a, b],a,b也都是实数且a<b。可以说,几乎任何工程项目和任何应用都离不开这样的实函数。在任何项目和应用中,1维实函数都会以某种方式出现。

那么,怎样让机器获得计算或者处理一个实函数的能力?自然可以用编程把这种处理能力灌输给机器。但是,我们更希望机器能够自动从数据中学会实函数,即我们输入数据给机器,而机器可以从数据中逐步获取到那个产生这些数据的实函数。这样的要求,出现在几乎所有的工程项目和应用领域。

因此,我们的设定是:给定一组自变量和和相应的函数值,xk, yk= f(xk), k =1,2,,,,, N,要求用这些数值(而且要尽可能少的数值)来训练学习机,使得学习机(近似地,或者精确地)获得那个实函数f(x),并且在学习后,可以很方便使用学习机来计算f(x), ∀x ∈[a, b] (应该有:∀xk,f (xk) = yk)。

初看起来,这个要求和函数逼近论没有差别,而且现有的人工神经网络也能处理得不错。众所周知,人工神经网络的万有逼近定理说明可以建立一个人工神经网络来有效逼近这样的实函数。但是,如果我们考虑如下的条件,就会发现其实不然:1)不需要人工介入,仅需要输入足够的数据(注意,不是非常多的数据,仅是足够的数据),就可以驱动机器完成学习任务,即获取函数f(x)2)对于学习生成的结果,即机器内部究竟是个什么函数,可以给出完全清晰的理解。3)已经完成的学习结果,可以很方便用于新的学习。例如,当机器学会了f(x)后,再学习2f(x)+5x2就会容易很多。4)根据需求,可以近似地获得f(x),也可以精确地获得f(x)(注意,不是近似,而是精确)。

根据我们的了解,目前并没有满足这些条件的机器学习方法和理论。举例来说,一个设计得足够强大的人工神经网络的确可以逼近f(x),但是,这个网络必须人工(根据数据的性质)预先搭建好,如果搭建得不好,很可能就不能逼近f(x)。其次,一般来说,这个网络仅可能近似而不可能精确获得f(x)。更重要的是,如果这个网络是深度网络,我们不可能明确知道函数f(x)究竟是什么,即不能明确知道当给定自变量x,函数值f(x)是怎么计算出来的,或者说不可能给出任何关于f(x)的明确的表达,仅可以说,网络训练出来的就是这样的。因此,这样训练出来的网络很难用于其他地方,例如学会了f(x),但是对于学习2f(x) +5x2不会产生什么帮助,很可能需要从头来一次。因此,我们希望研究更好的针对1维实函数的学习机。

我们一直在研究的通用学习机理论为我们提供了理论指导(参见文献12345)。此处做一个简短的回顾。

 

机器学习是一个非常重要和非常活跃的计算机技术领域。迄今为止,绝大多数计算机的能力来自于人工编程而开发的软件。但是最近若干年,一个趋势越来越明显,那就是,采用大量数据来训练机器,使得机器可以通过学习来获得处理这一类数据的能力,进而超越人工编程的计算机。围棋软件AlphaGo就是一个非常著名的例子。应用机器学习技术,可以开发出那些已经不能单靠编程来实现的软件,例如图像识别,语言识别等等。目前机器学习是一个热门学科,各个方面都投入了巨大资源进行各种研究,因此,机器学习的各个方面都得到迅速进展。

但是,机器学习仍然面临众多的问题和困境,如:1)在学习和处理数据之前,必须人工搭建良好的模型。不能仅依靠足够的数据,就可以驱动机器完成需要的学习任务。2)对于学习生成的结果,不能做出完全清晰的、确定性的理解。3)已经完成的学习结果,不能顺利用于其他新的领域。如果有技术可以解决如上的困境,就将带来巨大的利益。

为了建立机械式学习的理论基础和发明高效的工程技术,我们在2016年发表文献1。在该文中,我们对机械式学习和学习机的最基本属性做了初始讨论。在2017年,我们申请了中国发明专利,参见文献7。该发明具体设计了一种通用学习机,其设计具形化为相应的计算机软化,而且完全可以实现硬件化。在2017年,我们发表了文章2,进一步发展了机械式学习的理论,并且建立了通用学习机理论。在该文章中,我们对通用学习机的一些基本方面做了探讨,并且证明了几个关于通用学习机的定理。我们指出,完全有可能实现通用学习机,而且讨论了具体建立通用学习机的方法。在2018年,我们又发表了文章4、5。进一步探讨通用学习机。其中,我们讨论了通用学习机的基本构型,特别是明确规定了思绪空间和节制空间。这些都对我们理解通用学习机起到了很好的促进。现在,我们应用前述的理论和思想,特别设计了一种针对1维实函数的学习机(参见文献8)。我们将表明,这样的学习机的确可以满足前面讲到的那些条件,的确具备优越性。

此处我们指出,1维实函数的学习机不仅具有极为重要的应用的意义,而且它是一个非常好的研究通用学习机的特殊情况。1维实函数是相对简单的数学对象,比较容易把握,而且有很多数学工具可以采用,使得我们可能比较容易深入。当我们获得深入的成果后,再推广到更多的情况,就可以极大促进我们对通用学习机的研究。这也是我们现在深入研究1维实函数学习机的主要目的。

我们需要强调,本学习机是采用决定论性的方法,也期望获得决定论性的结果。但是本学习机并不排除概率论。例如,本学习机获得的实函数,可以被解释为某种概率分布的密度函数。但是,需要明确说明,本学习机从数据中获取确定性的知识。这些知识可能有错误,但是,知识本身是确定的。这是从数据和不确定性走向知识和确定性的重要环节。对具有不确定性的数据,我们将在后面的工作中做进一步的研究。

我们在此处仅针对1维实函数,也就是因变量为1个实数而且自变量也为1个实数。但是,根据公知的数学规律,我们可以把这个学习机轻易推广到自变量为一个实数而且因变量为多个实数的情况。对于自变量为多个实数的情况,就需要做适当的调整来推广。但是原理是完全一致的。特别是学习动力学,更是如此。

 

思绪空间和学习动力学方法是核心内容。我们先讨论思绪空间,然后学习动力学方法,再讨论相关的数学问题,最后我们做一些相关的评论。

2、学习机结构和思绪空间

 

学习机的基本结构,参看图1。学习机的最基本部分为:输入空间,输出空间,思绪空间和节制空间。这个基本结构是我们的通用学习机的一贯的结构【3、4、5】。

一种针对1维实函数的学习机*

1. 针对1维实函数的学习机的基本结构

 

  但是特殊针对1维实函数,我们设计了一个独特的思绪空间。这里对这些部分做基本描述。

2.1  输入,输出,思绪,节制空间

  因为是1维实函数,自变量就是一个实数,取值于一个实数区间:[a,b] ,此处a, b为实数,并且a < b。我们曾经在专利【7】中使用的输入空间是N维二进制空间。我们其实可以沿用这个设计。但是,现在我们的着眼点在实数。如果采用N维二进制空间,就需要建立二进制和实数的转换,而且对通常的实数函数而言,大多数二进制向量空间的性质都用不上,因此,直接使用实数就更直接方便一些,可以更直接地表达1维实函数。不过,如果我们关心的不是实数到实数的映射(尤其是连续的,光滑的映射),而是要复杂很多的一般的映射,那样就应该回到N维二进制空间。

输入空间起的作用比较简单,就是接收输入的自变量,然后再把自变量输入到思绪空间中的一个或者多个元素中。具体的逻辑结构在后面谈到。

因为是1维实函数,函数值也是一个实数。输出空间接收两个实数。一个是来自于训练数据的函数值,一个是来自于思绪空间计算出来的函数值。来自于训练数据的函数值可以为空。输出空间接收到这两个实数后,将根据既定的逻辑做出判断,也根据既定的逻辑决定输出函数值。逻辑结构见后。

 

思绪空间是学习机中用于承载学习结果和进行信息处理的关键部分【4】。首先注意到,学习机是信息处理机,从输入空间获得的信息,并且加以处理,然后再送到到输出空间。我们因此知道学习机中必然有若干信息处理片段。我们可以把思绪空间看成这样的一个容器,其中包含这些信息处理片段,而这些片段可以用于承载学习的结果,并且帮助进行信息处理。本学习机中,输入空间到输出空间的信息处理就是实函数,因此,那些处理信息的片段就应该是一些1维实函数,而更多的实函数可以由这些片段来构建。也就是说,这些片段为元素函数,这些元素函数在思绪空间中逐渐积累起来,以帮助学习,使得学习机最终构建出合适的1维实函数。而在每一个时刻,思绪空间都有一个实函数来执行从输入空间到输出空间的处理。我们称这个函数为当前函数。当前函数将随学习而改变。思绪空间的详细内容和学习过程见后。

 

节制空间中有基本的控制程序和相关联的数据,用于控制学习机和执行学习动力学。节制空间基本上是不变的。但是,如果学习机是多级学习机的话【4】,节制空间本身也是一个学习机,因此也就会改变和适应(因此,节制空间里面就会有其自身的学习机,因此也就有高一层次的思绪空间和节制空间)。

2.2  思绪空间的设计

 

思绪空间是学习机的核心部分。我们在【4】中明确提出了思绪空间这个术语。这个术语对我们理解通用学习机,有相当的帮助。但是在那里,我们还没有对思绪空间做更仔细的规定。因为对1维实函数进行了深入探讨,现在我们可以对思绪空间看到更清楚了。参看图1,思绪空间分成几个部分。思绪空间中有一些函数,我们称为元素函数,他们都是1维实函数。这些元素函数,是思绪空间的基元,是用于构建更多的1维实函数。我们在图1中,把这些元素函数表现在虚线以下。我们对这些元素函数的定义域不做完全的描述,但是,我们要求其定义域可以满足操作的需要。思绪空间中另外的一些函数,是由元素函数来操作形成的,或者说用元素函数来表达的,这些函数的集合,我们称为表达集。当前函数就在表达集中。图1中,这些函数在虚线以上。

 

假设思绪空间中的全部元素函数为:g1,g2,,,,,gL。那么,我们将怎样用这些元素函数来构建更多的函数?因为本学习机针对1维实函数,因此非常自然地,我们设计如下的操作: 

1)通常的加减乘除,例如2+3.5,*等等。

2) 函数的复合,例如((x)),(+),等等

3)函数的片段结合,例如

 

4)定参,或者参数的赋值,例如元素函数 (x,φ)中有一个参数φ ,定参就是取定参数的值,像  φ=1.5,这样f(x)= (x,1.5)

 

在这里我们对函数采用的操作就是如上的4种操作。当然,我们也不排除可以规定更多的操作(或者更少),如果有这样的必要的话。不过这里就不做讨论。我们不限制操作的次数和顺序。我们假设全部操作都有良好的定义。如果构建出来的函数作为当前函数,我们还要求函数的定义域包括[a,b]

 

2.1 (元素函数) :假设线性函数g(x) = x,常数函数g(x) = 1,是元素函数。这样,我们使用操作1,就可以构建而得任何多项式函数。这样,就可以逼近任何在[a,b]上的连续函数(但是,还不是精确地获得)。我们使用操作3,就可以构建而得到分片函数。这样就可以逼近任何分片连续函数。如著名的阶跃函数,或者ReLU函数,都可以这样获得。

 

本例表明仅用2个简单的函数作为元素函数,就足够表达很多实函数了。那么,我们自然会问,既然这两个元素函数就够了,为什么还需要更多的元素函数?这是我们设计的关键之处。在思绪空间中,有更多的元素函数,配合优秀的学习动力学,就可以极大改善学习机的学习能力和处理信息的能力。因此我们的思绪空间可以有,也需要有更多的元素函数。

 

通常的元素函数可能是:常数函数,线性函数,幂函数(因此多项式函数),阶跃函数,ReLU,三角函数,指数函数,对数函数,等。但是,我们不做具体的限度。除开常见的函数外,完全可能是特殊函数,例如伽马函数,贝塞尔函数,等等。元素函数还可以更多样。例如,一个训练完成的深度神经网络,就可以看成是一个实函数,因此可以作为元素函数出现在思绪空间中。又例如,一个常微分方程的初始问题的解,也可以看成是一个实函数(取一个固定的时间长度,自变量作为初始条件,函数值就是初始问题的解),因此可以作为元素函数使用。更进一步,一个已经训练完成的本学习机,也可以看成为一个实函数,就可以作为元素函数。这样我们就赋予了学习机很好的继续学习的能力。

 

我们这里可以对照一下通常的机器学习系统,在那里都是预先人工搭建某个参数体系,然后去调整参数,以完成学习。我们的思绪空间则完全不同,不是人工搭建某个参数体系,而是基于一些操作规则,通过操作元素函数来形成函数。这样形成的容量就远远超过了参数体系,表达能力要强很多。因此就不需要预先人工搭建一个模型,本学习机完全可以从一个空的思绪空间出发,在数据的驱动下,按照学习动力学逐步发展出合适的元素函数,进而形成正确的当前函数,完成学习。

 

当然,从空的思绪空间出发,训练需要的工作量就可能要高很多。因此,实践上,在训练之初思绪空间往往并不为空,而是已经有了合适的元素函数。这些元素如前面描述,而且这些函数中,也可以有若干参数,有待学习动力学来选择合适的参数。在数据的驱动下,学习动力学将用元素函数来形成当前函数。在必要时,学习动力学还将发展出新的元素函数。

 

注意,虽然当前函数只有一个,但是在学习过程中思绪空间中曾经使用过的当前函数可能有很多。这些曾经使用过的当前函数可能被遗忘了,但是也可能成了元素函数,变成了学习机的重要资源,帮助后面的学习。此点非常重要。事实上,这正是本学习机所具备的特殊能力。

2.3  本学习机和通用学习机的关系

 

  

我们在【2、4、5】中建立了通用学习机。现在我们又建立了一种针对1维实函数的学习机,两者之间的关系是怎样的?

 

先回顾一下我们以前建立的通用学习机。在那里,输入空间是N 维二进制向量空间,输出空间是M-维二进制向量空间。这样的设定具备完全的普遍意义。现在的学习机的输入空间和输出空间都是一个1 维欧式空间,和通用学习机好像很不同。但是,如果我们把实数值离散化为一个N-维二进制向量(容许一定的舍入误差),那么,这里的学习机就和通用学习机联系起来:一个实函数就相当于一个从N 维二进制向量到N 维二进制向量的信息处理。这样看的话,通用学习机和这里的学习机就没有什么差别了。不过,我们在讨论实函数时,通常是隐含设定这些函数具备一定程度的限制,例如分片连续,可微分,导数有界,等等。这些条件就使得1维实函数是信息处理的特例。如果我们把这些隐含的条件去掉,1维函数也可以超级复杂。总之,我们完全可以把这里的学习机看成通用学习机的一种特例(如果我们不记舍入误差的话)。

 

因此,以前建立的思绪空间和这里建立的思绪空间也就相通了。不过,我们这里建立的思绪空间更明确:发展出了元素函数,表达集,当前函数等。我们也将把这里获得的知识用回到通用学习机去。

3、 学习动力学

  

学习动力学,即是学习机在数据的驱动下如何改变自己处理信息的能力,这是学习机的最核心部分。我们设计的学习动力学的逻辑在图2到图6中表述。我们先分别就每一图做描述,再做整体的描述。

一种针对1维实函数的学习机*

2. 学习机的基本运行图

2表达学习机的运行。运行状态分为两种,一种是训练,一种是工作。两种状态的区别,仅在于输出空间中训练用的函数值是否为空。如果不为空,学习机就需要根据这个函数值进行训练,如果为空,学习机就不训练,仅用当前函数来算出函数值并且输出。学习机的运行逻辑就是:输入空间获取输入的数据,或者是工作用的自变量(这时函数值为空),或者训练用的自变量和函数值(这个值不为空,可以用做训练)。如果工作,就仅计算函数值。如果训练,就采用这些值来训练学习机。如何训练则遵循图3-6的规则。学习的结果可能导致修改当前函数。这样,本学习机可以很方便地用于在线学习,训练完成的学习机也可以很方便地用于工作(甚至成为新的学习机的组成部分)。

一种针对1维实函数的学习机*

3. 输入空间的逻辑结构

3是输入空间的基本逻辑结构。从图3可以看到,可以采用同一数据,反复学习,此点值得注意。这样,就有可能使用小数据而获得良好的学习。也只有这样,才能把数据变成确定性的知识。

一种针对1维实函数的学习机*

4. 输出空间的逻辑结构

4显示输出空间的基本逻辑结构。图3和图4的逻辑是相互衔接的。

一种针对1维实函数的学习机*

5. 学习的逻辑设计

5表达学习的基本逻辑。在图5中,可以看到学习动力学模块,学习基本上是在这里进行的,学习的结果是修改当前函数,这是本学习机的核心部分。图6表述学习动力学的基本过程。

一种针对1维实函数的学习机*

6. 学习动力学的逻辑设计

学习动力学中有若干组件。首先,决定是否扩展元素函数,即是否需要新的元素函数。此项判断需要使用学习机中的各种相关的历史和现状的信息。一个非常重要的组件是扩展元素函数。这在学习动力学中起很重要的作用。此处,我们仅指出,在数据的驱动下的确可以有方向地扩展元素函数(见下面的能力设定)。再一个组件是建立限制泛函和决定采用哪种限制泛函的组件。选取合适的限制泛函是本学习机进行成功学习的关键。从元素函数构建表达集的组件,和求解限制泛函的拟合极值问题的组件,用于最主要的学习活动,即找到更好的当前函数。图2 6的模块和逻辑流程设计,是我们的独特的全新的学习机的设计,而图6的学习动力学设计更是我们的独特设计。

 

现在对学习动力学的全貌有了介绍,我们来对学习动力学做更仔细的讨论。学习动力学里面的数学问题将在下一节讨论。

 

 

元素函数,表达集,采样点组,限制泛函,拟合极值,等等

 

我们先做一些规定。思绪空间中的元素函数是一些实函数,记为:g1, g2,…..,gL,我们将用它们来构建更多的函数。对这些元素函数进行4种操作,即可构建出一个1维实函数f。我们要求f是良好定义的,并且定义域包括[a, b] ,除此之外,我们对怎么操作,操作的次数和顺序都不做要求。我们称所有这样的1维实函数的集合Ω为表达集。f是一个实函数,如果表达集Ω包含f,即f Ω,我们就说f可以为元素函数所表达。

a ≤  <  < . . . <  ≤ b,是一组[a, b] 中的点,我们称为采样点组,我们又称K为采样点组的采样数。

 

R     :Ω→R是定义在表达集上的泛函。除了定义在Ω上,对R没有任何其他限制。我们称这样的泛函R为一个限制泛函。

 

假设f为一个连续函数,再假设我们能找到一个采样点组,xi, i = 1, 2, . . . ,K,使得当用数据,(xi, f(xi), i = 1, 2, . . . ,K去训练学习机时,学习机的表达集Ω会扩展,并且使得f Ω(即f可以为元素函数所表达),我们则称此学习机可以扩展包括f。如果对任何连续函数f,学习机都可以扩展包括f,我们则称此学习机具备完善的扩展能力。

 

假设表达集为Ω,限制泛函为R,采样点组为a ≤  <  < . . . <  ≤ b,那么,我们称如下极值问题为拟合数据条件下的限制泛函极值问题,简称为拟合极值问题:

一种针对1维实函数的学习机*

此处yi, i =1, 2, . . . ,K是训练用的函数值。

 

也就是说,拟合极值问题就是去求这样的ff在表达集中,并且在采样点组上满足数据条件(所谓拟合),而且使得限制泛函取最小值。

学习过程

使用这些规定,我们就可以更精确地描述学习动力学。为方便描述起见,我们假设,此刻到达输入空间的是输入(xK, yK),而且从学习开始到现在的所有输入为(xi, yi), i = 1, 2, . . . ,K,而且假设所有的yi都不为空。这些假设都是合理的。我们来仔细描述学习的过程。当学习经过前面的图3 5的那些步骤,进展到图6所示的过程时,其进程如下:1  首先要判断是否进入扩展元素函数的组件。这个判断需要学习机使用全部的已知信息。但是,完全可能,扩展元素函数总是做的。根据我们的假设,学习机具备完善的扩展能力,因此,当输入足够多和足够好时,我们期望学习的那个函数d(x)就已经在表达集里面了。2  然后进入扩展元素函数的组件。3  然后适当清理元素函数。这个过程是一个相对简单的清理管理过程。4  选择合适的限制泛函,是成功学习的关键点。5  然后,就进入求拟合极值问题这个阶段。这个阶段将要使用两个组件,一个是表达集组件,一个是求拟合极值的组件。在拟合极值问题中,表达集就是此刻的表达集,限制泛函为此刻选定的限制泛函,采样点组就是xi, i = 1, 2, . . . ,K。我们将在下一节证明,拟合极值问题一定有解,我们就用这个解来更新当前函数。根据下一节的定理4 1,当采样节点xi, i = 1, 2, . . . ,K足够多和安排得足够好,拟合极值的解就会精确成为我们期望的函数(即数据背后的那个函数)。这样,我们就达到了精确的学习。

 

总结之,我们的学习动力学就是:元素函数是出发点,在数据的驱动下,扩展元素函数,使得期望学习的函数可以被表达出来,然后选取合适的极值泛函,然后求解拟合极值问题,而拟合极值问题的解,就被选择为新的当前函数。根据我们的理论(见后面),只要输入数据足够多足够好(注意,不是非常多,仅是足够多),这样的学习动力学就将使得学习机精确学会数据背后的函数(注意,不是近似,而是精确)。

 

  3.1 (限制泛函) :可以定义一个限制泛函R为:

一种针对1维实函数的学习机*

此处f0是某个选定的函数。这个限制泛函就是f和某个选定函数的1-模。同样地,也可以定义为2-模:

一种针对1维实函数的学习机*

这样的限制泛函,常用于函数逼近论。事实上,现在的各种机器学习,常用类似的限制泛函。

 

  3.2 (不同的限制泛函) :但是,完全可以定义很不同的限制泛函。

一种针对1维实函数的学习机*

此处ff的傅立叶系数(一个数列),而k...k00-模,或者f中不为零的个数(如果是无穷个系数不为零,就是1,因此这个限制泛函仅对某些f有定义)。

 

例如:R(sin(x)) = 1R(sin(x) sin(3x)) = 2R(x) = 1,等等。这个限制泛函看起来比较奇怪,但是可以有很多应用。可以称为Fourier 0-模限制泛函。

 

限制函数的选取可以很多样。选取合适的限制泛函将是学习动力学的重要环节。

例3.3 (通过仅3组数据学习) :一个很简单但是很有教益的例子。我们的数据仅有4

一种针对1维实函数的学习机*

学习机的学习过程如下:假设思绪空间开始就有若干元素函数,例如线性函数x,三角函数等,但是,当前函数为0函数。假设逐次输入前述的数据。这样,容易看到,当我们输入了前3组数据后,我们选择的限制泛函RFourier 0模限制泛函,那么拟合极值问题的解就是sin(x)。然后,我们把这个函数作为当前函数,当我们再输入第4组数据时,学习机就发现,训练用的函数值和当前函数计算出的函数值完全吻合。而且以后只要输入的数据值是(x, y) = (x, sin(x)),则训练用的函数值和当前函数计算出的函数值都完全吻合。因此学习机精确地获得了数据背后的函数,即sin(x)

4、相关的数学问题

 

前面我们建立了针对1维实函数的学习机,并且建立了思绪空间和学习动力学。在思绪空间和学习动力学里面,有若干数学问题。这里我们对这些问题做讨论。首先,我们明确,当前函数将是在[a, b , a,b 2 R, a < b上的实函数。

 

在我们的学习机设计中,思绪空间中的元素函数是我们的出发点,在其上,我们可以通过操作这些元素函数而建立起更多的函数,它们组成表达集Ω。而当前函数是在Ω中选取而产生的。因此,我们首先来说明表达集Ω

 

假设元素函数为:g1, g2, . . . , gL。再假设对函数的操作有4种:

 

1)通常的加减乘除,例如2g13.5g2, g1 g2, g22,等等。注意,因为元素函数中肯定会有常数函数,因此我们就不必单独说明线性组合等,函数的加减乘除已经足够了。

2)函数的复合,例如g (g (x)), g (gg2),等等。

  

嘳)函数的片段结合,例如

一种针对1维实函数的学习机*

4)定参,或者参数的赋值,例如元素函数g1(x, )中有一个参数 ,定参就是取定参数的值,像=1.5,这样f(x)= g1(x, 1.5)。注意,定参的要求是相应的函数具备参数。

 

这里需要对函数做一些说明。当前函数的定义域是[a, b , a, b 2 R, a < b,但是,思绪空间中的元素函数的定义域则不必局限于[a, b ,完全可能是更大或者更小的定义域,也可能是( 1, 1)。在进行上面说的那些操作时,函数的定义域和值域都将发生很多变化,我们不可能预先完全规定好。但是,我们要求的仅是,形成当前函数时,当前函数的定义域包括[a, b 。这样的规定,就可以使得后面的讨论有良好的基础。注意,我们对函数操作的次数和方式,都不做具体的规定。需要明确的仅是:形成的当前函数是有意义的。

 

  4.1 (简单举例) :可以肯定元素函数中一定有线性函数:g(x) = x。这样,我们就可以操

 

g得到更多的函数,如:f(x) = 2g g2= 2x x2。这样,我们就可以操作得到任何多项式。又如果g1是一个元素函数,则f(x)= g1(2g 3)= g1(2x 3)就是操作3次得到的一个函数。

 

  4.2 (分片) :假设g1, g2都是元素函数,定义在[a, b 上。又假设线性函数是元素函数,则如下函数是表达集中的

一种针对1维实函数的学习机*

此处A1, B1, A2, B2是适当的系数。f就是经过总共7次操作而得到的,f是分片函数。

 

  4.3 (神经网络) :假设g1是线性函数,g2是常数函数0,通过操作,可以得到ReLU函数如下:

一种针对1维实函数的学习机*

再假设g3是线性函数,即g3(x) = x,我们可以操作得到一个函数h(x1, x2, a, b)= ag3(x1)

 

bg3(x2)) = ax1       bx2,然后再用函数复合,就可以得到N(x1, x2, a, b) = f(h(x1, x2, a, b))N

 

是一个最简单的人工神经网络,其中有两个参数a, b。可见,如果元素函数中有线性函数和常数函数,那么就可以表达任意的神经网络。

 

现在,我们来更仔细一些看表达集Ω。我们从这个角度看:把使用了相同操作次数而形成的函数归为同一类。

定义 4.1 (1阶表达集) 假设思绪空间中的元素函数为:g1, g2, . . . , gL,取元素函数中的某一个或者某两个,例如gk1 , gk2,然后进行一次一种操作(仅一次,因此只需要一个最多两个元素函数),而且保证操作有良好定义,而且这样的操作所得到一个1维实函数f的定义域包括[a, b ,所有如此得到的函数组成一集合

一种针对1维实函数的学习机*

我们称集合Ω11阶表达集。此处A是一个代数表达式,用于表达进行了一次前诉的操作。

我们可以同样定义2阶表达集Ω23阶表达集Ω3,等等。

定义 4.2 (P阶表达集) 假设思绪空间中的元素函数为:g1, g2, . . . , gL,取元素函数中的某些,例如gk1 , . . . , gkJ,然后进行P 次操作(仅P 次),而且保证操作有良好定义,而且这样的操作所得到一1维实函数f的定义域包括[a, b] ,所有如此得到的函数组成一集合:

一种针对1维实函数的学习机*

我们称集合ΩPP阶表达集。此处A是一个代数表达式,用于表达进行了P 次前诉的操作。

 

注意到,ΩiΩj的交集可能不为空,就是说,可能同一个函数,可能用不同的操作来获得,可能用i次操作来获得,也可能用j次操作来获得。全部的这些集合的并集,就是表达集。

定义 4.3 (表达集) 所有的ΩP阶表达集,P =1, 2, 3, . . .的并集

一种针对1维实函数的学习机*

就是表达集,记为Ω

 

这个定义和前面的定义完全一致。这样,我们就清楚了,每一个Ω中的函数,都可以从某些元素函数出发,经过某些操作而形成,而且其定义域都包含[a, b]。因此,每一个Ω中的函数,都可以作为当前函数的候选。

 

定义 4.4 (限制泛函) 表达集上定义的泛函:R Ω R。除定义在Ω上并且取实数值之外,对泛函R没有任何其他限制。我们称这样的泛函R为一个限制泛函。

 

限制泛函很多,如上一节举例提到的1-模,2-模,乃至0-模,等等。但是有一个泛函具备很明显的意义而且极端重要。

 

定义 4.5 (操作次数泛函) 对任何一个Ω上的实函数dd 2 Ω,所以d在某些Ωi里面。那么,肯定有一个这样的i,使得i是最小的(至少为1),而d 2 Ωi(这样d 2= Ωi1)。因此,我们可以定义一个泛函:R Ω ! R, R(d)= i,此处i就是那个最小的数使得d 2 Ωi。我们称这样的泛函为操作次数泛函。

 

要学习,就需要输入数据。这些数据,事实上形成了所谓的数据采样。而数据中关于自变量x的部分,我们就称为采样点组。

 

定义 4.6 (采样点组) 一组[a, b 中的点C(也通常表达为:Ca x1 < x2 < . . . < xK b),我们就称为采样点组。我们又称K为采样点组的采样数。

 

我们可以在每一个采样点上,对函数值做比较,这就给了学习的依据。我们的主要想法是,如果有合适的采样点组和合适的限制泛函,按照学习动力学方法,我们就可以获取数据背后的函数。因此,我们来做如下的定义。

 

定义 4.7 (合适采样点组) :给定一个表达集Ω中的实函数d 2 ΩCa x1 < x2 < . . . < xK b)是一个采样点组,R是一个限制泛函,如果对任意一个表达集中的函数f 2 Ω,当fd在采样点组上取相同值(即满足条件jf(xi) d(xi)j = 0, i = 1, 2, . . . , K),就只能有这样两种选择:要么f = d,即8x 2 [a, b , f(x)= d(x),要么R(f) > R(d),那么我们称这样的采样点组为在限制泛函R条件下针对函数d的合适采样点组,也称R为合适限制泛函。

合适采样点组的意思很明确,那就是这个采样点组反映了函数d的特质:如果一个函数在这个采样点组和d取相同的值,那么,这个函数要么就是d本身,要么就一定比d有更大的限制(限制泛函的值)。看起来,合适采样点组有些神秘,功能太强大:对一个函数,有了这样的采样点组,我们只需要在这个点组上满足函数值,我们也就能精确地捕获了整个函数(不是近似,而是精确)。我们自然要问是否的确存在这样的采样点组。下面我们表明,如果限制泛函是操作次数泛函,合适采样点组的确存在。

 

 

引理 4.8 (存在合适采样点组) :对任意一个表达集Ω中的光滑实函数d(x),则一定存在这样一个采样点组Ca x1 < . . . < xK b,使得对任意一个表达集上的连续函数f 2 Ω,当fdC上取相同的值(即jf(xi) d(xi)j = 0, i = 1, 2, . . . ,K),就只能有这样两种选择:要么f = d,即8x 2 [a, b , f(x)= d(x),要么R(f) > R(d),此处R是操作次数泛函。

 

证明:假设不存在合适采样点组。我们可以从一个采样点组C出发。因为C不是合适的,故存在至少一个f 2 Omega,使得在C上,f(x) = d(x),但是存在一个点x0,在其上f 6= d,而且R(f) R(d)。因为f连续,我们可以选取x0,使得jf(x0) d(x0)j[a, b 上的极大值,且大于0

 

对于这样的点x0,我们可以把它添加进C,而形成一个更大的采样点组。这个新的采样点组仍然不是合适采样点组,如上,我们就可以再选取一个x0和函数f。这个过程可以一直延续下去,没有终止。

 

这样,我们就有了一系列点x1, x2, . . . , xn, xn+1,以及一系列函数f1, f2, . . . , fn,具备如下性质:

 

1n可以一直延续下去,没有停止。2)对所有的fn,都有R(fn)   R(d)3)对任何njfn+1(xi)

 

d(xi)j =0, i =1, 2, . . . ,n4)但是jfn+1(xn+1)        d(xn+1)j > 0,而且取jfn+1      dj的极大值。

 

现在考虑点集x1, x2, . . . , xn, . . .。因为我们是在有限区间[a, b 中考虑,我们可以选取一个子序列使得这个子序列收敛于一个点x 2 [a, b 。为了表述简洁,且不失去一般性,我们可以就认为序列x1, x2, . . . , xn, . . .就是这个子序列,即这个序列收敛于x 。我们来考虑dx 附近的情况。xn收敛于x ,并且,每一个xn都对应一个fn,使得fn(x1) = d(x1), . . . ,fn(xn)= d(xn),但是fn(xn+1) 6= d(xn+1)。由于d连续,d(xn)将收敛于d(x ),因此fn(xn)将收敛于d(x )

 

因此,我们就有了一族函数fn,它们全部都渐进到d。我们注意到这族函数,也都是表达集Ω中的。即,我们有如下的表达:

 

d = Ad(g1, g2, . . . , gL)

 

以及

 

fn= An(g1, g2, . . . , gL), n =1, 2, . . .

 

此处g1, g2, . . . , gL是元素函数,而AdAn是代数表达式。注意,此处为了简洁表达,我们用了全部元素函数,虽然在代数表达式中可能仅使用了一些而非全部元素函数(例如F (x, y)= x2)。

 

这样,我们就知道,代数式An就一定是和Ad一样的,仅是参数不同。但是,这样一来,必然R(fn) > R(d)。这是矛盾。这个矛盾就证明了合适采样点组的存在。

 

这个引理说明,如果我们采用的限制泛函是操作次数泛函,合适的采样点组对任何表达集中的函数都存在。那么是否还有其他的限制泛函也具备这样的性质呢?应该是有的。例如我们前面的例子3.3,那里采用的flourier0 模做限制泛函,对sin函数,就可以找到合适采样点组。这是很有意思的问题,但是我们此处不再讨论。

现在我们考虑一个表达集Ω中的函数d。假设有一个合适采样点组C,那么在C上和d取相同值的函数(所谓的拟合),要么就是d本身,要么就是一个其操作次数更高的函数。这就提示我们,如果我们在拟合极值问题中,采用足够好的采样点组,那么拟合极值问题的解就给出了精确的d。这是非常优秀的性质。因此,我们有如下的定理。

定理 4.9 (拟合极值) :给定一个表达集Ω中的实函数d,则一定存在一个采样点组Ca x1 < x2 < . . . < xK b,使得相应的拟合极值问题:

一种针对1维实函数的学习机*

的解存在,而且这个解就是d,即8x 2 [a, b , f(x)= d(x)。此处的限制泛函是操作次数泛函。

 

证明:根据前面的引理,定理的证明很显然。我们只需要选取采样点组C是合适采样点组就可以了。

 

注意,我们在定理中获得的函数f不是近似的,而是精确的d。这是非常重要的。注意,在前面定理的意义下,我们完全可以认为函数d是由合适限制泛函,以及合适采样点组C和其上的函数值来规定的。这的确是一种非常有有意思的规定函数的方式。但是很显然,对一个函数d来说,合适采样点组和合适限制泛函可能并不唯一,可能有很多合适采样点组和合适限制泛函。

 

很容易想象到,采样数最小的合适采样点组具有特殊意义。因此,我们做一个定义。

 

定义 4.10 (最小合适采样点组) 给定一个合适限制泛函,对一个函数d,如果一个采样点组Cd的合适采样点组,其采样数为K,而任何其他合适采样点组C0的采样数都不小于K,我们就称C为一个最小合适采用点组,K为最小采样数。

 

最小采样点组的确反映了函数d的特质。最小采样数大,那么就需要更多的数据才能保证学习到d。相反,最小采样数低,更少的数据就够用了。下面这个定理进一步说明这个特质。

定理 4.11 (拟合精度) :对一个表达集中函数d,假设d是连续的,再假设Cx1 < x2 < . . . < xK)是这个函数的最小合适采样点组,R是操作次数泛函,那么就存在一个小量0 < ,和另外一个采样点组xK+1 < . . . < xK+Q,使得两个采样点组合并后的拟合极值问题:

一种针对1维实函数的学习机* 

的解存在且唯一,而且这个解就是d

 

证明:我们可以从最小合适采样点组C出发,并且选择一个量0,例如0= 0.1。我们考虑这个拟合极值问题,即在上面的拟合极值问题中,设定=0,并且采样点组为C。注意,这个问题总是有解的,d就是一个解。如果这个问题的解是唯一的,那么就只能是d。这样就证明了定理。如果这个问题的解不唯一,那么假设f0是一个解,而且f0 6= d。这样,我们可以选择一个点x使得jf0 dj在此点处达到最大值。我们把这个点加入采样点组,并且选择=0.50。然后,我们再求拟合极值问题,不过,这时的采样点组和改进了。如果拟合极值问题仅有唯一解,定理得到证明。如果解不唯一,那么,我们可以继续上面的步骤。这样,我们可以一直继续下去。如果在某个时刻,拟合极值的解唯一了,我们证明了定理。如果上面的步骤可以一直继续下去,总是没有唯一的解,那么,我们就得到一系列的函数f0, f1, . . .

一种针对1维实函数的学习机*

 

这个例子使得我们可以看清楚逐级抽象是怎么做到的。不是通过复杂的推理来做到的,而是一种机械式的方式来做到的,即在拟合数据的同时,追求限制泛函的极值。我们看到,当我们开始拟合数据时,我们并没有获得分段函数,而是得到例如多项式,或者折线这类的函数。但是随着有了更多的采样点,要拟合增加的采样点,多项式或者折线的函数的操作次数就超过了分段函数。因此,分段函数就自然成为当前函数,这样,逐级抽象(或者组织关系)就自然达成了。这样看,拟合极值和逐级抽象的关系的确是非常有意思的。我们可以把这看作一种涌现,非常应该深入研究。

5、一些评论

 

现在我们对学习动力学和相关的事项做一些评论。

 

我们的学习方法和传统的学习方法的区别:传统的方式是人工建立一个参数系统,然后通过学习,来决定参数的值,从而达到学习的目的。而我们是积累和改进元素函数,并且操作这些元素函数来达到学习的目标。我们所用的表达集Ω不是通常的参数系统(虽然里面有参数),其丰富程度和灵活程度远高于通常的参数系统,Ω不是人工预先搭建,而是在学习过程中逐渐构建和扩展起来的。而这个构建的过程,就是学习动力学的过程。学习动力学是通过求拟合极值问题来实现的(需要选取合适的限制泛函)。这样就形成了一种全新的的学习方法。总之,我们的学习机是一个具备主动性去学习和调整自己的机器,而不是被动的参数体系。这样的学习机,就有可能用尽量少的数据来驱动学习,而且可以做到精确的学习。

 

我们在【2,4】中讨论了学习动力学应该实现由低到高的逐级抽象,而且我们证明了,如果的确能如此,那么就可以实现通用学习机。但是我们在那里并不清楚怎样来实现逐级抽象。表面上看起来,要完成这样的由低到高的逐级抽象,好像需要一个很复杂的逻辑判断体系。通过前面的讨论,现在我们清楚了,逐级抽象其实可以用完全机械式的办法来做到。这个机械式的方法,就是求解合适的限制泛函条件下的拟合极值问题。这样,我们发明的这种学习动力学,就使得学习机成为了真正的通用学习机。

 

3  我们此处仅讨论了1维实函数,相当于通用学习机的一种非常特殊的情况。这样的特殊情况,其实帮助我们取得了深入的认识。正是在这样的设定中,我们才发现了拟合极值和限制泛函这样的方法,因此获得有效的学习动力学。在获取了这样的知识后,我们就可以把这样的认识推广到更一般的情况,即把这样的学习动力学用于我们曾经在【2,4,5】中讨论过的通用学习机。这部分工作已经完成,我们将在另外地方发表。

 

学习动力学的几个最重要组成部分:

 

(1)扩展元素函数:在数据的驱动下,有方向地扩展元素函数,得到更多更好的元素函数。因此,使得目标函数可以为表达集所表达,以及表达得更好。

 

(2)操作元素函数的规则:使用这些规则,可以从元素函数来构建函数,全部这样的函数即为表达集。可以看到,由元素函数和操作规则来形成表达集,和语言很近似。因此,相对于参数系统来说,表达集具备大得多的容量和灵活性。

 

(3)在学习过程中建立和选取合适的限制函数:这是学习动力学的重要环节。操作次数泛函是常用的,但是也可能选取其他更合适的限制泛函(参考例3.2和3.3)。

 

(4)求解拟合极值问题:在表达集上求这样的函数,能拟合采样点组上的数据,并且使得限制泛函最小。有效求解拟合极值问题,非常关键。这个问题对我们提出了崭新的数学要求。

 

我们现在明确了这样的进路:强有力的学习动力学就是把这些部分按照本文的方法接合起来。

 

5 我们这里导入了一些新的工具和方法:拟合极值,极限泛函(特别是操作次数),合适采样点组,最小合适采样,等等。他们都很新,也具备相当的普遍意义,非常值得深入研究。

 

6 表达集,采样点组(最小采样)和拟合极值配合,事实上形成了一种对函数做出定义的方式。这与通常的函数定义方式很不同的方式,应该是相当新颖的方式(有待更多的文献检索)。我们认为这种方式将有很多用途,我们将在进一步的工作中讨论。