BP(Back Propagation)神经网络通常是指具有三层网路结构的浅层神经网络。

反向传播算法

1.什么是BP 算法?
BP算法全称叫作误差反向传播(error Back Propagation,或者也叫作误差逆传播)算法。BP神经网络是由一个输入层、一个输出层和一个或多个隐层构成的,它的激活函数采用sigmoid函数。在这其中,输入信号经输入层输入,通过隐层计算由输出层输出,输出值与标记值比较,若有误差,将误差反向由输出层向输入层传播,在这个过程中,利用梯度下降算法对神经元权值进行调整。
2.为什么要使用BP算法?直接使用梯度下降不行吗?
梯度下降可以应对带有明确求导函数的情况,或者说可以应对那些可以求出误差的情况,比如逻辑回归,我们可以把它看做没有隐层的网络;但对于多隐层的神经网络,输出层可以直接求出误差来更新参数,但其中隐层的误差是不存在的,因此不能对它直接应用梯度下降,而是先将误差反向传播至隐层,然后再应用梯度下降,其中将误差从末层往前传递的过程需要链式法则(Chain Rule)的帮助,因此反向传播算法可以说是梯度下降在链式法则中的应用

这个网络只有3层,分别是蓝色的输入层、绿色的隐藏层和红色的输出层。

假设给了m个训练样本,第i个输入输出对表示为:
其中,x和y是3维向量。对于输入x,我们把g称作神经网络的预测(输出)值。

对于每个训练样本来说,有:

给定输入x,我们要找到使得预测值g与输出值y相等或比较相近的一组网络权重。因此,我们加入了误差函数,定义如下:

我们推广到一般情况,而不是之前的3个输出单元。假设输出层有任意数量的输出单元,设为n,对于这种情况此时的总误差(损失函数)为:

用z来代表某个输出单元的总输入,求出下面公式的值:

但是,g是关于z的函数,应用链式法则,把它重写为:

g作为Logistic函数,z是它的输入,所以可以表示为:

进而得到:

设绿色单元的预测值为g’,绿色层中的单元k与红色层(输出层)中的单元j之间的连接权重设为:

图中,黄色输出单元对应的总输入z。为了计算这个总输入,先获得每个绿色单元的输出值,在把其与连接绿色单元和黄色单元的红色箭头权重相乘,并将它们全部相加。

进行推广,假如有任意数量的绿色单元,设为n,这个n与上面定义的不同,可以表示为:

推导还没有完成,我们仍需要计算误差相对于第一层和第二层连接权重的导数。接下来,计算误差与第k个绿色单元输出值的变化关系:

由于第k个单元有j个连接权重,我们也考虑在内:

推导到这里结束,我们得到了总误差相对于某个单元输出值的导数。现在,我们可以忽略红色输出层,把绿色层作为网络的最后一层,并重复上述所有步骤来计算总误差E相对于输入权重的导数。

BP反向传播算法原理及公式推导相关推荐

  1. ​通俗理解神经网络BP反向传播算法

    转载自  ​通俗理解神经网络BP反向传播算法 通俗理解神经网络BP反向传播算法 在学习深度学习相关知识,无疑都是从神经网络开始入手,在神经网络对参数的学习算法bp算法,接触了很多次,每一次查找资料学习 ...

  2. [AI 笔记] BP反向传播算法

    [AI 笔记] BP反向传播算法 说明 BP算法 链式法则 计算图 简单例子 前向传播 反向传播 聚焦计算节点,深入理解 计算节点的代码实现 例子 各种门的功能 多元链式法则 向量化BP算法 参考资料 ...

  3. 使用随机梯度下降SGD的BP反向传播算法的PyTorch代码实现

    Index 目录索引 写在前面 PyTorch的 .data() PyTorch的 .item() BP with SGD的PyTorch代码实现 参考文章 写在前面 本文将用一个完整的例子,借助Py ...

  4. BP反向传播算法的思考和直观理解 -卷积小白的随机世界

    https://www.toutiao.com/a6690831921246634504/ 2019-05-14 18:47:24 本篇文章,本来计划再进一步完善对CNN卷积神经网络的理解,但在对卷积 ...

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

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

  6. “反向传播算法”过程及公式推导

    一.定义 首先来一个反向传播算法的定义(转自维基百科):反向传播(英语:Backpropagation,缩写为BP)是"误差反向传播"的简称,是一种与最优化方法(如梯度下降法)结合 ...

  7. 神经网络反向传播算法原理笔记

    神经网络是一种是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型.该模型以并行分布的处理能力. ...

  8. 反向传播算法原理(BP算法)(直观易懂)

    反向传播(Back Propagation.BP算法) 反向传播是对于神经网络来说最重要的算法 反向传播是求偏导的过程 反向传播的核心是计算图(如下图所示) a和b:输入量/权重,可经一系列运算得到e ...

  9. 反向传播算法(过程及公式推导)_一文讲透神经网络的反向传播,要点介绍与公式推导...

    神经网络的反向传播是什么 神经网络的反向传播,实际上就是逐层计算梯度下降所需要的$w$向量的"变化量"(代价函数$J(w1,b1,w2,b2,w3,b3...wn,bn)$对于$w ...

  10. BP反向传播算法浅谈(Error Back-propagation)

     最近在打基础,大致都和向量有关,从比较基础的人工智能常用算法开始,以下是对BP算法研究的一个小节. 本文只是自我思路的整理,其中举了个例子,已经对一些难懂的地方做了解释,有兴趣恰好学到人工智能对这块 ...

最新文章

  1. 请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
  2. ExtJS ComboBox 异步读取项后默认选中某项
  3. 系列博文-Three.js入门指南(张雯莉)-静态demo和three.js功能概览
  4. C# 字符串按设置的格试在前面或后面增加空格或其它字符
  5. Linux SPI总线和设备驱动架构
  6. SpringBoot 如何测试打包部署
  7. 关于 xib 的使用
  8. 机器为什么可以学习(2)---一般化理论
  9. Cmailserver和outlook配置
  10. 芒果 mysql插件,NoSQL代表:MongoDB(芒果数据库)
  11. 获取谷歌浏览器缓存视频方法
  12. EditText焦点
  13. 1.18 物主代词 形容词 宾语从句
  14. 快速提高网站排名软件
  15. amoeba mysql_详解如何利用amoeba(变形虫)实现mysql数据库读写分离
  16. 公司企业小程序怎么创建?
  17. 大数据学习路线-入门精简
  18. 基于Sequoia DB巨杉数据库的投资组合评比器(设计思路)
  19. 移动硬盘有文件但看不见怎么恢复文件
  20. 分布式体系结构:非集中式结构

热门文章

  1. 国内著名声学期刊简介
  2. 斗鱼封禁主播陈一发,新媒体有出路吗?
  3. 【软件使用】Macbook M1 QuickTime录屏讲解(只录电脑或者同时录电脑和麦克风人声)
  4. 计算机平均值的快捷键,Excel用快捷键和选项求平均值,且能一次对多行多列批量快速求平均值...
  5. 企业微信没有50名员工可以扩容吗?客户数达到上限会怎样?
  6. 未来行业发展趋势分析
  7. 青龙面板除了JD的另外玩法 跑跑 能赚Q和省Q的“果冻宝盒”
  8. Movidius神经计算棒初体验
  9. 工程师的爱情故事之1:大发明家
  10. 2020级训练赛10.23