转至:https://blog.csdn.net/ft_sunshine/article/details/90221691?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162087108216780357254016%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162087108216780357254016&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-90221691.first_rank_v2_pc_rank_v29&utm_term=%E5%8F%8D%E5%90%91%E4%BC%A0%E6%92%AD&spm=1018.2226.3001.4187

首先明确,“正向传播”求损失,“反向传播”回传误差。同时,神经网络每层的每个神经元都可以根据误差信号修正每层的权重,只要能明确上面两点,那么下面的例子,只要会一点链式求导规则,就一定能看懂!

BP算法,也叫δ \deltaδ算法,下面以3层的感知机为例进行举例讲解。


上图的前向传播(网络输出计算)过程如下:(此处为网络的整个误差的计算,误差E计算方法为mse)

上面的计算过程并不难,只要耐心一步步的拆开式子,逐渐分解即可。现在还有两个问题需要解决:

1. 误差E有了,怎么调整权重让误差不断减小?
2. E是权重w的函数,何如找到使得函数值最小的w。

解决上面问题的方法是梯度下降算法(简单图示如下),大家如有不太懂的可先行查阅别的资料,只要能达到理解线性回归梯度下降算法的水平即可,这里不再赘述。


划重点,划重点,划重点!!!
BP算法的具体例子来喽!!

就算上面的所有东西你都看的迷迷糊糊,通过下面的例子,相信绝大多数人也能很轻松的理解BP算法。如图是一个简单的神经网络用来举例:

下面是前向(前馈)运算(激活函数为sigmoid):

下面是反向传播(求网络误差对各个权重参数的梯度):

我们先来求最简单的,求误差E对w5的导数。首先明确这是一个“链式求导”过程,要求误差E对w5的导数,需要先求误差E对out o1的导数,再求out o1对net o1的导数,最后再求net o1对w5的导数,经过这个链式法则,我们就可以求出误差E对w5的导数(偏导),如下图所示:

导数(梯度)已经计算出来了,下面就是反向传播与参数更新过程:

上面的图已经很显然了,如果还看不懂真的得去闭门思过了(开玩笑~),耐心看一下上面的几张图,一定能看懂的。

如果要想求误差E对w1的导数,误差E对w1的求导路径不止一条,这会稍微复杂一点,但换汤不换药,计算过程如下所示:

实例讲解反向传播(简单易懂)相关推荐

  1. php 进度条百分比算法,实例讲解Ajax实现简单带百分比进度条

    最近做项目遇到这样的需求要求当进行文件长传保存等操作时,能在页面显示一个带百分比的进度条,给用户一个好的交互体验,下面通过实例代码给大家介绍基于ajax实现带百分比进度条效果,需要的的朋友参考下吧,希 ...

  2. CNN反向传播源码实现——CNN数学推导及源码实现系列(4)

    前言 本系列文章链接: CNN前置知识:模型的数学符号定义--卷积网络从零实现系列(1)_日拱一两卒的博客-CSDN博客https://blog.csdn.net/yangwohenmai1/arti ...

  3. 深度学习基础笔记——前向传播与反向传播

    相关申明及相关参考: 体系学习地址 主要学习笔记地址 由于是文章阅读整合,依据个人情况标注排版, 不确定算不算转载,主要学习围绕AI浩的五万字总结,深度学习基础 如有侵权,请联系删除. 1前向传播与反 ...

  4. 一个一步步进行反向传播的例子

    说明 学习深度学习的过程中,遇到了一个用例子讲解反向传播算法的博文,简单粗暴容易理解,很适合我这种小白,所以打算翻译一下分享,英文水平有限,翻译不对的地方请告知.原文地址在这.下面是译文. 背景 反向 ...

  5. 一文教你看懂BP反向传播。不会你打我

    误差的反向传播,已经在神经网络中获得广泛运用.但它是如何进行传播的,很多人却不太了解,本文主要讲解了误差反向传播的原理及其推导过程,希望能让大家对反向传播有一定的了解. 话不多说,开搞! 在讲解反向传 ...

  6. 反向传播算法的详细解释(上)

    最近在看NG的视频的时候,学习反向传播算法时遇到了不小的困难.一是因为NG并没有把太多的精力放在讲解反向传播原理上,可能NG自己也觉得这部分如果要细讲,真的会耗费不少时间.二是NG在开课初就很照顾数学 ...

  7. 深度学习的数学-卷积神经网络的误差反向传播

    文章目录 前言 正文 卷积神经网络中的关系式 卷积层 池化层 输出层 平方误差(损失函数) 梯度下降法 卷积层和输出层的神经单元误差(重点) 输出层的神经单元误差计算 输出层的神经单元与其权重偏置的关 ...

  8. 前向传播、反向传播(后向传播)、梯度下降、导数、链式法则

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 2.4 神经网络最优化过程 2.4.1 最优化(Optimiz ...

  9. 手撕CNN神经网络(二)反向传播(back propagation)

    反向传播简单来说就是通过求偏导数从而更新神经网络中权重w的过程 首先先简单复习一下前向传播(forward propagation) 篇幅有限,bias(b)在图中就没画出来,大家知道有这么个东西就好 ...

  10. 完整的芯片反向设计流程原来是这样的!(实例讲解)

    完整的芯片反向设计流程原来是这样的!(实例讲解) 作者:时间:2018-02-23来源:网络收藏 现代IC产业的市场竞争十分激烈,所有产品都是日新月异,使得各IC设计公司必须不断研发新产品,维持自身企 ...

最新文章

  1. vue+elementui项目打包后样式变化问题
  2. 剑指offer: 二进制中1的个数 python 实现
  3. 解决ajax异步传输数据,return返回为undefined的问题
  4. 计算机网络安全反思,网络安全教育教学反思范文
  5. 字节跳动---万万没想到之聪明的编辑
  6. linux下重启mysql php nginx
  7. UI设计干货模板|首页设计技巧
  8. 88.http反向代理proxy处理请求的流程
  9. oracle sequence sql server,SQL Server 实现oracle的sequence方法示例
  10. QQ音乐api 最新版,亲测可用
  11. 微信小程序人脸识别之人脸属性检测
  12. 输出100以内所有的素数
  13. 如何获取Android手机连接当前网络的外网IP
  14. 数据结构与算法:排序(分类)
  15. 电脑键盘上各个按键功能详解
  16. OSChina 周四乱弹 —— 为什么现在社会越来越鄙视直男
  17. 雷电模拟器通过命令行设置分辨率及其他命令
  18. 解决VBA运行时错误13 类型不匹配问题
  19. 怎樣制作线段动画_教您怎样才能演示图形平移过程?
  20. 绩效考核啊绩效考核!

热门文章

  1. Gis系统中常见的格式
  2. 3D立体显示大屏幕拼接视频墙系统解决方案
  3. hadoop版本和java版本不一致的问题
  4. 不知道怎么把英文文档翻译成中文?手把手教你怎么操作
  5. 3D视频调校技术解决之道重点在3D眼镜
  6. 任意项级数的敛散性判别
  7. 如何部署局域网即时通讯软件
  8. 51单片机学习笔记(一)软件及驱动安装
  9. 房产中介管理系统网站完整源码
  10. Adbyby无法更新规则的解决方案