定义

误差逆传播算法(backpropagation BP算法)是迄今最成功的的神经网络算法。显示任务中使用神经网络时,大多是在使用BP算法进行训练。不仅适用于多层前馈神经网络,还可以用于其他类型的神经网络,训练递归。

BP算法

如下图的神经网络,有一隐式层,LL个神经元组成的1个输出层。

重点介绍标准的BP算法,也就是只考虑单个输入神经元节点的误差逆传播,研究的输入例为(xk,yk)(x_k,y_k),假定神经元的输出为ll个神经元,即:
yk=(yk1,yk2,...,ykl)y_k = (y^k_1,y^k_2,...,y^k_l)

里面的公式详见周志华的西瓜书,往上面写比较费劲,主要总结下自己的理解吧,目标是求解连接系数和阈值,这个算法的名称是逆传播,为什么是逆呢?

BP算法基于梯度下降策略,以目标的负梯度方向对以上参数进行调整,下面列出对这句话的提炼公式,等号左侧是权值的调整值,右侧为到底取值多少,它是对输出误差对权值的偏导与学习率的相反数。

学习率控制着算法每一轮迭代中的更新步长,若太大则容易振动,太小则收敛速度又会太慢。

算法总结

先将输入实例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;

然后计算输出层的误差,再将误差逆向传播至隐层神经元;

最后根据隐层神经元的误差来对连接权和阈值进行调整,该迭代过程循环进行,直到达到某些停止条件位置(如训练误差已达到一个很小的值)。

累计误差逆传播算法

上面介绍的是标准的逆传播算法,如果推导出基于累积误差最小化的更新规则,就得到了累积误差逆传播算法。

与标准的BP算法每次更新只针对单个样例,参数更新的非常频繁,往往需进行更多次迭代。但是累积BP算法直接针对累积误差最小化,它在读取整个训练集D一遍后才对参数进行更新,其参数更新频率低,但是在很多任务中,累积误差下降到一定程度后,进一步下降变得很缓慢。这是标准BP会更好,尤其D非常大时。

全局最小和局部极小

这是需要应对的一个挑战。目前主要有三种方式解决这个问题,
1)对参数分组初始化多个神经网络;
2)使用模拟退火技术;
3)使用随机梯度下降。

其他常见神经网络

  • RBF网络

  • ART网络

  • SOM网络

  • 级联相关网络

  • Elman网络

  • Boltzmann机

参考周志华的机器学习西瓜书

关于BP算法较好的几篇博客推荐:

http://blog.csdn.net/zouxy09/article/details/45288129

http://blog.csdn.net/wanglp094/article/details/7702907

http://www.cnblogs.com/wentingtu/archive/2012/06/05/2536425.html

http://blog.csdn.net/appleml/article/details/48623303

入门-误差逆传播算法相关推荐

  1. 《机器学习与数据挖掘》实验五 编程实现误差逆传播算法(BP算法)

    前言: 摘要:本文对机器学习实验五 标准BP算法的代码进行实现,如果不了解的BP算法的话,可以自行上网搜索BP算法的详解. 实验题目:编程实现误差逆传播算法(BP算法) 实验目的:掌握误差逆传播算法( ...

  2. 人工智能知识全面讲解:多层神经网络与误差逆传播算法

    7.3.1 从单层到多层神经网络 明斯基教授曾表示,单层神经网络无法解决异或问题,但是当增加一个计 算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分 类效果.只是两层神经网络的计算 ...

  3. BP(BackPropagation)误差逆传播算法

    上篇文章介绍了多层前馈神经网络,那么这种网络是怎样训练生成的呢,BP算法就是其中一种生成多层神经网络的算法 ,又称为反向传播算法,下面来了解一下BP算法. 举例: 下图中是根据一个手写数字辨识的神经网 ...

  4. BP算法误差逆传播参数更新公式推导

    BP算法误差逆传播参数更新公式推导

  5. 误差逆传播算法公式理解及推导

    前言:公式理解及推导参考自<机器学习>周志华 P101 BP网络 BP网络一般是指由 误差逆传播(error BackPropagation, BP)算法训练的多层前馈神经网络. 给定训练 ...

  6. 深度学习入门笔记(六):误差反向传播算法

    专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...

  7. 深度学习入门-误差反向传播法(人工神经网络实现mnist数据集识别)

    文章目录 误差反向传播法 5.1 链式法则与计算图 5.2 计算图代码实践 5.3激活函数层的实现 5.4 简单矩阵求导 5.5 Affine 层的实现 5.6 softmax-with-loss层计 ...

  8. TensorFlow基础10-(误差反向传播算法以及实现多层神经网络)

    记录TensorFlow听课笔记 文章目录 记录TensorFlow听课笔记 一,误差反向传播算法 二,链式求导法则 三,隐含层有多个神经元的误差反向传播 四,激活函数 五,实现多层神经网络 一,误差 ...

  9. 新手入门机器学习十大算法

    新手入门机器学习十大算法 2018年9月17日 磐石 TensorFlowNews, 机器学习 0 在机器学习的世界中,有一种被称为"无免费午餐"的定理. 它意在说明没有哪种算法能 ...

  10. ps 入门 传智播客_播客快速入门指南

    ps 入门 传智播客 大概使我有权力进行播客的唯一一件事就是,我运行自己的播客已经快三年了. Sysadministrivia播客通常使用不安全的工作语言-实际上,它会让人联想到那些在中年危机中挣扎, ...

最新文章

  1. iOS 多级下拉菜单
  2. ABAP [div '/'] 的区别与妙用
  3. HDU - 1358 Period(KMP的next数组求最小循环节)
  4. linux find 用法详解 + 实例
  5. 软件测试 学习之路 CSS (三)
  6. 关于浏览器的那些事情1【面试】
  7. php监控url,php对URL地址探测
  8. 【月径流预测】基于matlab海洋捕食者算法优化BP神经网络月径流预测【含Matlab源码 2002期】
  9. Linux 内核经典面试题
  10. 基于Springboot+websocket的web聊天项目(论文+程序设计源码+数据库文件)
  11. GPS经纬度 转化为 M
  12. 《私募股权基金投资基础知识》---第二章
  13. Java IDEA 编辑器代码前进后退快捷键
  14. 现代经济感悟(4)-为什么一分钱一分货,两分货却要一块钱
  15. 实战经验:大数据分析为什么大多数会失败?
  16. JavaScript高级编程设计(第三版)——第二章:在html中使用javaScript
  17. STM32F407IGT6与STM32F407ZGT6区别
  18. 【NOIp普及组 2009】分数线划定
  19. 泡泡玛特再曝“兑奖纠纷”,昔日“盲盒第一股”面临三重难题
  20. GL_INVALID_OPERATION

热门文章

  1. 使用PicGo快速搭建图床
  2. 十大中文搜索引擎排名,头一个你绝对意想不到!
  3. 使用PS更改照片的背景色
  4. Jquery仿IGoogle实现可拖动窗口(源码)
  5. c语言牛顿法求整数平方根,牛顿法求平方根-编程练习
  6. IntelliJ IDEA团队开始在中国招人了
  7. win10两台电脑时间同步
  8. python抢课_一个用python实现的东方时尚(驾校)抢课程序
  9. Fluent 旋转机械 风机 二维情况下的力矩计算算法
  10. zigbee网关 zstack CC2530添加iic温度传感器lm75a