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


​出处: Michael Nielsen的《Neural Network and Deep Learning》。本节译者:朱小虎 、张广宇。

目录

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

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

3、改进神经网络的学习方法

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

  • 两个预先声明
  • 一个输入和一个输出的普遍性
  • 多个输入变量
  • S型神经元的延伸
  • 修补阶跃函数
  • 结论

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

6、深度学习

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

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

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

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

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

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

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

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

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

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

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

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


本文来源于哈工大SCIR

原文链接点击即可跳转

工程理论书籍神经网络深度学习修补阶跃函数哈工大