本篇文章主要根据《神经网络与机器学习》和《人工神经网络原理》两本书,对 BP 神经网络的数学推导过程做了一个总结,为自己进入深度学习打下一个基础。

一、 人工神经网络

1.人工神经网络简介

人工神经网络(ANN)是一种旨在模仿人脑结构及其功能的由多个非常简单的处理单元彼此按某种方式相互连接而形成的计算机系统,该系统靠其状态对外部输入信息的动态响应来处理信息 。

神经元由细胞及其发出的许多突起构成。细胞体内有细胞核,突触的作用是传递信息。作为引入输入信号的若干个突起称为“树突”,而作为输出端的突起只有一个称为“轴突” 。

2.神经元M-P模型

所谓M-P模型,其实是按照生物神经元的结构和工作原理构造出来的一个抽象和简化了的模型。

对于第jj个神经元作用的加权值。

神经元的“净输入”用IjIj取+1 输出,反之为-1输出 。如果考虑输出与输入的延时作用,表达式可修正为:

3.ANN的基本要素

  • 神经元激活函数
  • 网络的学习
  • 神经元之间的连接形式

(1)常用激活函数

(2)常用学习规则

  • Hebb规则
  • 误差修正法学习算法 (如:BP算法)
  • 胜者为王(Winner-Take-All)学习规则

(3)神经元之间连接方式
<1>前缀网络

<2>反馈网络

> 注:BP 神经网络属于前缀网络

二、 BP 神经网络原理

BP(Back Propagation)神经网络的学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经隐层逐层处理后,传向输出层。若输出层的实际输出与期望输出不符,则转向误差的反向传播阶段。误差的反向传播是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。BP网络由输入层﹑输出层和隐层组成,N1N1为输出层,其余为隐层。BP 神经网络的结构如下:

这里介绍三层神经网络的推导(一个输入层、一个隐层和一个输出层)

BP 神经网络反向传播算法的神经元示意图图一

上图描绘了神经元jj。

1.前向传播过程推导

图一中,在神经元jj 的输入)是:

ϕjϕj是:

2.误差反向传播过程推导

在图一中,yj(n)yj(n)的输出所产生的误差信号定义为:


其中,dj(n)dj(n)个元素。

为了使函数连续可导,这里最小化均方根差,定义神经元jj的瞬时误差能量为:

将所有输出层神经元的误差能量相加,得到整个网络的全部瞬时误差能量

其中,集合C 包括输出层的所有神经元。

BP 算法通过反复修正权值使式(2-5)EnEn在权值空间的搜索方向。

在式(2-5)两边对ej(n)ej(n)取微分,得到:

在式(2-3)两边对yj(n)yj(n)取微分,得到:

在式(2-2)两边对vj(n)vj(n)取微分,得到:

最后在式(2-1)两边对wji(n)wji(n)取微分,得到:

将式(2-7)——(2-10)带入式(2-6)得:

应用于wji(n)wji(n)定义为:

其中,ηη是误差反向传播的学习率, 负号表示在权空间中梯度下降

将式(2-11)带入式(2-12)得:

其中,δj(n)δj(n)是根据delta法则定义的局部梯度:

局部梯度指明了突触权值所需要的变化。

现在来考虑神经元jj所处的层。

(1) 神经元jj是输出层节点

当神经元jj为:

(2) 神经元jj是隐层节点

当神经元jj根据式(2-14)重新定义为:

来看图二:它表示输出层神经元kk表示输出层神经元

图二中,网络的全部瞬时误差能量为:

在式(2-17)两边对函数信号yj(n)yj(n)求偏导,得到:

在图二中:

因此,

图二中,对于输出层神经元kk ,其诱导局部域是:

求式(2-21)对yj(n)yj(n)的微分得到:

将式(2-20)和(2-22)带入到式(2-18)得到:

将式(2-23)带入式(2-16)得隐层神经元jj为:

反向传播过程推导总结

因此,结合式(2-13)、(2-15)和(2-24),由神经元ii按照delta法则定义如下:

其中:

  • 神经元jj与权值加权和的乘积,见式(2-24)。

3.标准BP神经网络设计原则

(1)激活函数
单极性S型函数和双曲正切S型函数
(2)学习率
0<η<10<η<1 或

隐层节点数=(输入节点数∗输出节点数)−−−−−−−−−−−−√(输入节点数∗输出节点数)

4.标准BP算法训练过程及流程图

(1)训练过程

  1. 初始化网络的突触权值和阈值矩阵;

  2. 训练样本的呈现;

  3. 前向传播计算;

  4. 误差反向传播计算并更新权值;

  5. 迭代,用新的样本进行步骤3和4,直至满足停止准则。

(2)流程图

5.标准BP算法分析

由于标准 BP 算法采用的是梯度下降法,BP 算法的 E-w 曲线图如下:

因此标准 BP 算法具有以下缺陷

  1. 在误差曲面上有些区域平坦,此时误差对权值的变化不敏感,误差下降缓慢,调整时间长,影响收敛速度。
  2. 存在多个极小点,梯度下降法容易陷入极小点而无法得到全局最优解。
  3. 学习率ηη越大,虽然学习速度加快,却容易使权值的变化量不稳定,出现振荡。

6.标准BP算法改进方法

(1)增加动量项
一个既要加快学习速度又要保持稳定的方法是修改式(2-13),增加动量项,表示为:

这里αα<1。

动量项αΔwji(n−1)α∆wji(n−1)≠0,使其跳出局部极小区域,加快迭代收敛速度。

(2)其他改进方法

  • 可变学习速度的反向传播
  • 学习速率的自适应调节
  • 引入陡度因子——防止饱和
  • 共轭梯度法、拟牛顿法等

BP 神经网络算法原理相关推荐

  1. 人工神经网络与bp神经网络,BP神经网络算法原理

    BP神经网络原理 人工神经网络有很多模型,但是日前应用最广.基本思想最直观.最容易被理解的是多层前馈神经网络及误差逆传播学习算法(ErrorBack-Prooaeation),简称为BP网络. 在19 ...

  2. 4.1 神经网络算法原理

    神经网络算法介绍: https://blog.csdn.net/qq_37406130/article/details/79157025 AI从入门到放弃:BP神经网络算法推导及代码实现笔记: htt ...

  3. 基于BP神经网络算法的性别识别

    目录 基于 BP 神经网络算法的性别识别 1 目录 1 1.背景介绍 2 2. OpenCV 的介绍 3 3.安装 OpenCV 4 4. BP 神经网络算法介绍和实践 4 4.1 BP 神经网络结构 ...

  4. bp神经网络权值调整公式,bp神经网络算法推导

    神经网络BP模型 一.BP模型概述误差逆传播(ErrorBack-Propagation)神经网络模型简称为BP(Back-Propagation)网络模型. PallWerbas博士于1974年在他 ...

  5. 数学建模算法与应用【BP神经网络算法】

    评价预测和分类问题可以用到神经网络.卷积神经网络适合大样本的情况,深度学习包括很多种网络,如卷积神经网络,对抗网络等,深度学习大小样本皆可. 人工神经网络ANN 在机器学习和认知科学领域,人工神经网络 ...

  6. BP神经网络算法基本原理,bp神经网络实例分析

    BP人工神经网络方法 (一)方法原理人工神经网络是由大量的类似人脑神经元的简单处理单元广泛地相互连接而成的复杂的网络系统.理论和实践表明,在信息处理方面,神经网络方法比传统模式识别方法更具有优势. 人 ...

  7. 神经网络算法原理图解,神经网络算法原理图集

    神经网络算法原理 一共有四种算法及原理,如下所示:1.自适应谐振理论(ART)网络自适应谐振理论(ART)网络具有不同的方案.一个ART-1网络含有两层一个输入层和一个输出层. 这两层完全互连,该连接 ...

  8. BP神经网络理解原理——用Python编程实现识别手写数字(翻译英文文献)

    BP神经网络理解原理--用Python编程实现识别手写数字   备注,这里可以用这个方法在csdn中编辑公式: https://www.zybuluo.com/codeep/note/163962 一 ...

  9. 深度学习之 神经网络算法原理

    深度学习之 神经网络算法原理 什么是神经网络算法? 初中映射 神经网络 求映射? 求解参数 图解求参 参考文献 什么是神经网络算法? 初中映射 初中的时候 y = f(x) 老师进过 映射 . 通过 ...

  10. 神经网络算法实例说明,简单神经网络算法原理

    神经网络算法实例说明有哪些? 在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能.构作专家系统.制成机器人.复杂系统控制等等. 纵观当代新兴科学技 ...

最新文章

  1. 第七篇:并发-恢复机制
  2. golang修改结构体中的切片值
  3. SpringBoot+AntV实现一次前后端交互渲染多个饼状图
  4. scala java maven项目_IntelliJ IDEA下Maven创建Scala项目的方法步骤
  5. 使用Java 8流遍历递归数据结构
  6. Tornado 高并发源码分析之六---异步编程的几种实现方式
  7. 抱歉(HDU-1418)
  8. hdu6110:路径交
  9. JDK中AbstractQueuedSynchronizer应用解析
  10. CB Insights,201608月174家独角兽榜单出炉,上榜的33家中国公司都是谁?
  11. 背包问题2 (lintcode)
  12. FIT2CLOUD飞致云被权威研究机构评选为中国混合云管理软件领导者
  13. ListView刷新单条item实现方法
  14. FPGA写约束文件+固化+上板抓信号方法(vivado软件)
  15. java中poi搜索工程_爬取高德地图poi数据
  16. 《算法竞赛入门经典》(第二版)代码及详细解释(持续更新!)
  17. 生成HTTPS协议需要的SSL证书
  18. 5G标准中文版核心网:5G的系统构架!
  19. 一大波好看的国产漫画来袭,在线动漫迷们做好准备了吗?
  20. 中国商用显示行业“十四五”前景规划及发展方向分析报告2022-2027年版

热门文章

  1. dh算法 理论依据_DH算法
  2. 信息安全实验——使用john软件破解Windows密码
  3. 三层交换机LLDP协议对 L2/L3端口,报文处理实验
  4. Opencv 移植 (亲测有效)
  5. PDF破解FileOpenPlugin加密的方法
  6. C题:无线充电电动小车(本科)--2018年TI杯大学生电子设计竞赛
  7. 奥维 html api,【教程】在奥维中,个人如何申请天地图API秘钥(手机端操作)
  8. (已更新)短视频去水印解析客户端小程序源代码
  9. 升余弦滤波器与无码间串扰(二)
  10. houdini 体积