假设
f∈C([0,1])即 f 在 [0,1] 上连续。
那么对任意
ε>0存在多项式 P(x) 使得
∣f(x)−P(x)∣<ε,∀x∈[0,1].接下来,我们尝试证明这个定理。
第 1 步:构造伯恩斯坦多项式
定义
Bn(f)(x)=k=0∑nf(nk)(kn)xk(1−x)n−k.这就是伯恩斯坦多项式。
注意
(kn)xk(1−x)n−k本身是 x 的多项式。
因此
Bn(f)(x)也是多项式。
第 2 步:理解它在做什么。这个多项式有点抽象,但我们可以换一种方式解读它。
首先注意恒等式
k=0∑n(kn)xk(1−x)n−k=(x+(1−x))n=1因此
Bn(f)(x)实际上是序列
f(0),f(n1),…,f(1)的加权平均,其中权重为
pn,k(x)=(kn)xk(1−x)n−k.而这些权重之和为 1。
但我们还可以从概率的角度解读。
设随机变量
Xn∼Binomial(n,x).即
P(Xn=k)=(kn)xk(1−x)n−k.那么
Bn(f)(x)=E[f(nXn)].这一步非常优雅。伯恩斯坦多项式实际上就是
f(nXn)的期望。
现在分析它为什么能逼近 f(x)。
对二项分布有
E(nXn)=x,Var(nXn)=nx(1−x).因此
nXn越来越集中在 x 附近。
当 n→∞ 时,
nXn→x.于是
f(nXn)≈f(x).因此
Bn(f)(x)=E[f(nXn)]≈f(x).直觉上,这成立。
由于 f 在闭区间上连续,由闭区间上连续函数的性质:f 必一致连续。因此,对任意 ε>0 存在 δ>0,使得只要
∣u−v∣<δ就有
∣f(u)−f(v)∣<2ε.分解误差:
∣Bn(f)(x)−f(x)∣=E(f(Xn/n)−f(x)).利用绝对值期望不等式:
≤E[∣f(Xn/n)−f(x)∣].分成两部分:
A=∣Xn/n−x∣<δ和
Ac=∣Xn/n−x∣≥δ.第一部分:当 ∣Xn/n−x∣<δ 时,
∣f(Xn/n)−f(x)∣<2ε.这部分贡献不超过 2ε。
第二部分:设 M=max[0,1]∣f∣。则
∣f(Xn/n)−f(x)∣≤2M.因此这部分贡献不超过 2M⋅P(∣Xn/n−x∣≥δ)。
利用切比雪夫不等式:
P(∣Xn/n−x∣≥δ)≤nδ2x(1−x)≤4nδ21.因此
2M⋅P(∣Xn/n−x∣≥δ)≤2nδ2M.当 n 足够大时,
2nδ2M<2ε.于是
∣Bn(f)(x)−f(x)∣<ε.而且这个估计与 x 无关。
因此,
x∈[0,1]sup∣Bn(f)(x)−f(x)∣→0.即
Bn(f)→f一致收敛。
魏尔斯特拉斯定理证毕。
接下来,我们用只含基本微积分就能理解的语言,逐步走一遍用多项式逼近证明通用逼近定理(UAT)的过程。为清晰起见,我们以一元连续函数为例;多元情形可类似推广。
目标:给定连续函数 f:[a,b]→R 和任意 ϵ>0,存在一个单隐层神经网络
N(x)=i=1∑nαiσ(βix+γi)使得
∣N(x)−f(x)∣<ϵ,∀x∈[a,b]其中 σ 是一个「非多项式、连续」的激活函数(例如 sigmoid)。
第 1 步:使用魏尔斯特拉斯定理
我们前面已经证明过这个定理:任何连续函数都可以被多项式 P(x) 逼近。即
∀ϵ>0,∃P(x) 使得 ∣f(x)−P(x)∣<ϵ/2这里我们暂不考虑神经网络,而是把问题转化为「逼近一个多项式」。我们知道,多项式可以写成 a0+a1x+⋯+amxm。
第 2 步:用激活函数逼近单项式 xk
如果我们能用单隐层中若干神经元的线性组合逼近 xk,那么就能逼近多项式 P(x)。
单隐层网络的形式为:
N(x)=i=1∑nαiσ(βix+γi)选取合适的 σ(x),例如 sigmoid:
σ(x)=1+e−x1它的泰勒展开在局部非零:
σ(x)=21+41x−481x3+…利用其平移版本的线性组合,可以生成任意的多项式项。
通过调节 αi,βi,γi,线性组合
i∑αiσ(βix+γi)可以任意精度逼近 xk(类似于微积分中的泰勒多项式逼近)。
这里的要点直觉:每个神经元都是一个「非线性函数块」,把许多这样的块加在一起,就能组合成多项式形式。
第 3 步:组合逼近多项式
对多项式 P(x)=∑k=0makxk,对每个 xk 找到逼近它的神经元组合 Nk(x):
∣Nk(x)−xk∣<2(m+1)ϵ然后组合:
N(x)=k=0∑makNk(x)误差界:
∣N(x)−P(x)∣≤k=0∑m∣ak∣∣Nk(x)−xk∣<k=0∑m∣ak∣2(m+1)ϵ<ϵ/2第 4 步:三角不等式完成逼近
我们有两处误差来源:
- ∣f(x)−P(x)∣<ϵ/2(魏尔斯特拉斯定理)
- ∣P(x)−N(x)∣<ϵ/2(神经元对多项式的逼近)
由三角不等式:
∣f(x)−N(x)∣≤∣f(x)−P(x)∣+∣P(x)−N(x)∣<ϵ/2+ϵ/2=ϵ证毕。
换言之:神经网络的非线性单元充当「可调节的多项式基」,单层就能把它们组合成任意多项式,从而逼近任何连续函数。
这个证明其实相当有意思:
伯恩斯坦多项式本质上是在表达
f(x)≈k∑f(nk)⋅基函数(kn)xk(1−x)n−k这与神经网络
f(x)≈i∑ai⋅σ(wix+bi)非常相似。
差别仅在于:
- 魏尔斯特拉斯使用多项式基 xk(1−x)n−k
- 神经网络使用激活函数基 σ(wx+b)
因此,从现代视角看,UAT 定理可以理解为魏尔斯特拉斯定理向「神经网络基函数」的推广。魏尔斯特拉斯说「多项式基是稠密的」,UAT 则说「神经元基也是稠密的」。