李秉坤 陈志祥
(绍兴文理学院 数理信息学院, 浙江 绍兴 312000)
人工神经网络是根据人脑建立的数学模型,在计算科学、数学、工程等领域有广泛的应用[1-2].而在一些应用中,如模式识别、回归分析、智能控制等方面,主要是将人工神经网络模型用来逼近多元函数.人工神经网络作为一种万能逼近器,受到人们的广泛关注,其中最重要和最简单的一种模型就是单隐层前向神经网络,其数学表达式为
其中aj是连接隐层与输出层之间的权值(也称外权),x∈Rd是网络的输入,ωj∈Rd是连接输入层与隐层之间的权值(也称内权),bj是阈值或偏置, 而φ是定义在R上的激活函数,n是隐层神经元的个数. 第二种是近年来引起人们极大兴趣的, 在计算机视觉、自然语言处理及模式识别等领域取得突破性成功应用的深度网络或多隐层神经网络. 由于深度网络有多个隐层, 从而其网络的拓扑结构就较单隐层而言更复杂, 且网络隐层数越多, 其结构越复杂. 由此引起其表示能力的增强.
无论是第一种还是第二种网络模型, 事实上第一种是第二种的特例, 总是涉及这样三个问题:稠密性、复杂性和算法. 已知, 稠密性是理论基础, 是对一个网络模型进行复杂性和算法研究的前提和支撑. 对于单隐层模型, 所谓稠密性, 就是指对定义在Rd中紧集Ω上一个函数空间中的任一函数f(x)以及任意给定的精度ε>0,总存在一个网络使
这里aj,ωj,bj(j=1,2,…,n)均是具体的数或者向量. 我们知道决定一个网络的重要因素是激活函数φ,此模型对定义在Rd中紧集上的勒贝格Lebesgue可积函数类具有稠密性, 所以对于深度网络模型, 当激活函数是非线性函数时, 自然具有稠密性. 比较常见的激活函数有Sigmoidal函数、tanh函数、ReLU函数等. 有关稠密性结果可参看文献[3-10]. 一个网络的复杂性就是指对给定的精度, 网络中所含神经元的个数以及所涉及的权值与阈值的数量.因此,复杂性的研究为网络结构的设计与算法设计提供理论基础.而在网络复杂性问题的研究中, 有一个重要的方法, 就是构造出具体的网络结构或网络算子,并对具体的函数空间通过一定的度量给出其逼近上界估计,这样也就得到了精度、隐层神经元(包括权值与阈值数)之间的关系,从而对复杂性问题给出了一个量化的估计. 不论是浅层网络还是深度学习中的深度网络, 这种方法都是复杂性问题研究中的重要方法(可见文献[11-27]). 鉴于ReLU函数,其定义为
σ(x)=max{0,x}.
是目前深度网络中常用的激活函数,而该网络的研究更多地偏重于模式分类问题.所以,本文一方面将利用ReLU函数的特点构造插值网络和拟插值网络,并讨论其逼近误差估计; 另一方面, 为了提高逼近函数的光滑性, 将研究修正的幂函数的网络构造与逼近问题. 本文还将通过数值实验进行说明.
插值法是数值分析和函数逼近的重要方法之一.下面首先讨论单隐层插值ReLU网络逼近的构造与逼近.这里不妨设目标函数是定义在区间[0,1]上连续函数,且设插值节点为x0=0 Nn(f,x)=a-1σ(x+1)+a0σ(x-x0)+a1σ(x-x1)+…+an-1σ(x-xn-1). 而a-1,a0,a1,…,an-1可这样来确定: 由Nn(f,0)=f(0), 即a-1σ(1)=f(0), 则 a-1=f(0). Nn(f,x1)=f(x1), 即a-1σ(x1+1)+a0σ(x1)= ⋮ Nn(f,xn)=f(xn), 即a-1σ(xn+1)+a0σ(xn)+…+an-1σ(xn-xn-1)=f(xn). 或a-1(xn+1)+a0xn+…+an-1(xn-xn-1)=f(xn), 则有: 这样,网络Nn(f,x)就在节点x0,x1,…,xn上插值f.如果我们令: δ=max{x1-x0,x2-x1,…,xn-xn-1}. 则有|Nn(f,x)-f(x)|≤ω(f,δ),x∈[0,1],这里ω(f,t)是连续模,即: 特别地, 当f在[0,1]上满足Lip条件, 即存 在M>0,使得对任意的x′,x″∈[0,1]有|f(x′)-f(x″)|≤M|x′-x″|α,(0<α≤1). 注1:若f是定义在一般的区间[a,b]上,只要通过线性变换就可以定义在[0,1]区间上. 接下来,通过数值实验给以说明. 本实验是在Windows环境下MATLAB R2016a中进行的.取f1(x)=sin(x), 其图像与f1(x)=sin(x)在 x∈[0,1]上平均取5个插值节点作线性插值图像, 如图1所示.f1(x)=sin(x)在x∈[0,1]上平均取5个插值节点作线性插值与f1(x)=sin(x)的误差绝对值如图2所示,误差绝对值的最大值为0.003 9. 图1 线性插值 图2 误差绝对值 f2(x)=sin(2πx)图像和f2(x)=sin(2πx)在x∈[0,1]上平均取10个插值节点作线性插值图像如图3所示.f2(x)=sin(2πx)在 图3 线性插值 x∈[0,1]上平均取10个插值节点作线性插值与f2(x)=sin(2πx)的误差绝对值如图4所示,误差绝对值的最大值为0.048 9. 图4 误差绝对值 对于前面的ReLu激活函数σ(x),令: σ0(x)=σ(x+1)-2σ(x)+σ(x-1),x∈(-∞,+∞). 事实上,容易得到: 从而有: 如此便得到结果.于是有: 从而有: 图5 f1(x)与的图像 图6 f2(x)与的图像 图 7 f1(x)=sin(x)最大绝对误差曲线 图8 f2(x)=sin(2πx)最大绝对误差曲线 x∈[0,1]误差绝对值的最大值比较结果如表1所示. 表1 比较结果 我们知道,ReLu网络的输出是一个连续函数,但是一条折线,从而在某些点不可导.与ReLu相关的所谓修正的r次幂函数单元(RePU)σr(x), r≥2为整数, 其定义为σr(x)=(max{0,x})r.在回归问题中,根据神经网络中的万有逼近定理,对于非多项式作为激活函数的单隐层前向神经网络必具有万有逼近性,即对于任意的精度,总存在某网络结构使其对定义在闭区间上连续目标函数逼近给定的精度. 对给定的r≥2,若r是奇数,则σr(x)-σr(-x)=xr,x∈(-∞,+∞).而当r为偶数时,则有σr(x)+σr(-x)=xr,x∈(-∞,+∞).由于(x+1)r-xr=Pr-1(x)是一个r-1次多项式,而Pr-1(x+1)-Pr-1(x)是一个r-2次多项式,如此可得到任一r次多项式可通过 ar(x+br)r+ar-1(x+br-1)r+…+a1(x+b1)r+a0(x+b0)r来表示.也就是说, 当以xr为激活函数时,含有r+1个隐层神经元的单隐层前向神经网络可得到任意的次数不超过r的多项式,自然形成一个对目标函数用次数不超过r的多项式近似.也就是说,当用σr作为激活函数时,其隐层单元是2r+2个. 而且由于xr是通过σr(x)与σr(-x)表示,从而网络结构中的参数只有一半在变化. 由此我们可以看出, 当用一个r次幂函数或r次多项式作为单隐层前向神经网络的激活函数时, 隐层神经元不管怎么多, 其输出至多为一个r次多项式. 不过, 对光滑性比较好的目标函数, 自然可以考虑用多项式作为逼近工具, 而且, 隐层神经元数只需比激活函数的次数多一. 但是, 如果再利用σr(x)作为隐层激活函数,也就是使其输出是一个r次样条函数, 这时网络的逼近能力就增强了.所以, 这也充分表明网络结构设计的重要性. 不妨将所考虑的目标函数仍定义在[0,1]上,x1 Sr(x1,x2,…,xk)={s∈Cr-1[0,1]:s|[xi,xi+1]∈Pr,i=0,1,…,k}, 这里x0=0,xk+1=1,Cr-1[0,1]表示由定义在[0,1]上的r-1阶连续函数所构成的线性空间. 1,x,x2,…,xr,(x-x1)r,…,(x-xk)r形成Sr(x1,x2,…,xk)的一个基, 而且有如下结果(可见[28]): 对任意给定的j∈{0,1,…,r},存在仅依赖于j的常数kj,使得对任意的f∈Cj[0,1]及节点集{x1,x2,…,xk}成立: 这里δ=max{|xi+1-xi|:i=0,1,…,k}.这说明对给定的f∈Cj[0,1]存在s∈Sr(x1,x2,…,xk)使得|f(x)-S(x)|≤kδjω(f(j),δ),x∈[0,1].特别地,若x0,x1,…,xk+1构成[0,1]区间的k+1等分点,则有: 显然s(x)可以看作以激活函数σr(x)构成的单隐层前向网络的输出.而且, 网络结构的隐层含有2r+k个神经元. 最后,还是选取如下两个目标函数: f1(x)=sin(x),x∈[0,1],f2(x)=sin(2πx),x∈[0,1]. 进行数值实验. f1(x)=sin(x)图像与f1(x)=sin(x)在x∈[0,1]上平均取10个插值节点作三次样条插值如图9所示.f1(x)=sin(x)在x∈[0,1]上平均取10个插值节点作三次样条插值与f1(x)=sin(x)的误差绝对值如图10所示,误差绝对值的最大值为2.1927e-06. 图9 三次样条插值 图10 误差绝对值 f2(x)=sin(2πx)图像与f2(x)=sin(2πx)在x∈[0,1]上平均取10个点作三次样条插值图像如图11所示.f2(x)=sin(2πx)在x∈[0,1]上平均取200个点作三次样条插值与f2(x)=sin(2πx)的误差绝对值如图12所示,误差绝对值的最大值为2.5370e-09. 图11 三次样条插值 图12 误差绝对值2 拟插值(近似插值)ReLU网络的构造与逼近
3 RePU网络的构造与逼近