神经网络——BP算法

作者: Herbert002 | 来源:发表于2016-05-13 11:10 被阅读18907次

一、BP算法的意义

对于初学者来说,了解了一个算法的重要意义,往往会引起他对算法本身的重视。BP(Back Propagation,后向传播)算法,具有非凡的历史意义和重大的现实意义。

1.1、历史意义

1969年,作为人工神经网络创始人的明斯基(Marrin M insky)和佩珀特(Seymour Papert)合作出版了《感知器》一书,论证了简单的线性感知器功能有限,不能解决如“异或”(XOR )这样的基本问题,而且对多层网络也持悲观态度。这些论点给神经网络研究以沉重的打击,很多科学家纷纷离开这一领域,神经网络的研究走向长达10年的低潮时期。[1]

1974年哈佛大学的Paul Werbos发明BP算法时,正值神经外网络低潮期,并未受到应有的重视。[2]

1983年,加州理工学院的物理学家John Hopfield利用神经网络,在旅行商这个NP完全问题的求解上获得当时最好成绩,引起了轰动[2]。然而,Hopfield的研究成果仍未能指出明斯基等人论点的错误所在,要推动神经网络研究的全面开展必须直接解除对感知器——多层网络算法的疑虑。[1]

真正打破明斯基冰封魔咒的是,David Rumelhart等学者出版的《平行分布处理:认知的微观结构探索》一书。书中完整地提出了BP算法,系统地解决了多层网络中隐单元连接权的学习问题,并在数学上给出了完整的推导。这是神经网络发展史上的里程碑,BP算法迅速走红,掀起了神经网络的第二次高潮。[1,2]

因此,BP算法的历史意义:明确地否定了明斯基等人的错误观点,对神经网络第二次高潮具有决定性意义。

1.2、现实意义

这一点是说BP算法在神经网络领域中的地位和意义。

BP算法是迄今最成功的神经网络学习算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练[2],包括最近炙手可热的深度学习概念下的卷积神经网络(CNNs)。

二、什么是BP算法

2.1、BP神经网络

BP神经网络是这样一种神经网络模型,它是由一个输入层、一个输出层和一个或多个隐层构成,它的激活函数采用sigmoid函数,采用BP算法训练的多层前馈神经网络。

2.2、BP算法基本思想

BP算法全称叫作误差反向传播(error Back Propagation,或者也叫作误差逆传播)算法。其算法基本思想为:在2.1所述的前馈网络中,输入信号经输入层输入,通过隐层计算由输出层输出,输出值与标记值比较,若有误差,将误差反向由输出层向输入层传播,在这个过程中,利用梯度下降算法对神经元权值进行调整。

2.3、BP算法数学工具

BP算法中核心的数学工具就是微积分的链式求导法则

2.4、BP算法的推导[2][3]

[2]

三、BP算法的缺点

3.1、局部极小值问题

BP算法的缺点,首当其冲就是局部极小值问题。

3.2、算法训练非常慢

BP算法本质上是梯度下降,而它所要优化的目标函数又非常复杂,这使得BP算法效率低下。

四、参考

[1]、《BP算法的哲学思考》,成素梅、郝中华著

[2]、《机器学习》,周志华著

[3]、Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现

五、时间线

2016-05-13 第一次发布

2016-06-04 较大幅度修改,完善推导过程,修改文章名

2016-07-23 修改了公式推导中的一个错误,修改了一个表述错误

相关文章

  • (九)神经网络之BP网络

    一. 算法描述 BP网络和感知机一样,是前馈神经网络的代表,不同在于BP网络是一种多层且复杂的神经网络。而BP算法...

  • 姓名:于倩学号:21011210116学院:通信工程学院

    BP神经网络是前馈神经网络的一种,是指用反向传播算法(BP算法)进行训练的多层前馈神经网络,它包括信号的前向传播和...

  • BP神经网络

    目录1.什么是BP神经网络?2.结构和原理 1.什么是BP神经网络? BP神经网络是指误差逆传播算法训练的多层前馈...

  • 基于遗传算法的BP神经网络

    基于遗传算法的BP神经网络 源码地址:https://github.com/Grootzz/GA-BP介绍:利用遗...

  • 浅层学习和深度学习 概念&区别

    浅层学习由于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带...

  • BP神经网络的梳理

    一 BP 神经网络简介 (1)BP神经网络在深度学习的地位 BP神经网络被称为“深度学习之旅的开端”,是神经网络的...

  • 03_深度学习入门_神经网络和反向传播算法

    时间:2018-01-09 魏文应神经网络 反向传播算法(BP算法) 一、说明: 这里转载一篇文章:https:...

  • 2019-07-25 深度学习

    机器学习 - 神经网络 - 深度学习 图像 文本 语音 深度学习算法比机器学习都要好很多bp算法:多层感知器的误差...

  • 神经网络之反向传播(BP)算法代码实现

    反向传播算法实战 本次的反向传播算法是基于上篇文章神经网络之反向传播算法(BP)详细公式推导实现的,如果对反向传播...

  • BP 神经网络算法

    sigmoid函数: x的值可能为[−∞,+∞],为了方便处理,需要将其压缩到一个合理的范围,还需这样的激励函数,...

网友评论

  • Max_7:你好,在第 二 部分最后的结论里,没有理解 为什么 知道了上一层的阈值梯度就可以算出当前层的阈值梯度? 按照第6步的结论,不应该是当前层的阈值梯度由下一层的阈值梯度决定吗?
    Herbert002:@Max_7 我感觉你说的和我说的是一个意思,只是各自的上下层是反的
  • 9b899588c4c3:感觉可以把敏感度的概念加进来
  • f1e452e23700:这里的“阈值”是指“偏置“”?
    Herbert002:@御风游四海 应该是偏置哦,叫啥名貌似不重要,他就在那个位置就起那么个作用,……
  • f1e452e23700:看了几遍也没闹明白你的隐层阈值到底是什么……也从没在别的地方见过这么个东西
  • Babyzpj:不错,学习学习。
  • 篱微:谢谢分享
    Herbert002: @慕云以 如有错误疏漏,还请指正

本文标题:神经网络——BP算法

本文链接:https://www.haomeiwen.com/subject/psnolttx.html