我对人工神经网络还比较陌生,我不理解的是为什么我们需要层的概念。难道不能通过将每个神经元连接到其他一些神经元,形成一种网络结构而不是基于层的结构吗?
例如,为了解决XOR问题,我们通常至少需要3层:1个输入层包含2个神经元,1个或多个隐藏层包含一些神经元,以及1个输出层包含1个神经元。
我们不能创建一个网络,包含2个输入神经元(我们需要它们)和1个输出神经元,通过其他神经元的网络连接起来吗?
回答:
“层”这个术语的含义可能与你想象的不同。神经元总是以网络形式存在的。层只是表示一组神经元的集合。
如果我想将层X与层Y连接,这意味着我将层X中的所有神经元连接到层Y中的所有神经元。但并非总是如此!你也可以将层X中的每个神经元仅连接到层Y中的一个神经元。有很多不同的连接技术。
但层并不是必需的!它只是使编码(和解释)过程变得更加简单。相比一个一个地连接所有神经元,你可以按层进行连接。说“层A和层B相连”要比说“神经元1,2,3,4,5都与神经元6,7,8,9相连”容易得多。
如果你对“无层”网络感兴趣,请查看液态状态机:
附注:我开发了一个Javascript神经网络库,并且我创建了一个在线演示,其中一个神经网络演变成XOR门——没有层,仅从输入和输出开始。在这里查看。你的示例图片正是你可以用这个库开发的那种网络类型。