进化算法:hidden/intermediate个节点的目的是什么

Evolutionary algorithm: What is the purpose of hidden/intermediate nodes

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

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

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

为简单起见,假设只有一个输出神经元(许多输出可以被认为是并行的许多类似问题)。此外,让我们暂时只考虑一个输入。神经元使用 activation function,它根据接收到的输入确定该神经元的 activity(输出)。对于实践中使用的激活函数*,输入越多,输出越高(或在某些范围内相同,但让我们忘记这一点)。将其中两个链接起来也会导致 "the more input, the more final output".

对于一个输出神经元,您将结果解释为 "if output is over threshold, then A, otherwise B"。 (其中 "A" 和 "B" 可能意味着不同的事情)。因为我们的两个神经元接收到的输入越多,产生的信号就越多,所以我们的网络只能回答 "if input signal is over threshold, then A, otherwise B".

类型的简单线性问题

使用两个输入非常相似:我们结合两个输入神经元的输出。现在我们处于 "if inputs to input neurons 1 and 2 are, together, high enough that our final output is over a threshold, then A, otherwise B" 的情况。从图形上讲,这意味着我们可以通过在输入 1-输入 2 平面上画一条线(允许曲率)来决定 A 或 B:

但有些问题不能这样解决!考虑 XOR problem。我们的目标是制作这个:

如您所见,不可能画出一条线,一侧是所有 A,另一侧是所有 B。而这些线代表了所有可能的一层感知器!我们说异或问题不是linearly separable(这也是为什么异或是神经网络的传统测试)

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

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

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

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