神经⽹络可以计算任何函数的可视化证明



概述

在BP神经网络的那一章文章中提到过,只需一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数。所以,今天就用可视化的方式简单的证明一下这个结论。

一、两个预先声明

  • 第⼀点,不是说⼀个⽹络可以被⽤来准确地计算任何函数。⽽是说,我们可以获得尽 可能好的⼀个近似。对于⼤多数函数使⽤三个隐藏元仅仅能得到⼀个 低质量的近似。通过增加隐藏神经元的数量(⽐如说,五个),我们能够明显地得到更好的近似:
    在这里插入图片描述
  • 第二点,就是可以按照上⾯的⽅式近似的函数类其实是连续函数。如果函数不是连续的,也就是会有突然、极陡的跳跃,那么⼀般来说无法使⽤⼀个神经⽹络进⾏近似。然⽽,即使那些我们真的想要计算的函数是不连续的, ⼀般来说连续的近似其实也⾜够的好了。如果这样的话,我们就可以⽤神经⽹络来近似了。实 践中,这通常不是⼀个严重的限制。

更加准确的关于普遍性定理的表述是包含⼀个隐藏层的神经⽹络可以被⽤来按照任意给定的精度来近似任何连续函数。这里,我们会使⽤了两个隐藏层的⽹络来证明这个结果的弱化版本。在问题中我将简要介绍如何通过⼀些微调把这个解释适应于只使⽤⼀个隐藏层的 ⽹络的证明。

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

1.简单的可视化图

为了理解为何普遍性定理成⽴,我们先从理解如何构造这样⼀个神经⽹络开始,它能够近似 ⼀个只有⼀个输⼊和⼀个输出的函数:
在这里插入图片描述
⼀旦我们理解了这个特例,那么实际上就会很容易扩展到那些有多个输⼊输出的函数上。

为了构建关于如何构造⼀个计算 f f f的⽹络的理解,让我们从⼀个只包含⼀个隐藏层的⽹络开 始,它有两个隐藏神经元,和单个输出神经元的输出层:
在这里插入图片描述
为了感受⼀下⽹络的组成部分⼯作的机制,我们专注于最顶上的那个隐藏神经元。在下图例子中,展⽰了顶部隐藏神经元的权重w,偏置b和输出曲线的关系。思考最上⾯的隐藏神经元变 化如何计算函数:
在这里插入图片描述
隐藏神经元在计算的是 σ ( w x + b ) σ(wx+b) σ(wx+b),这⾥ σ ( z ) = 1 / ( 1 + e − z ) σ(z) = 1/(1+e−z) σ(z)=1/(1+ez)是 Sigmod型函数。

开始,增加偏置b的值。当偏置增加时,图形往左移动,但是形状不变。

接下来,减⼩偏置。当偏置减⼩时图形往右移动,但是再⼀次,它的形状没有变化。

继续,将权重减⼩到⼤约2或3。当你减⼩权重时,曲线往两边拉宽了。可以同时改变偏置,让曲线保持在框内。

最后,把权重增加到超过 w = 100 w = 100 w=100。当这样做时,曲线变得越来越陡,直到最终看上去就像是⼀个阶跃函数。试着调整偏置,使得阶跃位置靠近 x = 0.3 x = 0.3 x=0.3。下⾯⼀个图显⽰我们应该看到的结果。
在这里插入图片描述
给权重增加很⼤的值来简化分析,使得输出实际上是个⾮常接近的阶跃函数。下⾯画出了当权重为 w = 999 w = 999 w=999时从顶部隐藏神经元的输出:
在这里插入图片描述
实际上处理阶跃函数⽐⼀般的S型函数更加容易。原因是在输出层把所有隐藏神经元的贡献值加在⼀起。分析⼀串阶跃函数的和是容易的,相反,思考把⼀串S形状的曲线加起来是什么则要更困难些。所以假设隐藏神经元输出阶跃函数会使事情更容易。更具体些,把权重w固定在⼀个⼤的值,然后通过修改偏置设置阶跃函数的位置。当然,把输出作为⼀个阶跃函数处理只是⼀个近似,但是它是⼀个⾮常好的近似,现在把它看作是精确的。

x x x取何值时阶跃会发⽣呢?换种⽅式,阶跃的位置如何取决于权重和偏置?
为了回答这个问题,试着修改上⾯图中的权重和偏置。你能不能算出阶跃的位置如何取决于w和b?做点⼯作你应该能够说服⾃⼰,阶跃的位置和b成正⽐, 和w成反⽐。

实际上,阶跃发⽣在 s = − b / w s = −b/w s=b/w的位置,正如在下图中通过修改权重和偏置看到的:
在这里插入图片描述
这将⽤仅仅⼀个参数s来极⼤简化描述隐藏神经元的⽅式,这就是阶跃位置, s = − b / w s = −b/w s=b/w。 试着修改下图中的 s s s,以便习惯这个新的参数设定:
在这里插入图片描述
,我们隐式地设置输⼊上的权重w为⼀些⼤的值——⼤到阶跃函数能够很好地近似。通过选择偏置 b = − w s b = −ws b=

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值