先看下面信号流图,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. 机器学习:神经网络的代价函数及反向传播算法

    在<机器学习:神经网络的模型构建>中,我记录了神经网络的一些基础知识,包括神经网络的逻辑单元.模型表示.前向传播等等.这篇笔记中,我会整理神经网络的代价函数以及反向传播算法- 那么如何在给 ...

  3. Educoder 机器学习 神经网络 第三关:反向传播算法

    任务描述 相关知识 数据集介绍 神经网络是如何训练 前向传播 交叉熵 反向传播 sklearn中的神经网络 编程要求 测试说明 任务描述 本关任务:用sklearn构建神经网络模型,并通过鸢尾花数据集 ...

  4. 深度学习---反向传播算法BP

    BP神经网络的数学原理及其算法实现: http://blog.csdn.net/zhongkejingwang/article/details/44514073 脉络清晰的BP神经网络讲解:http: ...

  5. 浅谈神经网络之链式法则与反向传播算法

    反向传播是训练神经网络最重要的算法,可以这么说,没有反向传播算法就没有深度学习的今天.但是反向传播算法涉及一大堆数据公式概念.所以我们了解导数计算过程以及要介绍的新的复合函数多层求导计算过程. 链式法 ...

  6. 机器学习分享——反向传播算法推导

    反向传播(英语:Backpropagation,缩写为BP)是"误差反向传播"的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法.该方法对网络中所 ...

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

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

  8. 【机器学习笔记】神经网络反向传播算法 推导

    神经网络反向传播算法 推导 (一) 概念及基本思想 (二)信息的前向传播 (三)误差反向传播 (1)输出层的权重参数更新 (2)隐藏层的权重参数更新 (3)输出层与隐藏层的偏置参数更新 (4)反向传播 ...

  9. BP神经网络(反向传播算法原理、推导过程、计算步骤)

    BP神经网络 1.反向传播算法的原理 2.反向传播算法参数学习的推导 3.反向传播算法参数更新案例 3.1 反向传播的具体计算步骤 3.1.1 计算输出层的误差 3.1.2 计算隐藏层误差 3.1.3 ...

最新文章

  1. C++第10周项目4参考——完数
  2. springBoot AOP切面编程
  3. 阿德莱德大学计算机科学学士收费,2017阿德莱德大学研究生学费
  4. python画折线图代码实现_python如何绘制分布折线图 python绘制分布折线图代码示例...
  5. 介绍一下Python中webbrowser的用法?
  6. python selenium下载窗口 ie_用Python+selenium打开IE浏览器和Chrome浏览器的问题
  7. linux ora -03113,ORA-03113解决方法
  8. 龙芯3A3000和龙芯3B3000芯片处理器参数介绍
  9. python图片批量转换成灰度图像
  10. builder设计模式,写和很好
  11. notebook pip install 只有星号_只有300人的”乡镇企业“:1件卖8亿垄断全球,帮三星称王,比光刻机还重要...
  12. java代码实现流程中的会签_Activiti实现会签功能
  13. 铝酸锂晶体(LiAlO2)-氮化镓薄膜的优质基片
  14. .dms文档打开方式
  15. python 读取csv文件转成字符串,python实现csv格式文件转为asc格式文件的方法
  16. 【jmeter-参数化】
  17. 2440开发板,210开发板,imx6开发板和4412开发板选择哪个更好呢?
  18. 一个列子演示java中软引用的回收时机
  19. 有关宾大1900页数学书笔记的更新说明
  20. FPGA系统性学习笔记连载_Day1数字电路基础篇

热门文章

  1. myeclipse在weblogic中的开发
  2. ZOJ-2366 Weird Dissimilarity 动态规划+贪心
  3. MIT Molecular Biology 笔记5 转录机制
  4. Python学习---协程 1226
  5. 2017-2018-1 《信息安全系统设计基础》实验三报告
  6. 安装class-dump
  7. 任务一,转换学习思路
  8. apache2部署django以及静态文件
  9. ubuntu16.04 英文环境安装中文输入法
  10. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)转载自码农网