输入通过前向传播由输入层传播到输出层;梯度通过后向传播由输出层传播到输入层。

求解

可见若我们能够求解出,就 ok 啦,下面就看如何求解

结合(4)和 (5)

若我们能够求解出,就可算出对  的偏微分。

而要求解  就得有 ,这是一个很好的递归公式,要求该层对 z 的偏微分,就得知道后续所有层对z的偏微分,直至输出层,时间复杂度O(n^2)。换种思路,我们可以从最后一层往前求解,则这种求解走一遍,所有的都可以求解,时间复杂度O(n)。图示如下:

N个样本的损失函数,其中代表单个样本损失函数:

求解梯度,以 weight 为例, bias 同理:

可见,我们只要求解单个样本上的梯度,再对所有样本梯度求和,就可以了。

下面以输入层、所有隐藏层、输出层均为2维为例,仅考虑单个样本的 weight 的梯度。

整个梯度求解  分为两步

  • 前向传播:
  • 后向传播:

前向传播比较好求解  ,因为 z 和 w 的式子很简单 

看  的前面接的是啥(上一个神经元的输出值 or 输入层)就是啥,我们在前向传播的时候会计算出每个神经元的输出值,所以这边很容易就能拿到上一个神经元的输出值,如下图,激活函数取 sigmoid (  )函数。

后向传播  比较复杂。

有如下公式, z 先经过激活函数输出 a , a 再通过后续的神经元影响 C 。

 ,

a 对 z 的偏导很好求, ,因为在前向传播过程中所有神经元的输出已经计算出来了,即 z 已经固定下来了,所以  是一个可以求解的数值。

那么就剩下  , 是通过  和  对 C 产生影响。

 ,因为  ,所以  ,故  。

 。若我们能够知道  和  就可以求解了。我们要知道当前层的梯度,就先得知道他后面一层的梯度,这可以看作一个递归问题,递归结束的条件就是在输出层求解时,我们只要知道 激活函数 和 损失函数就可以求了,而这俩函数是固定的。下面我们看输出层。

输出层是很好求的, 只要知道激活函数是啥就可以求解,  只要知道损失函数就可以求解:

只要输出层求出来了,它前面的一层也就可以求出来了,依次下去可以理解为递归求解。但是递归的复杂度比较高,求解当前层梯度,需要从当前层一直求解到输出层,可以发现很多层的梯度都被求解了不止一次,复杂度很高。若是我们换个方式来看待,直接从输出层开始往前求解,也可以理解成将递归求解转换为动态规划求解,从后往前求解也是后向传播的由来。这个思路可以由下图表示,我们将输入是  和  ,它们的权重分别为  和  ,再乘上激活函数带来的梯度  ,这个梯度对后向传播来说是一个常数,因为前向传播的时候就固定了,就得到输出  。所以梯度求解可以看作是梯度经过一个类似的神经网络从后往前传播。

参考

https://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/BP.pdf

https://www.youtube.com/watch?v=ibJpTrp5mcE

反向传播 - 李宏毅机器学习笔记相关推荐

  1. 李宏毅svm_【李宏毅机器学习笔记】 18、支持向量机(Support Vector Machine,SVM)...

    [李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...

  2. 2021李宏毅机器学习笔记--22 Generative Adversarial Network 01

    @[TOC](2021李宏毅机器学习笔记–22 Generative Adversarial Network 01(GAN,生成式对抗网络)) 摘要 GAN是建立于神经网络的基础上的,其核心思想是&q ...

  3. 【李宏毅机器学习笔记】 23、循环神经网络(Recurrent Neural Network,RNN)

    [李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...

  4. 【李宏毅机器学习笔记】 17、迁移学习(Transfer Learning)

    [李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...

  5. 2021李宏毅机器学习笔记--21 Anomaly Detection

    2021李宏毅机器学习笔记--21 Anomaly Detection(异常侦测) 摘要 一.问题描述 二.Anomaly异常 三.Anomaly Detection(异常侦测)做法 3.1 Bina ...

  6. 2021李宏毅机器学习笔记--12 attack ML models

    2021李宏毅机器学习笔记--12 attack ML models 摘要 一.图像模型的攻击 1.1原理 1.2Constraint 1.3参数训练 1.4一个例子 1.5攻击方法 1.5.1FGS ...

  7. 随时间反向传播算法(BPTT)笔记

    随时间反向传播算法(BPTT)笔记 1.反向传播算法(BP) 以表达式f(w,x)=11+e−(w0x0+w1x1+w2)f(w,x)=\frac{1}{1+e^{-(w_0x_0+w_1x_1+w_ ...

  8. 李宏毅机器学习笔记4:Brief Introduction of Deep Learning、Backpropagation(后向传播算法)...

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  9. 2018-3-21李宏毅机器学习笔记十一-----Brief Introduction of Deep Learning?

    我觉的有用的: BP神经网络_百度百科 https://baike.baidu.com/item/BP%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/4581827?fr=a ...

最新文章

  1. 征集 | 国家标准《信息安全技术 健康医疗信息安全指南》征求意见
  2. 再上24天班,小长假就来了!
  3. reactjs组件的生命周期:创建时和更新时
  4. Android Studio 版本号详解
  5. 导览系统定制开发_联联周边游系统源码定制开发平台方案
  6. android.mk官网介绍,转载:Android.mk语法介绍
  7. Android 异步加载神器Loader全解析
  8. 【送书福利】第一次送书活动(总共10本)
  9. android获取网络视频缩略图,Android 获取缩略图,网络视频,或者本地视频
  10. SurfaceView的绘图机制
  11. c语言黑色方块字符,打字符号,一个黑的方块怎么打?
  12. 【物联网毕设基础】单片机:红外遥控通信原理
  13. CDN: trunk URL couldn‘t be downloaded的解决办法
  14. 员工:这个需要20天工作量,老板:最多7天,微信就是快才战胜米聊的
  15. Altium Designer 往元件库中添加新元件
  16. SourceInsight 软件乱码问题
  17. linux vfe框架,bsp内核的摄像头使用
  18. [论文解读]An Efficient Evolutionary Algorithm for Subset Selection with General Cost Constraints
  19. 第一次漏洞分析(暴雷漏洞CVE-2012-1889)
  20. 一个动画看懂网络原理之CSMA/CD的工作原理

热门文章

  1. 贝叶斯统计推断(一)
  2. Apifox 测试工具
  3. ArduPilot之H743+BMI270x2+First Normal Takeoff
  4. ViewPage2简单使用
  5. cv2.cvtColor(image,cv2.COLOR_RGB2BGR) opencv颜色空间的转换
  6. 关于python的开发软件pycharm设置中文(无需汉化包)
  7. 读取rinex的观测时间
  8. 19【字节流、字符流】
  9. SpringBoot 项目 Shiro 的实现
  10. 手环服务器维修,智能手环解决方案