需要注意的是,即使在这个非常简单的感知器中,事情也开始变得复杂了:我们的神经元之间已经有27个连接了,每个连接都有对应的权重,9个神经元都有自己的触发阈值。虽然麦卡洛克和皮茨就在模型中设想了多层神经网络结构,但在罗森布拉特的时代,人们主要关注单层网络,原因很简单:没有人知道如何训练具有多个层面的神经网络。
每个连接所对应的权重值对于神经网络的运行至关重要,事实上,这就是神经网络分解下来的全部内容:一堆数字列表。对于任何一个大小合理的神经网络来说,这个数字列表的长度都相当可观。因此,训练一个神经网络需要用某种方式找到适当的权重值。通常的寻找方式是在每次训练以后调整权重值,试图让网络产生正确的输入到输出的映射。罗森布拉特试验了几种不同的技术,并为一个简单的感知器模型找到了一个被他称为纠错程序的技术。
现在我们知道罗森布拉特的方法肯定是有效的,它可以正确地训练一个网络。但是在当时,存在一个强烈的异议。1969年,马文·明斯基和西摩·帕普特(Seymour Papert)出版了一本名叫《感知器》的书[63],书中指出单层感知器网络有着非常大的局限性。事实上,如图15所示的单层感知器确实如此,它们甚至连许多输入和输出之间的简单关系都学不会。但当时吸引大多数读者注意力的,是明斯基和帕普特的研究表明,感知器模型不能学习一个很简单的逻辑概念——异或(XOR)[11]。举一个例子,假设你的网络只有两个输出,当其中一个输出被激活时,异或函数应该产生一个输出(但当两个输入同时被激活的时候,则不会产生输出)。要证明单层感知器无法表示异或状态很容易,感兴趣的读者可以在附录D中找到更多信息。