Answers:
Cybenko的结果相当直观,正如我希望在下面传达的那样。使事情变得更加棘手的是他的目标是通用性以及最小数量的隐藏层。实际上,Kolmogorov的结果(由vzn提及)获得了更强的保证,但与机器学习的关联性却有所降低(特别是,由于节点是异构的,因此它没有建立标准的神经网络);这个结果反而令人生畏,因为从表面上看,它只有3页,记录了一些极限和连续函数,但实际上,它正在构造一组分形。虽然Cybenko的结果由于他使用的精确技术而异常且非常有趣,但是这种味道的结果在机器学习中得到了广泛的应用(我可以指出其他人)。
这是Cybenko的结果应成立的简要概述。
关于上面的第一点,可以认为是“紧凑集上的连续函数是一致连续的”。这对我们而言意味着您可以将连续函数置于之上,并且目标误差,然后可以将网格缩放为(结束大致具有个子立方体),因此在每个子立方体上恒定的函数在目标函数的之内。 ε > 0 [ 0 ,1 ] d τ > 0 (1 / τ )d ε
现在,神经网络不能精确地表示指标,但是您可以非常接近。假设“传递函数”是S形的。(传递函数是连续函数,可应用于输入的线性组合以获得神经网络节点的值。)然后,通过使权重很大,对于更多输入,您将输出接近0或接近1的值。这与Cybenko的发展是一致的:请注意,他需要在极限中等于0或1的函数:通过极限的定义,您将得到我真正的意思,这意味着您可以任意地将其逼近0或1。
(我忽略了最后一层中的传递函数;如果它在那儿并且是连续的,那么我们可以通过根据传递将常量权重替换为该常量的逆图像中的东西来拟合映射到的任何东西功能。)
请注意,以上内容似乎需要几层:例如,2以在多维数据集上构建指标,然后是最终输出层。Cybenko尝试了两点普遍性:隐藏层的最少数量和传递函数选择的灵活性。我已经描述了他如何在传递函数上实现灵活性。
为了获得最小的层数,他避免了上面的构造,而是使用功能分析来产生矛盾。这是论点的草图。
最终节点将计算其下面层的元素的线性组合,并对其应用传递函数。该线性组合是函数的线性组合,因此,它本身就是一个函数,是函数的某些子空间中的一个函数,由隐藏层中的可能节点跨越。
函数的子空间就像普通的有限维子空间一样,主要区别是它可能不是封闭集。这就是为什么cybenko的论点都采用该子空间的封闭的原因。我们试图证明该闭包包含所有连续函数;这意味着我们任意接近所有连续函数。
如果函数空间很简单(希尔伯特空间),那么我们可以进行如下讨论。选择一些目标连续函数,该函数应该相反地位于子空间中,然后将其投影到子空间的正交补中。此残差必须为非零。但是,由于我们的子空间可以表示上面的那些小立方体,所以我们可以找到此残差的某个区域,将一个小立方体拟合到上面(如上),从而更接近目标函数。这是一个矛盾,因为投影选择的元素最少。(请注意,我在这里遗漏了一些东西:Cybenko的论点并没有建立任何小立方体,他也普遍地处理了这个问题;这是他使用Riesz表示定理的形式以及传递函数的属性的地方(如果我记得正确地,这一步有一个单独的引理,
我们不在希尔伯特空间中,但是我们可以使用Hahn-Banach定理代替上面的投影步骤(请注意,证明Hahn-Banach使用选择公理)。
现在,我想谈谈关于科尔莫戈罗夫的结果。虽然此结果显然不需要Cybenko的背景知识,但我个人认为这更令人生畏。
这就是为什么。Cybenko的结果是一个近似的保证:它没有说我们可以精确地表示任何东西。另一方面,柯尔莫哥洛夫的结果是提供了平等。更荒谬的是,它表示网络的大小:您只需要节点。为了实现这种增强,我当然提到了一个问题:网络是异构的,这意味着所有传递函数都不相同。
好的,那么,这一切怎么可能工作呢?
让我们回到上面的多维数据集。注意,我们必须进行精确的烘焙:对于每个,我们都必须返回并选择一个更精细的。由于我们正在使用指标的(有限)线性组合,因此我们永远无法准确表示任何东西。(只有包含S型曲线的近似效果,情况才会变得更糟。)τ > 0
那么解决方案是什么?好吧,我们如何同时处理所有秤?我没有做这个:Kolmogorov的证明是有效地将隐藏层构造为一组分形。换句话说,它们基本上是将映射到空间填充曲线;这样,即使我们具有单变量函数的组合,我们也可以拟合任何多元函数。实际上,您可以通过一个荒谬的计数参数试探性地得出是“正确的”:我们通过单变量连续函数将的连续函数写入,并且因此,要捕获所有坐标间的交互,我们需要[ 0 ,1 ] d Ô(d 2)- [R d - [R Ô(d 2) 功能...
请注意,由于仅使用一种传递函数,因此Cybenko的结果与机器学习更为相关。这种定理在机器学习中非常普遍(vzn在他的回答中提出了这一点,但是他提到了Kolmogorov的结果,由于自定义传递函数的缘故,它的适用性降低了;这在Kolmogorov的结果的一些更高级的版本中被削弱了(由其他作者),但这些仍然涉及分形和至少两个传递函数)。
我有一些关于这些主题的幻灯片,如果您有兴趣的话可以张贴(希望比上面的文章少些粗鲁,并且有一些图片;但是我是在Hahn-Banach熟悉之前写的)。我认为这两个证明都非常非常好。(此外,我在这些主题上还有另一个答案,但是我在写完Kolmogorov的结果之前就写了它。)
有一个先进的结果,是机器学习的关键,被称为Kolmogorov定理[1]。我从未见过有关其工作原理的直观草图。这可能与处理它的不同文化有关。应用的学习人群将Kolmogorov定理看作是存在定理,仅表示NN可能存在,因此至少结构并不过分,但该定理并不保证可以找到这些NN。数学家并不那么关注定理的低级应用。
该定理在历史上也曾用于调用/捍卫多层NN的固有复杂性,以应对Perceptrons(Minsky / Papert)的批评,即他们无法学习某些基本功能(即非线性)。
理论计算机科学家不希望将NN视为“近似值”,因为该术语具有特殊/不同的含义。分段线性插值可能有一些粗略的类比,但我仍然没有看到它的布局。
[1] Kolmogorov,AN(1957)。通过一个变量的连续函数与加法的叠加表示多个变量的连续函数。Doklady Akademii Nauk SSSR,144,679-681;美国数学学会翻译,第28卷,第55-59页[1963]
[3] Kolmogorov定理和多层神经网络 Kurkova