反向传播神经网络(Back propagation neural network ,BPNN)
文章目录
- 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)相关推荐
- Java Back Propagation Neural Network(JAVA反向传播神经网络)
EDITOR: KJ021320 BLOG: http://blog.csdn.net/kj021320 TEAM: I.S.T.O 好久没写东西了,随便记一下~~如果不记录忘记了真是很浪费啊~ 下面 ...
- BP神经网络(Back Propagation Neural Network)Matlab简单实现
BP神经网络(Back Propagation Neural Network)Matlab简单实现 前言 简单了解反向传播(Backwarod Propagation)机制(链式法则) 实例分析 前向 ...
- 反向传播神经网络(BPNN)的实现(Python,附源码及数据集)
文章目录 一.理论基础 1.前向传播 2.反向传播 3.激活函数 4.神经网络结构 二.BP神经网络的实现 1.训练过程(BPNN.py) 2.测试过程(test.py) 3.测试结果 4.参考源码及 ...
- 【机器学习】竞争神经网络(Competitive Neural Network)的python实现
[机器学习]竞争神经网络(Competitive Neural Network)的python实现 一.竞争神经网络原理 1.1.生物学原理 1.2.网络结构与模型训练 二.竞争神经网络的python ...
- 深度学习笔记(四)——循环神经网络(Recurrent Neural Network, RNN)
目录 一.RNN简介 (一).简介 (二).RNN处理任务示例--以NER为例 二.模型提出 (一).基本RNN结构 (二).RNN展开结构 三.RNN的结构变化 (一).N to N结构RNN模型 ...
- 【李宏毅机器学习笔记】 23、循环神经网络(Recurrent Neural Network,RNN)
[李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...
- 反向传播神经网络 demo源码
反向传播神经网络(有代码) 找了很多资料,觉得就这篇博客讲的最好,原文如下,有非常详细的推导过程.http://www.hankcs.com/ml/back-propagation-neural-ne ...
- 花书+吴恩达深度学习(三)反向传播算法 Back Propagation
目录 0. 前言 1. 从 Logistic Regression 中理解反向传播 2. 两层神经网络中单个样本的反向传播 3. 两层神经网络中多个样本的反向传播 如果这篇文章对你有一点小小的帮助,请 ...
- 前向传播算法(Forward propagation)与反向传播算法(Back propagation)
虽然学深度学习有一段时间了,但是对于一些算法的具体实现还是模糊不清,用了很久也不是很了解.因此特意先对深度学习中的相关基础概念做一下总结.先看看前向传播算法(Forward propagation)与 ...
- 图片1---前馈神经网络+反向传播神经网络
声明: 记录自己认为好的图片------以方便后续的使用或者是改进 来源论文: <一种金融市场预测的深度学习模型: FEPA> (1)前馈神经网络 (2)反向传播神经网络的大致的架构- ...
最新文章
- 图片出处识别_图片模糊怎么变清晰?方法都在这里了
- SpringMVC:学习笔记(5)——数据绑定及表单标签
- snmp在企业网中的简单应用
- JAVA 编程-张晨光-专题视频课程
- matlab常用函数——方程函数
- c#操作html dom元素,C#获取与修改HTML DOM元素信息
- 2020 ICPC 济南 F. Gcd Product
- ADN中国团队參加微软的Kinect全国大赛获得三等奖
- RQNOJ36 数石子 并查集 简单应用
- linux下源码安装apache服务
- Tcl Tutorial 笔记5 ·switch
- 二分法查找——C++代码
- NYOJ31 5个数求最值
- 十二款常用摄影软件,大部分人只用过十种!
- 数字信号处理-基础一
- mysql中date类型_MySql的日期类型datetime和timestamp
- EF系列(一)——深入框架底层
- 使用TLS和Mosquitto Broker实现安全通信之密钥和证书生成
- 抖音运营规则讲解系列(4):涉嫌药物,刀具器械被封丨国仁网络
- 汽车产业链SCP分析框架-湖北
热门文章
- iOS人脸识别 用苹果api<AVFoundation/AVFoundation.h>
- iOS简单人脸检测的实现
- 多多云手机多少钱一月_多多云手机一机分身千变万化 高亢性能体验更加流畅...
- 服务器IO测试(Iozone使用)
- 常见反爬虫方法及其应对策略
- RT-Thread libmodbus RS485 RTU主机调试 - STM32F107VCT6
- 网站被黑提醒该站点可能受到黑客攻击,部分页面已被非法篡改
- 微信公众号开发框架讲解
- 计算机网络(第六版)
- java programer认证_关于考SUNJAVAPROGRAMMER的几点建议