最近在拜读《Deep Residual Learning for Image Recognition》一文的时候,文中提到asymptotically approximate一词。查阅了相关资料后收获颇多,决定将所思所悟付诸笔端,以便以后复习查看。
Asymptotically equivalence
在AoPS online上查找asymptotically approximate无果,缩小查找精度后找到了这个概念,其定义如下:
Asymptotically equivalence是函数最终实质上等价的一种记号。
数学上的描述:
f
f
f and
g
g
g are asymptotically equivalent if the limit
lim
x
→
∞
f
(
x
)
g
(
x
)
\lim_{x\to \infty} \frac{f(x)}{g(x)}
x→∞limg(x)f(x) exists and is equal to 1.We denote this as
f
∼
g
f \sim g
f∼g.
显然Asymptotically equivalence具有三岐性(传递性、自反性、对称性)。
Θ(big-theta)
Asymptotic or asymptotically close to are treated synonymous in time complexity termino-
logy of computer science.
基于上述这段话,我又去查找了有关复杂度的一些理论,主要有三个符号O(big-Oh)、Ω(big-Omega)、Θ(big-theta),分别表示渐近上界(worst case)、渐进下界(best case)和渐进紧界(较为精确的描述average case)。所谓average case的较为精确的描述就是Asymptotical。
Universal Approximation theorem
在人工神经网络领域的数学观点中,Universal approximation theorem指的是:如果一个前馈神经网络具有线性输出层和至少一层隐藏层,只要给予网络足够数量的神经元,便可以实现以足够高精度来逼近任意一个在 ℝn 的紧子集 (Compact subset) 上的连续函数。
其数学语言描述如下:
令
φ
φ
φ 为一单调递增、有界的非常数连续函数。记
m
m
m 维单元超立方体 (Unit hypercube) [0,1]m为
I
m
I_{m}
Im,并记在
I
m
I_{m}
Im 上的连续函数的值域为
C
(
I
m
)
C(I_{m})
C(Im)。则对任意实数
ϵ
>
0
ϵ>0
ϵ>0 与函数
f
∈
C
(
I
m
)
f∈C(I_{m})
f∈C(Im),存在整数
N
N
N、常数
v
i
,
b
i
∈
R
v_i,b_i∈ℝ
vi,bi∈R 与向量
w
i
∈
R
w_i∈ℝ
wi∈R,
i
=
1
,
…
,
n
i=1,…,n
i=1,…,n,使得我们可以定义:
F
(
x
)
=
∑
i
=
1
N
v
i
φ
(
w
i
T
x
+
b
i
)
F(x)=\sum_{i=1}^{N}{v_i} {\varphi ({w_i}^Tx+b_i)}
F(x)=i=1∑Nviφ(wiTx+bi)
为
f
f
f 的目标拟合实现。在这里,
f
f
f 与
φ
φ
φ 无关,亦即对任意
x
∈
I
m
x∈I_m
x∈Im,有:
∣
F
(
x
)
–
f
(
x
)
∣
<
ϵ
|F(x)–f(x)|<ϵ
∣F(x)–f(x)∣<ϵ。因此,形为
F
(
x
)
F(x)
F(x) 这样的函数在
C
(
I
m
)
C(I_m)
C(Im) 里是稠密的。替换上述
I
m
I_m
Im 为
R
m
ℝ_m
Rm 的任意紧子集,结论依然成立。
Universal approximation theorem的伟大之处在于它很好地解释了为什么神经网络能工作以及为什么它们经常不起作用,它指出了人工神经网络近似任意函数的能力,理解这个定理是神经网络发展最为关键的一步。紧凑(有限、封闭)集合上的任何连续函数都可以用分段函数逼近。以下更为具体的例子来自于在理解通用近似定理之前,你可能都不会理解神经网络。
然而,Cybenko 对这个分段函数描述更为具体,本质上通过 step 来拟合函数。有了足够多的恒定域 (step),我们就可以在给定的范围内合理地估计函数。
基于这种近似,我们可以将神经元当做 step 来构建网络。利用权值和偏差作为「门」来确定哪个输入下降,哪个神经元应该被激活,一个有足够数量神经元的神经网络可以简单地将一个函数划分为几个恒定区域来估计。
对于落在神经元下降部分的输入信号,通过将权重放大到较大的值,最终的值将接近 1(当使用 sigmoid 函数计算时)。如果它不属于这个部分,将权重移向负无穷将产生接近于 0 的最终结果。使用 sigmoid 函数作为某种处理器来确定神经元的存在程度,只要有大量的神经元,任何函数都可以近乎完美地近似。在多维空间中,Cybenko 推广了这一思想,每个神经元在多维函数中控制空间的超立方体。
通用近似定理的关键在于,它不是在输入和输出之间建立复杂的数学关系,而是使用简单的线性操作将复杂的函数分割成许多小的、不那么复杂的部分,每个部分由一个神经元处理。不管怎样,所有这些探索都围绕着一个想法——神经网络在神经元数量中找到优势。每个神经元监视特征空间的一个模式或区域,其大小由网络中神经元的数量决定。神经元越少,每个神经元需要监视的空间就越多,因此近似能力就会下降。但是,随着神经元增多,无论激活函数是什么,任何函数都可以用许多小片段拼接在一起。
有人可能指出,通用近似定理虽然简单,但有点过于简单(至少在概念上)。神经网络可以分辨数字、生成音乐等,并且通常表现得很智能,但实际上只是一个复杂的逼近器。
神经网络旨在对给定的数据点,能够建模出复杂的数学函数。神经网络是个很好的逼近器,但是,如果输入超出了训练范围,它们就失去了作用。这类似于有限泰勒级数近似,在一定范围内可以拟合正弦波,但超出范围就失效了。如下图所示,在超过一定范围后,正弦函数的泰勒级数表现得不再像一个正弦波。外推,或者说在给定的训练范围之外做出合理预测的能力,这并不是神经网络设计的目的,这也可以解释为什么在测试集中效果要比在训练集中差。从Universal approximation theorem,我们了解到神经网络并不是真正的智能,而是隐藏在多维度伪装下的估计器,在二维或三维中看起来很普通。
Asymptotically approximate
至此,理解《Deep Residual Learning for Image Recognition》文中提到的asymptotically approximate一词就变得清晰起来了。作者的思路是模拟近似一个学习残差的函数,而非普通的模拟逼近一个线性函数学习原本的特征,从而避免了Gradient Vanishing/Exploding的问题。