文章目录

  • BPNN
  • 前向传播
  • 反向传播
  • 总结
  • 参考

BPNN

BPNN被认为是最常用的预测方法,BPNN模型的一般结构如下图所示,它由输入层、隐层和输出层三层组成,其中隐层在输入层和输出层之间传递着重要的信息。

BPNN总是由一个或多个隐藏层组成,从而允许网络对复杂功能进行建模。它主要由两个过程组成:正向信息传播和误差反向传播。这三层之间的数学关系可以表示如下:
输入层到隐层:

隐层到输出层:

其中:ym和yj分别表示输入层和隐藏层的输入;yt表示点t的预测值;μjm和λoj表示输出层和隐藏层的网络权重;μj和λo是隐藏层和输出层的阈值;n和I是输入层和隐藏层的节点数;fI和fo分别表示隐藏层和输出层的激活函数。在大多数情况下,通常使用逻辑函数和双曲线函数作为隐含层激活函数fI,而经常使用线性函数作为输出层激活函数fo。

前向传播

先讲前向传播,输入a[l-1],输出是a[l],缓存为z[l];从实现的角度来说我们可以缓存下w[l]和ܾb[l],这样更容易在不同的环节中调用函数。

前向传播的步骤可以写成:


向量化实现过程可以写成:



前向传播需要输入A[0]也就是X来初始化;初始化的是第一层的输入值。a[0]对应于一个训练样本的输入特征,而A[0]对应于一整个训练样本的输入特征,所以这就是这条链的第 一个前向函数的输入,重复这个步骤就可以从左到右计算前向传播。

反向传播

输入为da[l],输出为da[l-1],dw[l],db[l]

反向传播的步骤可以写成:

式子(5)由式子(4)带入式子(1)得到,前四个式子就可实现反向函数。

向量化实现过程可以写成:

总结


第一层你可能有一个 ReLU 激活函数,第二层为另一个 ReLU 激活函数,第三层可能是 sigmoid 函数(如果你做二分类的话),输出值用来计算损失;这样你就可以向后迭代进行反向传播求导来求݀dw[3],db[3],db[2],dw[1],db[1]。在计算的时候,缓存 会把z[1],z[2],z[3]传递过来,然后回传da[2],da[1],可以用来计算݀da[0],但我们不会使用它, 这里讲述了一个三层网络的前向和反向传播,还有一个细节没讲就是前向递归——用输入数据来初始化,那么反向递归(使用 Logistic 回归做二分类)——对A[l]求导。

参考

[1] : https://mooc.study.163.com/learn/2001281002?tid=2403023003&trace_c_p_k2=cba2f3cdbf824d1a82adad4a5b87cbb5#/learn/content?type=detail&id=2403362520&cid=2403380428
[2] : Xuefan Dong, Ying Lian, Yijun Liu . Small and multi-peak nonlinear time series forecasting using a hybrid back propagation neural network [J].Information Sciences 424 (2018) 39–54

反向传播神经网络(Back propagation neural network ,BPNN)相关推荐

  1. Java Back Propagation Neural Network(JAVA反向传播神经网络)

    EDITOR: KJ021320 BLOG: http://blog.csdn.net/kj021320 TEAM: I.S.T.O 好久没写东西了,随便记一下~~如果不记录忘记了真是很浪费啊~ 下面 ...

  2. BP神经网络(Back Propagation Neural Network)Matlab简单实现

    BP神经网络(Back Propagation Neural Network)Matlab简单实现 前言 简单了解反向传播(Backwarod Propagation)机制(链式法则) 实例分析 前向 ...

  3. 反向传播神经网络(BPNN)的实现(Python,附源码及数据集)

    文章目录 一.理论基础 1.前向传播 2.反向传播 3.激活函数 4.神经网络结构 二.BP神经网络的实现 1.训练过程(BPNN.py) 2.测试过程(test.py) 3.测试结果 4.参考源码及 ...

  4. 【机器学习】竞争神经网络(Competitive Neural Network)的python实现

    [机器学习]竞争神经网络(Competitive Neural Network)的python实现 一.竞争神经网络原理 1.1.生物学原理 1.2.网络结构与模型训练 二.竞争神经网络的python ...

  5. 深度学习笔记(四)——循环神经网络(Recurrent Neural Network, RNN)

    目录 一.RNN简介 (一).简介 (二).RNN处理任务示例--以NER为例 二.模型提出 (一).基本RNN结构 (二).RNN展开结构 三.RNN的结构变化 (一).N to N结构RNN模型 ...

  6. 【李宏毅机器学习笔记】 23、循环神经网络(Recurrent Neural Network,RNN)

    [李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...

  7. 反向传播神经网络 demo源码

    反向传播神经网络(有代码) 找了很多资料,觉得就这篇博客讲的最好,原文如下,有非常详细的推导过程.http://www.hankcs.com/ml/back-propagation-neural-ne ...

  8. 花书+吴恩达深度学习(三)反向传播算法 Back Propagation

    目录 0. 前言 1. 从 Logistic Regression 中理解反向传播 2. 两层神经网络中单个样本的反向传播 3. 两层神经网络中多个样本的反向传播 如果这篇文章对你有一点小小的帮助,请 ...

  9. 前向传播算法(Forward propagation)与反向传播算法(Back propagation)

    虽然学深度学习有一段时间了,但是对于一些算法的具体实现还是模糊不清,用了很久也不是很了解.因此特意先对深度学习中的相关基础概念做一下总结.先看看前向传播算法(Forward propagation)与 ...

  10. 图片1---前馈神经网络+反向传播神经网络

    声明:  记录自己认为好的图片------以方便后续的使用或者是改进 来源论文:  <一种金融市场预测的深度学习模型: FEPA> (1)前馈神经网络 (2)反向传播神经网络的大致的架构- ...

最新文章

  1. 图片出处识别_图片模糊怎么变清晰?方法都在这里了
  2. SpringMVC:学习笔记(5)——数据绑定及表单标签
  3. snmp在企业网中的简单应用
  4. JAVA 编程-张晨光-专题视频课程
  5. matlab常用函数——方程函数
  6. c#操作html dom元素,C#获取与修改HTML DOM元素信息
  7. 2020 ICPC 济南 F. Gcd Product
  8. ADN中国团队參加微软的Kinect全国大赛获得三等奖
  9. RQNOJ36 数石子 并查集 简单应用
  10. linux下源码安装apache服务
  11. Tcl Tutorial 笔记5 ·switch
  12. 二分法查找——C++代码
  13. NYOJ31 5个数求最值
  14. 十二款常用摄影软件,大部分人只用过十种!
  15. 数字信号处理-基础一
  16. mysql中date类型_MySql的日期类型datetime和timestamp
  17. EF系列(一)——深入框架底层
  18. 使用TLS和Mosquitto Broker实现安全通信之密钥和证书生成
  19. 抖音运营规则讲解系列(4):涉嫌药物,刀具器械被封丨国仁网络
  20. 汽车产业链SCP分析框架-湖北

热门文章

  1. iOS人脸识别 用苹果api<AVFoundation/AVFoundation.h>
  2. iOS简单人脸检测的实现
  3. 多多云手机多少钱一月_多多云手机一机分身千变万化 高亢性能体验更加流畅...
  4. 服务器IO测试(Iozone使用)
  5. 常见反爬虫方法及其应对策略
  6. RT-Thread libmodbus RS485 RTU主机调试 - STM32F107VCT6
  7. 网站被黑提醒该站点可能受到黑客攻击,部分页面已被非法篡改
  8. 微信公众号开发框架讲解
  9. 计算机网络(第六版)
  10. java programer认证_关于考SUNJAVAPROGRAMMER的几点建议