进化算法:隐藏/中间节点的目的是什么

时间:2016-10-23 18:27:33

标签: evolutionary-algorithm

我在网上看到了this video,它显示了一个神经网络"有三个输入和三个输出,虽然输入没有变化,但我相信这个网络和其他进化算法之间有足够的相似性来使问题有效。

我的问题是,因为视频中显示的所有三个输入节点都可以施加影响"在控制权重的输出节点上,为什么需要四个中间节点?为什么不直接将输入节点连接到输出?

1 个答案:

答案 0 :(得分:1)

仅由输入和输出组成的人工神经网络是(单层)perceptron。实现这些网络并不能解决许多使人工神经网络使用十多年的问题!

为简单起见,想象一下只有一个输出神经元(许多输出可以被认为是并行的许多类似问题)。此外,我们暂时只考虑一个输入。神经元使用activation function,它根据接收到的输入确定该神经元的活动(输出)。对于实践*中使用的激活函数,输入越多,输出越高(或者在某些范围内相同,但让我们忘掉它)。并且链接其中两个也导致“输入越多,最终输出越多”。

使用一个输出神经元,您将结果解释为“如果输出超过阈值,则A,否则为B”。 (其中“A”和“B”可能表示不同的事物)。因为我们的神经元产生的信号越多,它们接收的输入就越多,那么我们的网络只能回答类型为“输入信号超过阈值,然后是A,否则为B”的简单线性问题。

enter image description here

使用两个输入非常相似:我们将两个输入神经元的输出结合起来。现在我们处于“输入神经元1和2的输入一起足够高以至于我们的最终输出超过阈值,然后是A,否则为B”的情况。从图形上看,这意味着我们可以通过在输入1输入2平面上画一条线(允许曲率)来决定A或B:

enter image description here

但有些问题无法通过这种方式解决!考虑XOR problem。我们的目标是产生这个:

enter image description here

正如你所看到的,不可能划出一条线来获得所有的A在一边而所有的B在另一边。这些线代表了所有可能的单层感知器!我们说XOR问题不是linearly separable(这就是为什么XOR是神经网络的传统测试)。

至少引入一个隐藏层可以解决这个问题。在实践中,这就像组合两个单层感知器的结果:

enter image description here

向隐藏层添加更多神经元意味着能够解决越来越复杂的问题。事实上,任何函数 f(A,B)

但是,您可能知道其他网络使用更多层(请参阅deep learning),但在这种情况下,动机不是理论上的限制,而是搜索效果更好的网络。

*使用奇怪的手工激活功能不会让事情变得更好。您可能能够解决特定问题,但仍然不是全部问题,并且您需要知道如何设计此激活函数。

相关问题