查看原文
其他

《神经网络和深度学习》系列文章三十六:修补阶跃函数

Nielsen 哈工大SCIR 2021-02-05

出处: Michael Nielsen的《Neural Network and Deep Learning》,点击末尾“阅读原文”即可查看英文原文。

声明:我们将在每周四连载该书的中文翻译。

本节译者:朱小虎 、张广宇。转载已获得译者授权,禁止二次转载。


  • 使用神经网络识别手写数字

  • 反向传播算法是如何工作的

  • 改进神经网络的学习方法

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

    • 两个预先声明

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

    • 多个输入变量

    • S型神经元的延伸

    • 修补阶跃函数

    • 结论

  • 为什么深度神经网络的训练是困难的

  • 深度学习


目前为止,我们假定神经元可以准确生成阶跃函数。这是一个非常好的近似,但也仅仅是近似。实际上,会有一个很窄的故障窗口,如下图说明,在这里函数会表现得和阶跃函数非常不同。


在这些故障窗口中我给出的普遍性的解释会失败。


现在,它不是一个很严重的故障。通过使得输入到神经元的权重为一个足够大的值,我们能把这些故障窗口变得任意小。当然,我们可以把故障窗口窄过我在上面显示的~——~窄得我们的眼睛都看不到。所以也许我们可以不用过于担心这个问题。


尽管如此,有一些方法解决问题是很好的。


实际上,这个问题很容易解决。让我们看看只有一个输入和一个输出的神经网络如何修补其计算函数。同样的想法也可以解决有更多输入和输出的问题。


特别地,假设我们想要我们的网络计算函数 。和以前一样,我们试着设计我们的网络,使得隐藏神经元的加权输出是 


如果我们要使用前面描述的技术做到这一点,我们会使用隐藏神经元产生一系列的凹凸函数:



再说一下,我夸大了图上的故障窗口大小,好让它们更容易看到。很明显如果我们把所有这些凹凸函数加起来,我们最终会得到一个合理的  的近似,除了那些故障窗口。


假设我们使用一系列隐藏神经元来计算我们最初的目标函数的一半,即 ,而不是使用刚刚描述的近似。当然,这看上去就像上一个图像的缩小的版本:


并且假设我们使用另一系列隐藏神经元来计算一个  的近似,但是用将凹凸图形偏移一半宽度:


现在我们有两个不同的  的近似。如果我们把这两个近似图形加起来,我们会得到一个  的整体近似。这个整体的近似仍然在一些小窗口的地方有故障。但是问题比以前要小很多。原因是在一个近似中的故障窗口的点,不会在另一个的故障窗口中。所以在这些窗口中,近似会有倍的因素更好。


我们甚至能通过加入大量的,用  表示,重叠的近似来做得更好。假设故障窗口已经足够窄了,其中的点只会在一个故障窗口中。并且假设我们使用一个  足够大的重叠近似,结果会是一个非常好的整体近似。




  • “哈工大SCIR”公众号

  • 编辑部:郭江,李家琦,徐俊,李忠阳,俞霖霖

  • 本期编辑:李家琦


长按下图并点击 “识别图中二维码”,即可关注哈尔滨工业大学社会计算与信息检索研究中心微信公共号:”哈工大SCIR” 。点击左下角“阅读原文”,即可查看原文。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存