神经网络强大功能背后的证据通用逼近定理实际上是神经网络工作原理的理论基础。简而言之,它指出具有包含足够但有限数量的神经元的隐藏层的神经网络可以以合理的精度逼近任何连续函数。由GeorgeCybenko于1989年仅针对S曲线激活制定,并于1991年由KurtHornik证明了所有激活函数(神经网络的架构而不是特征的选择是性能背后的驱动力),它的发现一直是一个神经网络令人兴奋的发展成为当今使用它们的众多应用程序背后的重要推动力。然而,最重要的是,这个定理令人惊讶地解释了为什么神经网络看起来表现得如此聪明。理解它是深入理解神经网络的关键一步。更深入的探索紧(有界、闭)集上的任何连续函数都可以用分段函数来逼近。例如,-3和3之间的正弦波可以非常令人信服地用三个函数(两个二次函数和一个线性函数)逼近。>在Desmos中绘制。Cybenko对这个分段函数更具体,因为它可以是常量并且基本上由适合该函数的几个步骤组成。有了足够的恒定区域(“步长”),就可以合理地估计给定范围内的函数。>在Desmos中绘制。基于这种近似,可以通过将每个神经元委托给一个“步骤”来构建网络。使用权重和偏差作为“门”来确定哪个输入下降并因此应该激活哪个神经元,具有足够数量神经元的神经网络可以简单地将函数分成几个恒定区域来估计函数。对于落入神经元委托区域的输入,通过将权重分配给巨大的值,最终值将接近1(当使用sigmoid函数评估时)。如果不属于该部分,则将权重移向负无穷大将产生接近0的最终结果。使用sigmoid函数作为某种“处理器”来确定神经元存在的程度,几乎任何函数都可以在给定神经元数量的情况下完美地近似。在多维空间中,Cybenko概括了每个神经元“控制”多维函数中的空间超立方体的想法。通用逼近定理的关键在于,与其在输入和输出之间创建复杂的数学关系,不如使用简单的线性运算将复杂的函数分成许多更小、不太复杂的部分,每个部分由一个神经元表示获得。>图片由作者创建。自Cybenko的初步证明以来,已经进行了许多其他改进,例如对于不同的激活函数(例如ReLU)(没有边缘(在一侧)或具有各种体系结构(递归、卷积等)来测试通用逼近定理)。无论如何,所有这些探索都围绕着一个想法——神经网络在数量上找到优势。每个神经元监控一个模式或特征空间区域,其大小取决于网络中神经元的数量。神经元越少,每个个体需要监测的空间就越大,因此逼近能力下降。但是有了更多的神经元,任何函数都可以与许多小块组合,而不管激活函数是什么。泛化与外推有人可能会指出,尽管如此简单,通用逼近定理还是有点太简单了(至少在概念上如此)。一个强大的神经网络实际上可以是一个复杂的逼近器,它可以分离数字、产生音乐,并且通常表现得非常智能。神经网络的目的是在给定数据点样本的情况下对复杂的数学函数进行概括或建模。它们是很好的近似值,但一旦您要求输入值超出其训练的直接范围,它就会惨败。这类似于有限泰勒级数近似,它令人信服地在一定范围内对正弦波进行建模,但在它们之外会造成混乱。>在Desmos中绘制。外推,或者在给定训练范围之外做出合理预测的能力,并不是神经网络的设计目标。从通用逼近定理,我们了解到神经网络根本不是真正的智能,而只是打着多维幌子的良好估计器,这使得它们的能力(在二维或三维上看似普通)看起来令人印象深刻。如果神经网络在其训练对象之外失败并不重要,因为那不是它的目标。该定理的实际含义留给机器学习工程师的直觉和经验来构建适合给定问题的神经网络架构,这样,在知道存在这样的网络的情况下,可以很好地近似多维空间并平衡真实性的计算账单。是的。这个定理让机器学习工程师知道总有一个解决方案。
