从M-P神经元到感知机再到BP神经网络

系列文章见: 《回忆AI时代-从图灵机到人工智能》

本章目录

关于神经网络的演进

1943年,神经生理学家Warren McCulloch(沃伦·麦卡洛克)与数理逻辑学家 Walter Pitts(沃尔特·皮茨)提出了人类历史上首个人工神经元数学模型,M-P神经元模型(McCulloch-Pitts Neuron),它是一种模仿生物神经元工作方式的计算模型,奠定了人工神经网络的理论基础。

但它很快遇到了一个关键问题,没有学习能力。模型中的权重需要人工设定,只能完成简单的逻辑推理任务(AND、OR 等),无法根据数据自动调整自身参数。


1948年,图灵在《Intelligent Machinery》中提出了”无组织机器(Unorganized Machines)”模型,系统探讨了由大量简单计算单元组成并能够学习的网络结构,虽然当时这些想法尚未真正落地,但这篇论文对后来的神经网络、机器学习以及深度学习的发展产生了深远影响,被认为是人工智能早期的重要理论基础之一。


1958年,心理学家和计算机科学家Frank Rosenblatt提出了感知机(Perceptron)。他在M-P模型的基础上引入了权重自动调整机制,使模型能够根据训练数据学习规律,从而解决了“无法训练”的核心缺陷。

感知机成为历史上第一个真正具备学习能力的神经网络模型,开启了机器学习研究的新阶段。

1969年,人工智能先驱Marvin Minsky与Seymour Papert合著了《Perceptrons》一书系统指出了单层感知机的核心局限,如

  • 只能解决线性可分问题;
  • 无法处理 XOR(异或)等非线性问题;
  • 网络结构过于简单,仅包含单层神经元。

此后1974–1980年间进入了AI的寒冬期。


1986年,David Rumelhart、Geoffrey Hinton和Ronald Williams等人,系统推广了BP神经网络(Backpropagation Neural Network)。

BP神经网络通过反向传播(Backpropagation)算法训练多层神经网络,使网络能够自动学习隐藏层中的复杂特征,成功解决了单层感知机无法处理XOR等非线性问题的缺陷。然而,随着网络层数增加,新的挑战也逐渐显现:

  • 计算量巨大,而当时 CPU 性能有限;
  • 容易出现梯度消失或梯度爆炸问题;
  • 缺乏大规模训练数据;
  • 存储和计算资源不足。

因此,神经网络研究在随后再次进入低潮期。

M-P神经元

神经元(英语:neuron)又名神经细胞(nerve cell),是组成神经系统结构和执行神经功能活动的一大类高度分化细胞,由胞体和胞突(树突和轴突)组成,属神经组织的基本结构和功能单位。神经元大致分为:感觉(传入)神经元,运动(传出)神经元、联络(中间)神经元三类。

神经元具有感受刺激、整合信息和传导冲动的能力。神经元感知环境的变化后,再将信息传递给其他的神经元,并指令集体做出反应。神经元占了神经系统约一半,其他大部分由神经胶质细胞所构成。神经元的基本构造包括:树突、轴突、髓鞘和细胞核。传递形成电流,在其尾端为受体,借由化学物质(神经传递物质,如多巴胺、乙酰胆碱等)传导,在适当的量传递后在两个突触间形成电流传导。

据估计,人脑中约有850-1200亿个神经元,神经胶质细胞的数目则更是其10倍之多。

神经元引发了科学家的思考,并在基础上抽象的数学公式。以下是一个M-P神经元计算过程:

1
2
3
4
5
6
7
输入 x1、x2、x3

加权求和 z = w1x1+w2x2+w3x3

阀值 (Threshold)

y 输出

其中X为输入、W为X对应的权重、经过阀值,最终输出结论。它计算的流程图:

1
2
3
4
5
x1 ----(w1)---
\
x2 ----(w2)-----> Σ ----> 阀值Threshold ----> y
/
x3 ----(w3)---

举个今天是否适合骑车的案例:

输入 权重
天气 2.0
周末 1.0
身体状态 3.0

因为不同的因素影响不同,所以会有权重。阀值表示门槛,如果达到门槛以上就输出1反之为0。关于M-P神经元的案例可以参考 M-P神经元案例,可以更好的理解神经元。

注:神经网络通常把阈值 θ 改写成偏置(Bias)b

感知机

感知机(Perceptron)是一种能够通过学习自动调整权重,从而完成分类任务的人工神经元模型。

在M-P神经元的案例中W(权重)和Thres(阀值)是指定的好的。但现实生活中我们并不知道:

  • 天气到底是怎么样的?
  • 身体状态到底占多少分?
  • 阈值应该设成多少?

所以感知机就是在神经元的基础上去自己学习W(权重)和Thres(阀值)参数,这是感知机诞生的主要原因,关于感知机可以参考 感知机案例

以下是感知机工作流程:
神经元模型

感知机与神经元的差别就是加权链接和阀值是自己学习的。

BP神经网络

感知机解决了能够学习权重与阀值的问题,但是它也有致命的缺点,只有一层,很多问题学不会。最经典的案例就是单层感知机无法解决XOR(异或)的问题。

以下表格是与或非的计算:

x1 x2 输出
0 0 0
0 1 1
1 0 1
1 1 0

当时也有想到既然一层不够,那就多加几层,这种叫多层感知机,但随之也出现了一些问题,第一层20个神经元、第二层30个神经元权重就有可能有成百上千,这些权重怎么学习就成为了难题。

BP神经网络(Back Propagation Neural Network,中文译反向传播神经网络)就是能解决多层感知机的问题,它是一种训练多层神经网络的方法。以下是BP神经网络训练过程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
开始训练


输入训练数据


前向传播(Forward)


计算预测结果


计算损失(Loss)


反向传播(Backward)


计算梯度(Gradient)


更新权重(Gradient Descent)


误差变小了吗?
┌───────┐
│ 否 │
▼ │
继续训练 ──┘


训练完成

训练BP神经网络可以概括为四个步骤:

  • 前向传播(Forward Propagation):输入数据经过各层计算,得到预测结果。
  • 计算损失(Loss):比较预测值与真实值,计算误差大小。
  • 反向传播(Backpropagation):利用链式法则,从输出层开始计算每层参数的梯度。
  • 更新参数(Gradient Descent):按照梯度方向调整权重和偏置,使损失减小。

BP算法解决了多层神经网络无法训练的问题,使隐藏层的权重也能够自动学习。今天几乎所有深度学习模型如CNN(卷积神经网络)、RNN(循环神经网络)、LSTM或是Transformer——虽然网络结构不同,但训练时都仍然依赖反向传播算法来计算梯度和更新参数。

这一突破使神经网络能够学习复杂的非线性关系,为后来的深度学习奠定了基础。