先看下面信号流图,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表示单位时间延迟操作符)

  1. 欲使时间序列收敛,动量常数必须限制在0<=|α|<1 范围内。当α等于0时,反向传播算法运行起来没有动量。虽然在实际中动量常数α不大可能是负的,但是它还是可正可负。
  2. 在反向传播(BP)算法中包含动量趋于在稳定的下降方向上加速下降。
  3. 在反向传播算法中包含动量具有符号正负摆动方向的稳定效果。
  4. 动量向一定程度上可以防止学习过程停止在误差曲面上的局部最小值。

在反向传播算法的应用中可以选择使所有突触权值都是可调整的,或者在自适应过程中可能限制网络中某些权值使其保持固定。对于后者,误差信号是以通常的方式通过网络反向传播的;然而,固定的突触权值是不改变的。这一点可以简单通过使突触权值的学习率参数等于0来做到。

4.停止准则。通常,不能证明反向传播算法是收敛的,并且没有明确定义的算法停止准则。相反,仅有一些合理的准则,它们每个都有自己的实际用处,这些准则可用于终止权值的调整。

  1. 当梯度向量的欧几里得范数达到一个充分小的帝都阈值时,我们认为反向传播算法已经收敛。
  2. 当每一回合的均方误差变化的绝对速率足够小时,我们认为反向传播算法已经收敛。

神经网络与机器学习 笔记—反向传播算法(BP)的更多相关文章

  1. 深度神经网络(DNN)反向传播算法(BP)

    在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向 ...

  2. 【机器学习】反向传播算法 BP

    知识回顾 1:首先引入一些便于稍后讨论的新标记方法: 假设神经网络的训练样本有m个,每个包含一组输入x和一组输出信号y,L表示神经网络的层数,S表示每层输入的神经元的个数,SL代表最后一层中处理的单元 ...

  3. Deep Learning 学习笔记(7):神经网络的求解 与 反向传播算法(Back Propagation)

    反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能 ...

  4. 深度学习——深度神经网络(DNN)反向传播算法

    深度神经网络(Deep Neural Networks,简称DNN)是深度学习的基础. 回顾监督学习的一般性问题.假设我们有$m$个训练样本$\{(x_1, y_1), (x_2, y_2), …, ...

  5. 100天搞定机器学习|day38 反向传播算法推导

    往期回顾 100天搞定机器学习|(Day1-36) 100天搞定机器学习|Day37无公式理解反向传播算法之精髓 上集我们学习了反向传播算法的原理,今天我们深入讲解其中的微积分理论,展示在机器学习中, ...

  6. 卷积神经网络(CNN)反向传播算法

    在卷积神经网络(CNN)前向传播算法中,我们对CNN的前向传播算法做了总结,基于CNN前向传播算法的基础,我们下面就对CNN的反向传播算法做一个总结.在阅读本文前,建议先研究DNN的反向传播算法:深度 ...

  7. 神经网络反向传播算法&&卷积神经网络

    听一遍课程之后,我并不太明白这个算法的奇妙之处?? 为啥? 神经网络反向传播算法 神经网络的训练依靠反向传播算法,最开始输入层输入特征向量,网络层计算获得输出,输出层发现输出和正确的类号不一样,这时就 ...

  8. 机器学习 —— 基础整理(七)前馈神经网络的BP反向传播算法步骤整理

    这里把按 [1] 推导的BP算法(Backpropagation)步骤整理一下.突然想整理这个的原因是知乎上看到了一个帅呆了的求矩阵微分的方法(也就是 [2]),不得不感叹作者的功力.[1] 中直接使 ...

  9. 神经网络训练中的Tricks之高效BP(反向传播算法)

    神经网络训练中的Tricks之高效BP(反向传播算法) 神经网络训练中的Tricks之高效BP(反向传播算法) zouxy09@qq.com http://blog.csdn.net/zouxy09 ...

随机推荐

  1. python3+tkinter实现的黑白棋,代码完整 100%能运行

    今天分享给大家的是采用Python3+tkinter制作而成的小项目--黑白棋 tkinter是Python内置的图形化模块,简单易用,一般的小型UI程序可以快速用它实现,具体的tkinter相关知识 ...

  2. P3387 【模板】缩点 题解 (Tarjan)

    题目链接 P3387 [模板]缩点 解题思路 这几天搞图论,好有趣hhh,多写几篇博客. 上次学\(Tarjan\)求割点,这次缩点. 思路大概是多一个栈和染色的步骤,每次\(Tarjan\)的时候把 ...

  3. 面试现场:说说char 和 varchar的区别你了解多少?

    Hi,大家好!我是白日梦!本文是MySQL专题的第 26 篇. 下文还是白日梦以自导自演的方式,围绕"说说char 和 varchar的区别你了解多少?"展开本话题.看看你能抗到第 ...

  4. android分析之Binder 02

    分析Java层的ServiceManager,看看Binder在Java层是如何实现的. public final class ServiceManager { private static fina ...

  5. 20个最有用的Python数据科学库

    核心库与统计 1. NumPy(提交:17911,贡献者:641) 一般我们会将科学领域的库作为清单打头,NumPy 是该领域的主要软件库之一.它旨在处理大型的多维数组和矩阵,并提供了很多高级的数学函 ...

  6. [系统重装日志1]快速迁移/恢复Mendeley的文献和笔记

    一时手贱把原先系统的EFI分区给删了,按照网上的教程还没有恢复成功,无奈之下只能重装系统,想想这么多环境和配置真是酸爽. 身为一个伪科研工作者,首先想到的是自己的文献和阅读笔记.我所使用的文献管理工具 ...

  7. (原创)高DPI适配经验系列:(一)缩放比例与DPI对应关系

    一.前言 当下,2K分辨率已成为主流标配,3K.4K也已经广泛应用. 在屏幕尺寸不变的情况下,高分辨率也就意味着高DPI,对于桌面程序而言,除了先天就支持高DPI的框架外(如UWP.Electron等 ...

  8. 全网最详细的Linux命令系列-rm命令

    今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除 ...

  9. Golang+Protobuf+PixieJS 开发 Web 多人在线射击游戏(原创翻译)

    简介 Superstellar 是一款开源的多人 Web 太空游戏,非常适合入门 Golang 游戏服务器开发. 规则很简单:摧毁移动的物体,不要被其他玩家和小行星杀死.你拥有两种资源 - 生命值(h ...

  10. [Fundamental of Power Electronics]-PART I-6.变换器电路-6.3 变压器隔离

    6.3 变压器隔离 在许多应用场合中,期望将变压器结合到开关变换器中,从而在变换器的输入输出之间形成直流隔离.例如,在离线(off-line)应用中(变换器输入连接到交流公用系统),根据监管部门要求, ...