反向传播(Back Propagation)

通常在设计好一个神经网络后,参数的数量可能会达到百万级别。而我们利用梯度下降去跟新参数的过程如(1)。但是在计算百万级别的参数时,需要一种有效计算梯度的方法,这种方法就是反向传播(简称BP), 因此BP并不是一种新的算法,使用BP就是能够使计算梯度时更加有效率。

其中θ为神经网络的参数,为梯度。

链式法则

设有两个函数为y=g(x),z=h(y),那么要计算z对x导数,则计算过程如(2)

设有三个函数为x=g(s),y=h(s),z=k(x,y),那么要计算z对x导数,则计算过程如(3)

BP计算过程

假定我们设计的神经网络结构如图1-1所示,其中yj神经网络为输出值,dh为隐藏层神经元的输出值,xi为输入值,bj、mh分别是隐藏层和输出层神经元的偏置;

图1-1 神经网络结构

设神经网络的损失函数为L(θ)(L(θ)具体的结构根据实际情况来确定,θ表示所有参数);wjh的更新形式为

由于wjh是通过影响,继而影响yj,最终影响L(θ)。因此wjh的更新计算可以通过(2)的链式法则进行展开。

其中,需要在确定激活函数和损失函数的具体结果后才就可以进行微分。而则可以在神经网络前向传播的过程中就可以计算,因此这一项的计算是自下向上,因此也称作forward pass

类比于wjh的更新情况,bj的更新计算为

再计算vhi的的更新情况,跟wjh的更新情况没有太大差别。vhi通过影响输入,继而影响dh,dh通过影响所有的输出层神经元的输入,继而影响输出值Y={y1,y2,...yl},最终影响L(θ),因此需要运用(3)进行链式法则展开

其中(8)中的跟计算的部分项相同。因此,要计算下层参数的微积分,就需要计算上层参数的微积分。整个参数的更新计算自上向下,这个计算过程也称作backward pass

参考资料

[1]机器学习-李宏毅

[2]《机器学习》-周志华

反向传播(Back Propagation)的更多相关文章

  1. 神经网络中误差反向传播(back propagation)算法的工作原理

    注意:版权所有,转载需注明出处. 神经网络,从大学时候就知道,后面上课的时候老师也讲过,但是感觉从来没有真正掌握,总是似是而非,比较模糊,好像懂,其实并不懂. 在开始推导之前,需要先做一些准备工作,推 ...

  2. 前馈神经网络-反向传播(Back Propagation)公式推导走读

        构造:输入神经元个数等于输入向量维度,输出神经元个数等于输出向量维度.(x1=(1,2,3),则需要三个输入神经元)   一 前向后传播   隐层:

  3. 前向传播算法(Forward propagation)与反向传播算法(Back propagation)

    虽然学深度学习有一段时间了,但是对于一些算法的具体实现还是模糊不清,用了很久也不是很了解.因此特意先对深度学习中的相关基础概念做一下总结.先看看前向传播算法(Forward propagation)与 ...

  4. 吴恩达深度学习 反向传播(Back Propagation)公式推导技巧

    由于之前看的深度学习的知识都比较零散,补一下吴老师的课程希望能对这块有一个比较完整的认识.课程分为5个部分(粗体部分为已经看过的): 神经网络和深度学习 改善深层神经网络:超参数调试.正则化以及优化 ...

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

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

  6. BP(back propagation)反向传播

    转自:http://www.zhihu.com/question/27239198/answer/89853077 机器学习可以看做是数理统计的一个应用,在数理统计中一个常见的任务就是拟合,也就是给定 ...

  7. 再谈反向传播(Back Propagation)

    此前写过一篇<BP算法基本原理推导----<机器学习>笔记>,但是感觉满纸公式,而且没有讲到BP算法的精妙之处,所以找了一些资料,加上自己的理解,再来谈一下BP.如有什么疏漏或 ...

  8. Backpropagation反向传播算法(BP算法)

    1.Summary: Apply the chain rule to compute the gradient of the loss function with respect to the inp ...

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

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

随机推荐

  1. WebService的简单Demo

    看到招聘要求要会WebService.就百度看看是如何实现的. 测试了一下.发现使用webservice开发方法,好像方便了不少.服务端开发者只需要关注服务端就可以了. Demo结构 IWebServ ...

  2. java零基础之--【Lombok】简化类设计神器

    I1. 在类设计中我们必不可少的要进行属性定义,构造方法,setter/getter方法,toString方法定义,如果在设计项目中属性过多则会影响类的阅读性. Lombok作为第三方插件,很好的解决 ...

  3. 一次MySQL死锁的排查记录

    前几天线上收到一条告警邮件,生产环境MySQL操作发生了死锁,邮件告警的提炼出来的SQL大致如下. update pe_order_product_info_test set end_time = ' ...

  4. uniapp H5引入腾讯地图

    在网上搜索了许多关于uniapp引入腾讯地图的方法都以失败告终,我开发的应用主要使用于H5,小程序与H5是不同的sdk,就不在这说了,况且小程序有手把手教学,可参考腾讯地图官网https://lbs. ...

  5. Kubernetes K8S之通过helm部署metrics-server与HPA详解

    Kubernetes K8S之通过helm部署metrics-server与 Horizontal Pod Autoscaling (HPA)详解 主机配置规划 服务器名称(hostname) 系统版 ...

  6. ElasticSearch教程——filter与query对比(转学习使用)

    一.数据准备 PUT /company/employee/2 { "address": { "country": "china", &quo ...

  7. git 中.gitignore文件不生效

    .gitignore文件 新增忽略文件并没有生效 新增的忽略文件没有生效,是因为git是有缓存的,而之前的文件在缓存中,并不会清除掉,还会继续提交,所以更新.gitignore文件,要清除缓存文件 g ...

  8. Detectron2 快速开始,使用 WebCam 测试

    本文将引导快速使用 Detectron2 ,介绍用摄像头测试实时目标检测. Detectron2: https://github.com/facebookresearch/detectron2 环境准 ...

  9. 在Linux系统下限制指定目录的大小以及文件/文件夹数量

    背景说明 在Linux操作系统下有时需要限制一个指定文件夹的大小和文件夹内可存储的文件数量,有可能是出于安全的考量或者定制化的配置,这里我们提供了一种方案:用dd创建一个空的img镜像,进行格式化的配 ...

  10. Promethues 之 Thanos

    Promethues简介和原理 请看我之前写的 Prometheus简介,原理和安装 https://www.cnblogs.com/you-men/p/12839535.html 官方架构问题 官方 ...