神经网络技术的核心:反向传播算法(BP算法)

人工智能
如果说神经网络模型的设计是神经网络的核心,那么反向传播算法就是神经网络模型的核心。

在前面的文章中介绍训练一个模型,其主要区别就在于神经网络模型的架构;但可能很多人并不知道神经网络模型的核心算法就是——反向传播算法,也被叫做BP算法。

可能很多人都听说过反向传播算法,但可能很多人都没意识到反向传播算法对神经网络的重要性;可以说现在的神经网络模型就建立在反向传播算法之上,没有反向传播算法就没有神经网络的存在。

反向传播(BP)算法

了解过人工智能发展史的人应该都知道,人工智能技术并不是最近才出现的新技术;在世界上第一台计算机出现之后的十年,人工智能的概念就已经被提出来了,但人工智能技术的发展却是最近几年才爆火的。

但在爆火之前,人工智能技术已经经过了几十年的发展;而且人工智能技术的发展也有几个流派,也经过了几次大起大落。

特别是以仿生学为基础的神经网络模型,经过几次大起大落才走到了今天这个地步。

神经网络模型的提出是基于神经元模型的提出,在1943年,心理学家McCulloch和数学家Pitts参考了生物神经元的结构;发表了抽象的神经元模型MP。而在1958年,计算科学家Rosenblatt提出了由单层神经元组成的神经网络——感知机,也就是世界上第一个神经网络模型。

但受限于当时的技术与理论,感知机只能解决最简单的线性分类任务;对异或这种简单的分类任务都无法解决,再加上受限于当时的计算能力,导致神经网络发展被搁置,这也使得神经网络模型的研究进入了一个冰河时期。

在1969年发现单层神经网络无法解决异或问题之后,又过了大概十年左右;由两层神经网络构成的多层感知机被提了出来;当神经网络增加一层之后,不但能够解决异或问题,而且还拥有非常好的非线性分类效果。

但多层感知机存在的一个主要问题还是计算问题,在多层感知机提出来时并没有一个很好的解决方案;直到1986年,Rumelhar和Hinton等人提出了反向传播算法(Backpropagation,BP算法);才解决了两层神经网络所需要的复杂计算量问题。

而反向传播算法的启示是数学中的链式反则。

在此需要说明的是,尽管早期神经网络的研究人员努力从生物学中得到启发,但从BP算法开始,研究者们更多地从数学上寻求问题的最优解。不再盲目模拟人脑网络是神经网络研究走向成熟的标志。正如科学家们可以从鸟类的飞行中得到启发,但没有必要一定要完全模拟鸟类的飞行方式,也能制造可以飞天的飞机。

而后神经网络模型的发展又经过几次摧残,比如支持向量机的产生(SVM);尽管使用了BP算法,一次神经网络的训练仍然耗时太久,而且困扰训练优化的一个问题就是局部最优解问题,这使得神经网络的优化较为困难。同时,隐藏层的节点数需要调参,这使得使用不太方便,工程和研究人员对此多有抱怨。

多层神经网络——深度学习

2006年,Hinton在《Science》和相关期刊上发表了论文,首次提出了“深度信念网络”的概念。与传统的训练方式不同,“深度信念网络”有一个“预训练”(pre-training)的过程,这可以方便的让神经网络中的权值找到一个接近最优解的值,之后再使用“微调”(fine-tuning)技术来对整个网络进行优化训练。这两个技术的运用大幅度减少了训练多层神经网络的时间。他给多层神经网络相关的学习方法赋予了一个新名词--“深度学习”。

由此,深度学习技术发展进入快车道,快速应用于图像处理,自然语言处理等领域;而后到谷歌工程师提出了Transformer架构,以及openAI基于Transformer架构开发了chatGPT聊天机器人神经网络模型。

在人脑的神经网络中,不同神经元之间的信号是实时传递和变化的;因此,反向传播算法就是计算不同神经网络层神经元的信号值;因此,也就解决了神经网络最核心的问题。

责任编辑:赵宁宁 来源: AI探索时代
相关推荐

2018-08-30 09:15:42

人工智能神经网络深度学习

2020-08-20 07:00:00

深度学习人工智能技术

2017-09-28 16:15:12

神经网络训练多层

2017-05-31 13:23:41

神经网络深度学习

2018-08-03 16:00:09

人工智能神经网络高级算法

2015-09-11 09:27:21

神经网络发明

2017-07-06 17:03:45

BP算法Python神经网络

2017-11-30 18:05:18

2020-09-09 10:20:48

GraphSAGE神经网络人工智能

2017-09-08 15:36:15

DNN神经网络算法

2022-06-16 10:29:33

神经网络图像分类算法

2024-10-17 13:05:35

神经网络算法机器学习深度学习

2024-09-12 08:28:32

2024-10-28 00:38:10

2024-11-15 13:20:02

2025-02-21 08:29:07

2024-09-20 07:36:12

2024-12-12 00:29:03

2022-02-15 23:38:22

Python机器学习算法

2024-08-22 08:21:10

算法神经网络参数
点赞
收藏

51CTO技术栈公众号