虽然罗斯布拉特最初对单层感知器抱有巨大的期望,但后来发现它并不能解决复杂的分类问题。1969年,马文·明斯基和西摩尔·派普特在他们关于感知器的专著《感知器》(Perceptrons)中证明,这种单层感知器只能解决线性可分问题,却处理不了非线性分类问题。例如,平面上的4个点,(0,0)和(1,1)是一类,(0,1)和(1,0)是另一类。这样一个非常简单的关于4个点的二分类问题,使用单层感知器并不能给出正确的分类,原因就在于这样的分类问题是非线性可分的。读者可以从鸢尾花数据集中,选取不同于上节案例中的花的种类和特征属性,尝试用单层感知器算法分类,会发现并不总是能够给出具有很高的准确率的分类。某些情况下,无论迭代多少次,学习速率设定为多大,总是存在一部分不能正确分类的数据。
在上一节我们通过实例对线性可分问题已经有所了解,而非线性可分问题通过上面的图片可以直观地看到它的含义。在图6-6中,红蓝两类数据无法通过一条直线分开,这就是非线性可分问题。
图6-6
现实生活中遇到的大量问题都是线性不可分的,由于单层感知器对处理这类问题束手无策,造成人工神经网络理论在一段时间内陷入了低谷。那么感知器理论是否真的不能处理这样的问题呢?其实不然,研究者发现,通过增加神经网络的层数,可以很好地解决非线性分类问题。可以简单地认为,通过设计复杂的多层神经网络,使得最终网络输出的结果就是多层网络复合后得到的结果。其中每一层网络负责提取所处理的问题的不同特征,最终把多层网络抽取的特征复合起来,就能够较好地表达问题中复杂的非线性特征了。
实践证明这样的想法是行之有效的,由此推动了多层神经网络技术的发展。一个简单的神经网络包括一个输入层、一个隐藏层和一个输出层,如图6-7所示。