神经网络与深度学习笔记——第4章 神经网络可以计算任何函数的可视化证明

第4章 神经网络可以计算任何函数的可视化证明

神经网络拥有一种普遍性。不论我们想要计算什么样的函数,我们都确信存在一个神经网络可以计算它。
而且,这个普遍性定理甚至在我们限制了神经网络只在输入层和输出层之间存在一个中间层的情况下成立。所以即使是很简单的网络架构都极其强大。
普遍性定理在使用神经网络的人群中是众所周知的。但是它为何正确却不被广泛地理解。现有的大多数的解释都具有很强的技术性。

两个预先声明

关于神经网络可以计算任何函数的两个预先声明。
1.这句话不是说一个网络可以被用来准确地计算任何函数。而是说,我们可以获得尽可能好的一个近似。
增加隐藏神经元的数目可以获得一个尽可能更好的近似。
2.近似的函数类其实是连续函数。如果函数不是连续的,也就是会有突然、极陡的跳跃,那么一般来说无法使用一个神经网络进行近似。
总结一下,更加准确的关于普遍性定理的表述是包含一个隐藏层的神经网络可以被用来按照任意给定的精度来近似任何连续函数。

一个输入和一个输出的普遍性

多个输入变量

S型神经元的延伸

s(z) 需要什么样的性质来满足这样的结果呢?
我们确实需要假定 s(z) 在 z → −∞ 和 z → ∞时是定义明确的。 s(z) 的这两个界限是在我们的阶跃函数上取的两个值。我们也需要假定这两个界限彼此不同。如果它们不是这样,就没有阶跃,只是一个简单的平坦图形!但是如果激活函数 s(z)满足这些性质,基于这样一个激活函数的神经元可普遍用于计算。
修正线性单元的神经元虽然不满足刚刚给出的普遍性的条件,但修正线性单元可普遍用于计算。

修补阶跃函数

目前为止,我们假定神经元可以准确生成阶跃函数。这是一个非常好的近似,但也仅仅是近似。实际上,会有一个很窄的故障窗口,在这里函数会表现得和阶跃函数非常不同。在这些故障窗口中,我们给出的普遍性的解释会失败。现在,它不是一个很严重的故障。通过使得输入到神经元的权重为一个足够大的值,我们能把这些故障窗口变得任意小。
实际上,这个问题很容易解决。
我们会使用隐藏神经元产生一系列的凹凸函数。
我们甚至能通过加入大量的,用 M 表示,重叠的近似 σ1f(x)/M 来做得更好。假设故障窗口已经足够窄了,其中的点只会在一个故障窗口中。并且假设我们使用一个 M 足够大的重叠近似,结果会是一个非常好的整体近似。

结论

我们已经讨论的对于普遍性的解释当然不是如何使用神经网络计算的切实可行的用法!
尽管这个结果并不能直接用于解释网络,它还是很重要的,因为它解开了是否使用一个神经网络可以计算任意特定函数的问题。
我们建立的对于普遍性的解释只使用了两个隐藏层来计算一个任意的函数。而且,正如我们已经讨论过的,只使用单个的隐藏层来取得相同的结果是可能的。
尽管在原理上这是可能的,使用深度网络仍然有实际的原因。深度网络有一个分级结构,使其尤其适用于学习分级的知识,这看上去可用于解决现实世界的问题。但是更具体地,当攻克诸如图像识别的问题,使用一个不仅能理解单独的像素,还能理解越来越复杂的概念的系统是有帮助的,这里说的复杂的概念,可以从图像的边缘信息到简单的几何形状,以及所有复杂的、多物体场景的方式。在后面的章节中,我们将看到在学习这样的分级知识时,深度网络要比浅层网络做得更好。
总结一下:普遍性告诉我们神经网络能计算任何函
数;而实际经验依据表明深度网络最能适用于学习能够解决许多现实世界问题的函数 。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值