MLP 专题

UAT:为什么 MLP 可以逼近连续函数

“只要展开项足够多,就可以拟合一切”这句话背后有一个共同数学结构:用许多简单函数的线性组合逼近复杂函数。傅立叶级数用固定的正弦/余弦基函数,MLP 用可学习的非线性基函数。UAT 说明的是后者的表达能力边界。

同一个逼近模板

f(x) ~= sum_{j=1}^N alpha_j phi_j(x)

Fourier: phi_j in {sin(kx), cos(kx)}
MLP:     phi_j(x) = sigma(w_j^T x + b_j)

01 / 直觉

一句话应改成更精确的数学说法

“拟合一切”不能理解成无条件拟合任何对象。更精确的说法是:在给定函数空间、给定误差度量、给定定义域和正则条件之后,一组足够丰富的简单函数族可以在该空间里稠密。稠密的意思是:目标函数 f 和模型函数 g 之间的距离可以小于任意 epsilon。

For every f in a function space F and every epsilon > 0,
there exists g in model class G such that

    distance(f, g) < epsilon.

傅立叶级数和 MLP 的 UAT 都是这个模板的实例。区别在于:傅立叶的基函数通常先固定,模型只决定每个频率放多少;MLP 的隐藏单元位置、方向、尺度和输出权重都可以学习。

02 / 定理

通用逼近定理的标准陈述

设 K 是 R^d 中的紧致集,C(K) 是 K 上所有连续函数构成的空间,并用 sup norm 衡量误差。如果激活函数 sigma 满足合适条件,例如非多项式连续激活,或 Cybenko 原始定理中的有界、连续、非恒定 sigmoidal 激活,则单隐层网络在 C(K) 中稠密。

Given f in C(K) and epsilon > 0,
there exist N, alpha_j, w_j, b_j such that

sup_{x in K} | f(x) - sum_{j=1}^N alpha_j sigma(w_j^T x + b_j) | < epsilon.

这个定理的关键词是“存在”。它说明足够宽的 MLP 表达能力够强,但不说明训练算法一定找到这些参数,也不说明有限样本上一定泛化。

03 / 证明

Cybenko 风格证明:用测度分离推出稠密性

下面是常见的证明骨架。它不靠“画图直觉”,而是用泛函分析说明:如果 MLP 不能逼近所有连续函数,就会存在一个非零测度能把所有隐藏单元都积分成 0;但 sigmoidal 单元可以逼近半空间指示函数,最后迫使这个测度在所有半空间上都是 0,于是测度只能是 0,矛盾。

1

反设:网络张成空间不稠密

令 H 表示所有有限和 sum alpha_j sigma(w_j^T x + b_j)。如果 H 在 C(K) 中不稠密,则存在某个连续函数无法被 H 任意逼近。

2

Hahn-Banach + Riesz 表示

由 Hahn-Banach 分离定理,存在一个非零连续线性泛函 L,使得 L(h)=0 对所有 h in H 成立。Riesz 表示定理告诉我们,C(K) 上的连续线性泛函可写成对某个有限 signed Borel measure mu 的积分。

L(h) = int_K h(x) d mu(x)

Therefore for every w and b:
int_K sigma(w^T x + b) d mu(x) = 0.
3

缩放 sigmoid,得到半空间

sigmoidal 激活满足 t -> +infty 时趋近 1,t -> -infty 时趋近 0。把 sigma(w^T x+b) 换成 sigma(lambda(w^T x+b)),令 lambda -> infinity。除边界超平面外,它逐点趋近半空间指示函数。

sigma(lambda(w^T x + b)) -> 1{w^T x + b > 0}

So, for almost every boundary shift b:
mu({x in K: w^T x + b > 0}) = 0.
4

所有半空间为零,推出测度为零

对任意方向 w,把 mu 推送到一维直线:nu_w(B)=mu({x: w^T x in B})。上一步说明所有半直线的 nu_w 质量都为 0,因此 nu_w=0。于是 mu 的傅立叶变换在所有频率上为 0。由有限测度的唯一性定理,mu=0。

hat_mu(xi) = int_K exp(i xi^T x) d mu(x)
          = int_R exp(i t) d nu_xi(t)
          = 0 for every xi.

Thus mu = 0, contradicting that L was nonzero.

04 / 构造直觉

一维 ReLU:用折线逼近连续函数

对 ReLU,最直观的推导可以从一维开始。ReLU 单元 (x-t)_+ 是一个从 t 处开始改变斜率的“折点”。多个 ReLU 相加,就能在不同位置放置折点,从而表示任意连续折线函数。

p(x) = beta_0 + beta_1 x + sum_{i=1}^{m-1} c_i (x - t_i)_+

If slopes on intervals are s_1, s_2, ..., s_m,
then c_i = s_{i+1} - s_i.

因为闭区间上的连续函数一致连续,所以只要网格足够细,目标函数 f 的折线插值 p 就能满足 sup_x |f(x)-p(x)| < epsilon。折线 p 又可以写成有限个 ReLU 的线性组合,所以一维情形下 UAT 的构造直觉非常直接:隐藏单元越多,可放置的折点越多。

05 / 傅立叶对比

傅立叶级数:固定正交基上的投影

傅立叶级数的核心是:在周期区间上,用一组固定的正交基函数 sin(kx)、cos(kx) 表示函数。对平方可积的周期函数,傅立叶部分和是投影到有限频率子空间的结果。

f(x) ~ a_0/2 + sum_{k=1}^N [a_k cos(kx) + b_k sin(kx)]

a_k = (1/pi) int_{-pi}^{pi} f(x) cos(kx) dx
b_k = (1/pi) int_{-pi}^{pi} f(x) sin(kx) dx

正交性带来一个非常清楚的误差分解。若用复指数写 c_k=(1/2pi) int f(x)e^{-ikx}dx,则 Parseval 恒等式说明能量可以按频率分解,截断误差就是被丢掉的高频能量。

||f - S_N f||_2^2 = 2pi * sum_{|k| > N} |c_k|^2
维度
傅立叶级数
MLP / UAT
基函数
固定的 sin(kx)、cos(kx) 或 exp(ikx)
可学习的 sigma(w_j^T x + b_j)
参数
通常只学习/计算系数 a_k、b_k
w_j、b_j、alpha_j 都要学习
几何直觉
用全局频率叠加函数
用可移动、可旋转、可缩放的非线性 ridge 函数拼函数
误差范数
经典结果常在 L2 或满足条件时一致收敛
UAT 常在紧致集上的 sup norm 一致逼近
训练方式
正交投影,系数可由积分给出
非凸优化,存在性不等于 SGD 一定找到
主要风险
非周期延拓、低光滑度和 Gibbs 现象
过拟合、样本不足、不可解释和训练困难

06 / 关键边界

UAT 和傅立叶都不等于“免费拟合一切”

存在性

UAT 只保证存在某组参数,不保证训练过程容易找到。

函数空间

傅立叶结果要说明周期性、L2、连续性或光滑性等条件。

泛化

训练误差小不代表样本外表现好;仍需要验证集、正则化和研究设计。

所以最准确的一句话是:傅立叶展开和 MLP 的 UAT 都说明“复杂函数可由大量简单函数叠加近似”;但傅立叶使用固定正交频率,MLP 使用可学习非线性单元。二者共享逼近思想,但数学条件、误差范数、计算方式和失败模式都不同。

参考文献