目录

一、概述

二、前向传播算法

三、链式法则

四、BP算法

1、损失函数

2、输出层的梯度

3、隐藏层梯度

五、BP算法流程

1、输入参数

2、算法流程


一、概述

        反向传播(back propagation, BP)算法是 "误差反向传播" 的简称,也称为backprop,允许来自代价函数的信息通过网络向后流动,以便计算梯度。

反向传播是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

反向传播这个术语经常被误解为用于多层神经网络的整个学习算法。实际上,反向传播仅指用于计算梯度的方法。而另一种算法,例如随机梯度下降法,才是使用该梯度来进行学习。另外,反向传播还经常被误解为仅适用于多层神经网络,但是原则上它可以计算任何函数的到导数(对于一些函数,正确的响应是报告函数的导数是未定义的)。

一般分为3种层次,有输入层(input layer),隐藏层(hidden layer),输出层(output layer)。其中输入层,输出层一般只有1层,而隐藏层取决于具体实例的学习进程,可以设置多层次。

二、前向传播算法

所谓的前向传播算法就是:将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。

其中为激活函数。

 三、链式法则

        微积分中的链式法则用于计复合函数的导数。反向传播是一种计算链式法则的算法。Z=f(g(x)),y=g(x),dz/dx=dz/dy *dy/dx。需要深入理解这个链式法则,反向传播算法则是这个链式法则的运用。BP网络中的各层就如同函数对输入进行不断变换z=fn(fn-1(fn-2(...f1(x))))。

四、BP算法

1、损失函数

在进行反向传播算法前,我们需要选择一个损失函数,来度量训练样本计算出的输出和真实的训练样本输出之间的损失。我们使用最常见的均方误差(MSE)来作为损失函数,

其中 a(l) 为训练样本计算出的输出,y为训练样本的真实值。加入系数 1/2 是为了抵消微分出来的指数。

2、输出层的梯度

3、隐藏层梯度

五、BP算法流程

1、输入参数

        总层数L,以及各隐藏层与输出层的神经元个数,激活函数,损失函数,迭代步长 α ,最大迭代次数MAX与停止迭代阈值 ϵ ,输入的m个训练样本 ((x1,y1),(x2,y2),...(xm,ym))

2、算法流程

(1)、初始化参数W,b

(2)、进行前向传播算法计算,for l=2 to L

(3)、通过损失函数计算输出层的梯度,for l=L to L,这里只循环一次

(4)、计算其它各层梯度

        进行反向传播算法计算其它各层梯度,for l=L−1 to 2

(5)、更新各层的W,b

通过梯度下降算法更新权重w和偏置b的值,α为学习率其中α∈(0,1]。

(6)、如果各层所有W,b的变化值都小于停止迭代阈值ϵ,则跳出迭代循环

(7)、 输出各层的线性关系系数矩阵W和偏置b

神经网络中的常用算法-BP算法相关推荐

  1. 神经网络中的常用算法-梯度下降算法的优化

    一.概述 梯度下降法(Gradient descent )是一个一阶最优化算法,通常也称为最陡下降法 ,要使用梯度下降法找到一个函数的局部极小值 ,必须向函数上当前点对应梯度(或者是近似梯度)的反方向 ...

  2. 机器学习——人工神经网络之参数设置(BP算法)

    目录 一.复习(BP算法) 二.训练模型的建议 三.参数设置内容 1.随机梯度下降(SGD) 2.激活函数的选择 (1)sigmoid (2)tanh双曲正切函数 3.训练数集初始化 4.(w,b)的 ...

  3. 人工神经网络(ANN)及BP算法

    1 什么是神经网络 1.1 基本结构 说明: 通常一个神经网络由一个input layer,多个hidden layer和一个output layer构成. 图中圆圈可以视为一个神经元(又可以称为感知 ...

  4. 人工神经网络算法-BP算法原理

    人工神经网络是由大量的神经元按照大规模并行的方式通过一定的拓扑结构连接而成的.按照一定的规则将神经元连接成神经网络,并使网络中各神经元的连接权按一定的规则变化,这样一来也就产生了各式各样的神经网络模型 ...

  5. 神经网络中的常用激活函数总结

    ©PaperWeekly 原创 · 作者|张文翔 单位|京东集团算法工程师 研究方向|推荐算法 激活函数之性质 1. 非线性:即导数不是常数.保证多层网络不退化成单层线性网络.这也是激活函数的意义所在 ...

  6. 神经网络中的常用算法-梯度下降算法

    目录 一.概述 二.算法思想 1.一维 2.多维 三.梯度下降算法类型 1.批量梯度下降算法 2.随机梯度下降算法 3.小批量梯度下降算法 一.概述 梯度下降法(Gradient descent )是 ...

  7. 神经网络中的常用算法-BN算法

    目录 一.引言 二.Convariate shift 三.算法 1.算法公式 2.训练中的BN算法 3.测试和推理中的BN算法 四.BN算法在网络中的作用 1.优点 2.缺点 五.论文 一.引言 传统 ...

  8. 神经网络中的优化算法总结

    在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法? 这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳 ...

  9. DL之BP:神经网络算法简介之BP算法简介(链式法则/计算图解释)、案例应用之详细攻略

    DL之BP:神经网络算法简介之BP算法简介(链式法则/计算图解释).案例应用之详细攻略 相关文章:DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类 ...

最新文章

  1. @aspect注解类不生效_springboot:@Transactional注解 VS @Service注解
  2. 使用MEF实现通用参数设置
  3. javascript编程风格
  4. spring源码分析之spring-web http详解
  5. linux awk 教程,AWK简单使用方法
  6. Adversarial Validation 微软恶意代码比赛的一个kenel的解析
  7. WordPress 自定义插件初始化及卸载
  8. 细说说傲腾与哈娜的那些事儿
  9. jmeter 压测 RabbitMQ_单机
  10. 安全的本质--理解CIA和AAA
  11. VS2013 配置全局 VC++目录
  12. 为啥加班多太多对身体会造成影响,不干活就不会对身体造成影响么?
  13. 中小企业监控体系构建实战
  14. xftp传输文件报错
  15. Base64(电子邮件传输算法)
  16. 酷Q萌萌机器人_GitHub - Titvt/CQRobot: 酷Q机器人——麦萌萌小管家
  17. 2060显卡驱动最新版本_教程:怎么安装更新NVIDIAAMD显卡驱动?
  18. 安卓原生系统_体验类原生安卓系统PixelExperience流畅得不像话
  19. Oracle项目管理系统之合同控制概述
  20. python怎么开发服务器_Python服务器开发(1)

热门文章

  1. 目录树组件QTreeWidget和停靠区域组件QDockWidget的用法
  2. Android studio 3.5.2真机调试_连接手机
  3. labelme标注理解
  4. 计算机网络安全技术论文范文,计算机方面论文范文数据库,与关于计算机网络安全防护技术的相关毕业论文题目范文...
  5. 自定义条形对比统计图
  6. 最全MySQL8.0实战教程
  7. Google、百度的最本质区别
  8. H5C3基础学习总结之(毛玻璃)滤镜及动画过渡
  9. 09-golang格式化输出
  10. python高级调试技巧(一)——原生态的pdb调试