阈值逻辑单元是什么?最早的人工神经元模型
阈值逻辑单元(Threshold Logic Unit,TLU)是一种非常简单的计算单元:它把多个输入分别乘以对应的权重后加起来,再与一个阈值比较,如果总和超过阈值就输出 1,否则输出 0。它被认为是最早的人工神经元模型,是感知机和现代神经网络的源头。
M-P 神经元模型
1943 年,美国神经生理学家沃伦·麦卡洛克和逻辑学家沃尔特·皮茨发表了一篇具有开创意义的论文《神经活动中内在思想的逻辑演算》,提出了第一个人工神经元的数学模型,后来被称为 M-P 神经元模型。他们受到生物神经元的启发:一个神经元接收来自许多其他神经元的信号,当这些信号的总强度超过某个阈值时,它就会被“激活”,发出一个电脉冲;否则就保持静息。这种“要么发放、要么不发放”的特性被称为“全或无”。麦卡洛克和皮茨用一个简单的数学模型来描述它:神经元的输出只有 1 和 0 两种状态,分别表示激活和静息;它接收多个二值的输入,计算加权和,与阈值比较,决定输出。在今天的术语中,这就是一个以单位阶跃函数作为激活函数的神经元。
它能实现逻辑运算
麦卡洛克和皮茨的一个重要发现是:通过适当地设置权重和阈值,阈值逻辑单元可以实现基本的逻辑运算。与运算:有两个输入,权重都设为 1,阈值设为 1.5,只有当两个输入都是 1 时,加权和为 2,超过阈值,输出 1。或运算:权重都设为 1,阈值设为 0.5,只要有一个输入是 1,加权和就超过阈值,输出 1。非运算:只有一个输入,权重设为负 1,阈值设为负 0.5,输入为 0 时输出 1,输入为 1 时输出 0。由于任何复杂的逻辑函数都可以由与、或、非这些基本运算组合而成,他们指出,由这样的神经元组成的网络,原则上可以实现任何逻辑计算。这一工作把神经活动与逻辑和计算联系了起来,深刻地影响了后来的人工智能、计算机科学和认知科学,冯·诺依曼在设计计算机时也参考了这一模型。
单个单元的局限:线性可分
从几何上看,单个阈值逻辑单元在输入空间中画出一条直线,或者在高维空间中画一个超平面,把输入分成输出为 1 和输出为 0 的两部分。因此,它只能表示那些可以用一条直线分开的函数,也就是线性可分的函数。与、或、非都是线性可分的;但“异或”运算,即两个输入不同时输出 1、相同时输出 0,是线性不可分的:把四种输入组合画在平面上,输出为 1 的两个点位于对角线的两端,输出为 0 的两个点位于另一条对角线的两端,无法用一条直线把它们分开。所以单个阈值逻辑单元无法实现异或。不过,把多个阈值逻辑单元组合成两层,就可以实现异或,事实上,多层的阈值逻辑单元网络可以表示任何布尔函数。
从阈值逻辑单元到感知机和现代神经网络
M-P 神经元模型的权重和阈值需要人工设定,它本身不会学习。1957 年,弗兰克·罗森布拉特在此基础上提出了感知机,加入了一种根据错误自动调整权重的学习规则,让神经元能够从数据中学习。然而,阶跃函数在零点不连续、其他地方导数为零,无法使用基于梯度的方法来训练多层网络。后来,人们用 Sigmoid、ReLU 等连续的、可以求导的激活函数代替了阶跃函数,配合反向传播算法,才让多层神经网络的训练成为可能。今天的大语言模型中的每一个神经元,在原理上仍然与阈值逻辑单元相似:对输入进行加权求和,再经过一个非线性的函数,只是激活函数变得更加平滑了。