神经网络与机器学习 笔记—反向传播算法(BP)
先看下面信号流图,L=2和M0=M1=M2=M3=3的情况,上面是前向通过,下面部分是反向通过。
1.初始化。假设没有先验知识可用,可以以一个一致分布来随机的挑选突触权值和阈值,这个分布选择为均值等于0的均匀分布,它的方差选择应该使得神经元的诱导局部域的标准偏差位于sigmoid激活函数的线行部分与饱和部分过渡处。
(1)训练样本的呈现。呈现训练样本的一个回合给网络。对训练集中以某种形式排序的每个样本,一次进行下面的第3点和第4点中所描述的前向和反向计算。
(2)前向计算。在该回合中设一个训练样本是(x(n),d(n)),输入向量x(n)作用于感知节点的输入层,期望响应向量d(n)指向计算节点的输出层。不断经由网络一层一层第前进,可以计算网络的诱导局部域和函数信号。在层L的神经元j的诱导局部域为:
这里η为学习率参数,α为动态常数。
迭代。通过呈现新的一回合样本给网络并根据第3和第4进行前向和反向迭代计算,知道满足停止准则。
注意:训练样本的呈现顺序从一个回合到另一个回合必须是随机的。动量和学习率参数随着训练迭代次数的增加而调整(通常是减少的)。
3.学习率和动量问题。反向传播算法(BP)提供使用最速下降方法在权空间计算得到的轨迹的一种近似。使用的学习率参数η越小,从一次迭代带下一次迭代的网络突触权值的变化量就越小,轨迹在权值空间就越光滑。然而,这种改进是以减慢学习速度为代价的。另一方面,如果让η的值太大以加快学习速度的话,结果有可能是网络突触权值不稳定。一个既要加快学习速度又要保持稳定的简单方法是修改
这里α是动量常数,通常是正数。他控制围绕Δwji(n)的反馈环路如下图(z-1表示单位时间延迟操作符)
- 欲使时间序列收敛,动量常数必须限制在0<=|α|<1 范围内。当α等于0时,反向传播算法运行起来没有动量。虽然在实际中动量常数α不大可能是负的,但是它还是可正可负。
- 在反向传播(BP)算法中包含动量趋于在稳定的下降方向上加速下降。
- 在反向传播算法中包含动量具有符号正负摆动方向的稳定效果。
- 动量向一定程度上可以防止学习过程停止在误差曲面上的局部最小值。
在反向传播算法的应用中可以选择使所有突触权值都是可调整的,或者在自适应过程中可能限制网络中某些权值使其保持固定。对于后者,误差信号是以通常的方式通过网络反向传播的;然而,固定的突触权值是不改变的。这一点可以简单通过使突触权值的学习率参数等于0来做到。
4.停止准则。通常,不能证明反向传播算法是收敛的,并且没有明确定义的算法停止准则。相反,仅有一些合理的准则,它们每个都有自己的实际用处,这些准则可用于终止权值的调整。
- 当梯度向量的欧几里得范数达到一个充分小的帝都阈值时,我们认为反向传播算法已经收敛。
- 当每一回合的均方误差变化的绝对速率足够小时,我们认为反向传播算法已经收敛。
神经网络与机器学习 笔记—反向传播算法(BP)的更多相关文章
- 深度神经网络(DNN)反向传播算法(BP)
在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向 ...
- 【机器学习】反向传播算法 BP
知识回顾 1:首先引入一些便于稍后讨论的新标记方法: 假设神经网络的训练样本有m个,每个包含一组输入x和一组输出信号y,L表示神经网络的层数,S表示每层输入的神经元的个数,SL代表最后一层中处理的单元 ...
- Deep Learning 学习笔记(7):神经网络的求解 与 反向传播算法(Back Propagation)
反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能 ...
- 深度学习——深度神经网络(DNN)反向传播算法
深度神经网络(Deep Neural Networks,简称DNN)是深度学习的基础. 回顾监督学习的一般性问题.假设我们有$m$个训练样本$\{(x_1, y_1), (x_2, y_2), …, ...
- 100天搞定机器学习|day38 反向传播算法推导
往期回顾 100天搞定机器学习|(Day1-36) 100天搞定机器学习|Day37无公式理解反向传播算法之精髓 上集我们学习了反向传播算法的原理,今天我们深入讲解其中的微积分理论,展示在机器学习中, ...
- 卷积神经网络(CNN)反向传播算法
在卷积神经网络(CNN)前向传播算法中,我们对CNN的前向传播算法做了总结,基于CNN前向传播算法的基础,我们下面就对CNN的反向传播算法做一个总结.在阅读本文前,建议先研究DNN的反向传播算法:深度 ...
- 神经网络反向传播算法&&卷积神经网络
听一遍课程之后,我并不太明白这个算法的奇妙之处?? 为啥? 神经网络反向传播算法 神经网络的训练依靠反向传播算法,最开始输入层输入特征向量,网络层计算获得输出,输出层发现输出和正确的类号不一样,这时就 ...
- 机器学习 —— 基础整理(七)前馈神经网络的BP反向传播算法步骤整理
这里把按 [1] 推导的BP算法(Backpropagation)步骤整理一下.突然想整理这个的原因是知乎上看到了一个帅呆了的求矩阵微分的方法(也就是 [2]),不得不感叹作者的功力.[1] 中直接使 ...
- 神经网络训练中的Tricks之高效BP(反向传播算法)
神经网络训练中的Tricks之高效BP(反向传播算法) 神经网络训练中的Tricks之高效BP(反向传播算法) zouxy09@qq.com http://blog.csdn.net/zouxy09 ...
随机推荐
- JAVA_标识符、数据类型、变量
标识符和关键字 所有的标识符否应该以字母a ~ z和 A ~Z ,美元符($).下划线(_)开始. 首字符之后可以是字母a ~ z和 A ~Z ,美元符($).下划线(_)的任意字符组合. 注 ...
- weex参考文章
1官网:https://weex.apache.org/zh/guide/introduction.html 2.weexui https://alibaba.github.io/weex-ui/ ...
- java实现一个点餐系统
转载于blog.csdn.net/weixin_44219955 项目大体框架 菜品类(菜品id,菜品名,菜品类型,上架时间,单价,月销售,总数量) 管理员类(管理员id,账号,密码) 客户类(客户i ...
- 从新建文件夹开始构建UtopiaEngine(1)
序言 在苦等了半年多之后,我终于开始了向往已久的实时NPR游戏引擎项目--Utopia Engine,这半年多一直为了构建这个引擎在做很多准备:多线程.动态链接库.脚本引擎.立即渲染GUI--统统吃了 ...
- Java进阶专题(二十八) Service Mesh初体验
前言 ⽬前,微服务的架构⽅式在企业中得到了极⼤的发展,主要原因是其解决了传统的单体架构中存在的问题.当单体架构拆分成微服务架构就可以⾼枕⽆忧了吗? 显然不是的.微服务架构体系中同样也存在很多的挑战 ...
- 【pytest系列】- assert断言的使用
unittest断言方式是用过框架自己实现的,即self.assertEqual()等,当我们使用pytest框架后,这种断言方式是不可用的,因为测试类不会再继承unittest.TestCase类, ...
- Dynamics CRM9.0更新了Chrome后菜单按钮变形
前段时间Chorme更新后Dynamics CRM9.0的系统菜单样式变的很难看 具体修改方法如下: 找到Dynamics CRM安装目录C:\Program Files\Microsoft Dyna ...
- Unity2D项目-平台、解谜、战斗! 1.3移动组件
各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊. 在这一篇中,我们将会自顶向下地讨论本2D游戏中主角不可或缺的一个功能--移动控制. 首先我们简单分析一下2D游戏中主角与移动相 ...
- 如何写好一个 Spring 组件
背景 Spring 框架提供了许多接口,可以使用这些接口来定制化 bean ,而非简单的 getter/setter 或者构造器注入.细翻 Spring Cloud Netflix.Spring Cl ...
- 0ctf_2017_babyheap
0ctf_2017_babyheap 首先检查一下保护 IDA 分析好的代码如下 首先申请了一块内存地址用来存放结构体数组,地址随机. 堆题常见的几个功能.我们来看看add 这里申请内存用的是call ...