论文学习:BP神经网络
最近在学习 Long Short-Term Memery (LSTM)[1], 文献中指出:通过递归反向传播算法学习在长时间间隔内存储信息需要花费很长的时间,这主要是由于不足、衰减的误差反向流造成的(Learning to store information over extended time intervals via recurrent backpropagation takes a very long time, mostly due to insufficient, decaying error back flow.)。故先了解一下反向传播算法。
一、原理
BP (back propagation)神经网络是1986年由 Rumelhart 和 McClelland 为首的科学家提出的概念,是一种按照误差反向传播算法训练的多层前馈神经网络(如图1),是应用最广泛的神经网络。
人工神经网络无需事先确定输入输出之间映射关系的数学方程(也就是连接权重 ),仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果。作为一种智能信息处理系统,人工神经网络实现其功能的核心是算法。BP 神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为 BP 算法,它的基本思想是梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均方误差(mean squared error)为最小。
基本 BP 算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向进行,而调整权值和阈值则从输出到输入的方向进行。正向传播时,输入信号通过隐含层作用于输出节点,经过非线性变换,产生输出信号,若实际输出与期望输出不相符,则转入误差的反向传播过程。误差反向传播是将输出误差通过隐含层向输入层逐层反向传播,并将误差分摊给各层所有单元,以从各层获得的误差信号作为调整各单元权值的依据。通过调整输入节点与隐层节点的联接强度和隐层节点与输出节点的联接强度以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息[2]。
二、详述
(一)信号的前向传播
图2 [3]以输入层 Input units(3个节点)、隐藏层 Hidden units H1(4个节点)、隐藏层 Hidden units H2(3个节点)和输出层 Output units(2个节点)为例,展示了信息的前向传播。
①Hidden units H1 的输入 和激活 是:
其中, 是输入单元 到隐藏层 的权重矩阵, 是可微函数。
②Hidden units H2 的输入 和激活 是:
③同理,得到输出层 的输出 ,到此为止信息的前向传播已经完成。
(二)误差的反向传播
误差的反向传播是将输出误差通过隐含层向输入层逐层反向传播,并将误差分摊给各层所有单元,以从各层获得的误差信号作为调整各单元权值的依据。简单地讲就是,我们要根据每个节点对输出误差的“贡献度”,来分摊误差(贡献度高的自然就要“承担“更重的责任),并借助于随机梯度下降(SDG)方法来重新调整权重。
此处需要补充随机梯度下降(SDG)!!!
继图2 给出的信息的前向传播模型,我们这里据需给出误差的反向传播模型,如图3 。
首先我们得清楚一点,就是神经网络中每个节点的处理逻辑(以 Hidden units H1 为例,如图2 所示):用可微函数 对 激活后得到 。所以我们在误差反向分析过程中,需要明确传播顺序。下面分别通过输出层和隐藏层为例,说明误差传播逻辑。
(1)输出层
使用均方误差来表述输出层的误差 :
①将误差分摊到输出节点 的输出 上:
②将误差分摊到输出节点 的输入 上:
③将误差分摊到权重 上:
(2)隐藏层
①将误差分摊到隐藏节点 的输出 上:
②其他同输出层方程相似。
三、示例
这里通过一个简单的神经网络(图4 )对 BP 进行演示。该模型对输入 进行二分类,输出 。
输入 ,目标输出 。初始化权重,令 , ,偏项 。
(一)FP过程
①计算隐藏层
②计算输出层
③均方误差
(二)BP过程
这里我们以更新权重 为例,简述 BP 过程。
①计算 的均方误差
②对 求偏导
③对 更新
同理,对其他权重进行修改,循环上诉过程,直到输出值接近真值。
[1] Hochreiter, S, Schmidhuber, J. Long Short-Term Memory[J]. Neural Computation, 9(8):1735-1780.
[2] https://baike.baidu.com/item/BP神经网络
[3] Lecun Y, Bengio Y, Hinton G. Deep learning.[J]. 2015, 521(7553):436.
论文学习:BP神经网络相关推荐
- bp神经网络数学建模论文,关于bp神经网络的论文
1.第一篇提出BP神经网络的论文是哪一篇? 最初是86年,Rumelhart和McCelland领导的科学家小组在<平行分布式处理>一书中,对具有非线性连续变换函数的多层感知器的误差反向传 ...
- 深度学习—BP神经网络
感知机 感知机(perceptron)是神经网络的基础结构,是学习神经网络,深度学习的基础. 感知机接收多个输入信号, 输出一个信号. 这里所说的"信号"可以想象成电流或河 流那样 ...
- 深度学习-BP神经网络
BP神经网络 补充知识-感知机 输入多个值,流入神经元,输出一个或多个值 模型1 模型2 BP神经网络 是一种按照误差逆向传播算法训练的多层前馈神经网络 BP神经网络的核心由正向传播和误差的反向传播两 ...
- 深度学习-BP神经网络(python3代码实现)
BP神经网络 哈尔滨工程大学-537 一.试验数据 在试验开始前必定要先导入所需要的python库,%matplotlib inline是为了使绘制的图形能够显示在浏览器上. import numpy ...
- bp神经网络应用实例_人工智能BP神经网络学习神器——AISPACE
未经许可请勿转载 更多数据分析内容参看这里 今天我们来介绍一套小工具--AISPACE,它有助于你学习BP神经网络运作的过程及原理.AISPACE涉及的一系列工具用于学习和探索人工智能的概念,它们是在 ...
- 基于遗传算法的BP神经网络的股票预测模型_matlab实现
文章目录 摘要 bp神经网络 遗传算法 实验结果与分析 完整代码下载: 摘要 在目前的股票投资市场,不少自然人股民的投资主要方式使根据对当天或者一个较长周期对股票数据的预测,来得到下一天的股票数据,从 ...
- matlab BP神经网络 newff函数官方源码
最近在学习BP神经网络,想要自定义神经网络内部,但是网上找了很久都没有找到源代码,于是自己去搬运了一波matlab官方的源代码. 不多说,直接上代码,未编辑过的源码: function out1 = ...
- 菜鸟的BP神经网络入门
说明 本人在数学建模的时候接触过一点关于神经网络入门的知识,这是自己曾经做过的一个关于神经网络入门的的ppt,该ppt主要有3部分,神经网络入门.bp神经网络的数学原理以及bp神经网络案例.耐心看完保 ...
- bp 神经网络 优点 不足_深度学习之BP神经网络--Stata和R同步实现(附Stata数据和代码)
说明:本文原发于"计量经济圈"公众号,在此仅展示Stata的部分.R部分请移步至本人主页的"R语言与机器学习--经济学视角"专栏,或点击下方链接卡跳转. 盲区行 ...
最新文章
- 独家|测量、建议、快速上手!你所使用的Python对象占用了多少内存?(附代码)...
- 玩转服务器(华为云)—环境安装(jdk安装,tomcat安装)
- C++IO流,istream status(状态位),cout,cin,if(非fs)/while(cin)【C++IO流】(58)
- Matlab | Matlab从入门到放弃(9)——浮点数取整
- 一、华为云ModelArts环配置
- Javascript Throttle Debounce
- java 接口与包_java常用类包接口
- 23种设计模式(7)-代理模式
- 马来亚大学 计算机科学 排名,顶级名校,马来亚大学申请解析!
- 绝地求生服务器维护6.28,绝地求生6月28号更新完怎么进不去 绝地求生更新维护到几点6.28...
- 在vue中实现picker样式_vue mint-ui学习笔记之picker的使用
- mysql 雷同数值连续出现次数_MySql中关于某列中相同数值连续出现次数的统计
- ubuntu 设置静态路由_ubuntu 配置静态路由
- 书签collection
- linux 配置 NTP 服务器
- matlab 插值出错,MATLAB插值问题
- Windows server 2008 密码策略不能修改的解决办法
- 安防摄像头无法接入国标GB28181视频平台EasyGBS问题排查与解决方案
- 物体检测及分类方法总结(提供了很多论文和代码链接)
- 阿里云通过链接下载附件