感知机是什么?最早能从数据中学习的神经网络
感知机(Perceptron)是一种最简单的人工神经网络,也是最早能够从数据中自动学习的机器学习模型之一。它由美国康奈尔航空实验室的心理学家弗兰克·罗森布拉特在 1957 年提出。它是一个线性的二分类模型,被视为神经网络和支持向量机的起源。
它是怎么工作的
感知机模仿了生物神经元的工作方式:神经元接收来自其他神经元的信号,当信号的总强度超过某个阈值时,它就会被“激活”,发出信号。感知机接收多个输入,每个输入都有一个对应的权重,表示它的重要程度;它把所有输入乘以各自的权重后加起来,再加上一个偏置;如果结果大于零,就输出 1,表示属于正类,否则输出负 1 或 0,表示属于负类。从几何上看,感知机就是在空间中画出一条直线,或者在高维空间中画出一个超平面,把两类数据分开。
它是怎么学习的
感知机的学习规则非常简单:依次查看每一个训练样本,如果感知机对它的判断是正确的,就什么也不做;如果判断错了,就调整权重:把权重朝着能让这个样本被正确分类的方向移动一点。具体来说,如果一个本该是正类的样本被判成了负类,就把这个样本的输入加到权重上;反之就减去。不断地重复这个过程,直到所有的训练样本都被正确分类为止。
可以证明,如果两类数据是线性可分的,也就是确实存在一条直线能把它们完全分开,那么感知机的学习算法一定能在有限的步数内找到这样一条直线,这叫感知机收敛定理。但它找到的只是能分开数据的某一条直线,而不一定是最好的那一条,结果会受到初始值和样本顺序的影响。后来的支持向量机则进一步要求找到间隔最大的那条分界线。
轰动与挫折
罗森布拉特不仅提出了感知机的理论,还制造了一台专门的硬件“Mark I 感知机”,它通过一个由 400 个光电管组成的“视网膜”接收图像,能学会识别一些简单的形状和字母。在当时,这引起了巨大的轰动,媒体纷纷报道,有人乐观地预测会出现能走路、说话、看东西的机器。
然而,1969 年,人工智能的先驱马文·明斯基和西摩·派珀特出版了《感知机》一书,用数学严格地证明了单层感知机的局限:它只能解决线性可分的问题,连非常简单的“异或”问题都无法解决。异或问题是指:两个输入相同时输出 0,不同时输出 1,这四个点无法用一条直线分开。这本书对神经网络研究产生了很大的打击,加上其他的原因,神经网络研究在此后的十多年里陷入了低潮。
从感知机到深度学习
解决异或问题的办法其实并不复杂:把多个感知机组合起来,在输入和输出之间加入一个或多个隐藏层,形成多层感知机,再把阶跃函数换成平滑的激活函数,它就能够表示复杂的非线性关系。真正的难点在于如何训练多层的网络。直到 1986 年,大卫·鲁梅尔哈特、杰弗里·辛顿和罗纳德·威廉姆斯推广了反向传播算法,多层神经网络的训练问题才得到解决,神经网络研究重新兴起,并最终发展成为今天的深度学习。今天的大语言模型中的每一个神经元,在原理上仍然与感知机相似:对输入加权求和,再经过一个激活函数。