反向传播求偏导原理简单理解
神经网络中用反向传播求偏导数的思想就相当于复合函数求偏导。
从头说起,在学生时代我们要求下面式子中,函数 e ( a , b ) e(a,b) e(a,b)对a和b的偏导数:
e = ( a + b ) ∗ ( b + 1 ) e=(a+b)*(b+1) e=(a+b)∗(b+1)
∂ e ∂ a = ? \frac{\partial e}{\partial a}=? ∂a∂e=?
∂ e ∂ b = ? \frac{\partial e}{\partial b}=? ∂b∂e=?
传统的求偏导方法就是用解析式直接求偏导即可。
但如果随着函数复合的层数增多,对应的就是神经网络的层数增多,总体的解析式也会变得极其复杂,这个时候想一步求出偏导数是不可能的,只能通过反向传播法来求偏导数。
反向传播的核心就是计算图,其数学原理就是链式法则求偏导数
e = ( a + b ) ∗ ( b + 1 ) e=(a+b)*(b+1) e=(a+b)∗(b+1)的计算图如下表示,对应的就相当于神经网络图,每个节点都是原式中的一个小小的原子操作,也就是加减乘除等操作,对应的就相当于神经网络中每个结点的计算:
从结点a和结点b开始,顺着箭头计算,直到算出结果e,这就是前馈计算的过程,也就是前向传播计算。
其实,我们在前馈计算的过程中,完全可以计算每个中间结点对上一个节点的偏导数。
比如在前馈计算c=a+b时,我们可以顺道算出 ∂ c ∂ a \frac{\partial c}{\partial a} ∂a∂c和 ∂ c ∂ b \frac{\partial c}{\partial b} ∂b∂c;
在计算d=b+1时,逆着箭头计算出 ∂ d ∂ b \frac{\partial d}{\partial b} ∂b∂d( ∂ d ∂ 1 = 0 \frac{\partial d}{\partial 1}=0 ∂1∂d=0,所以可以省略);
在计算e=c*d时,逆着指向它的两个箭头计算出 ∂ e ∂ c \frac{\partial e}{\partial c} ∂c∂e和 ∂ e ∂ d \frac{\partial e}{\partial d} ∂d∂e。
最后,根据数学上的链式法则求偏导:
链式法则:路径上的偏导数做乘法,不同路径上的做加法。比如,从a到e的路径只有一条,其路径上的所有偏导数做乘法;从b到e上的路径有两条,每条路径上的偏导数做乘法,最后不同路径的结果做加法。如下所示:
∂ e ∂ a = ∂ e ∂ c ⋅ ∂ c ∂ a \frac{\partial e}{\partial a}=\frac{\partial e}{\partial c}·\frac{\partial c}{\partial a} ∂a∂e=∂c∂e⋅∂a∂c
∂ e ∂ b = ∂ e ∂ c ⋅ ∂ c ∂ b + ∂ e ∂ d ⋅ ∂ d ∂ b \frac{\partial e}{\partial b}=\frac{\partial e}{\partial c}·\frac{\partial c}{\partial b}+\frac{\partial e}{\partial d}·\frac{\partial d}{\partial b} ∂b∂e=∂c∂e⋅∂b∂c+∂d∂e⋅∂b∂d
至此,仅需在前馈计算的过程中,我们就能顺道求出复合函数e(a,b)的偏导数。
后续就是做函数优化等等了。
反向传播求偏导原理简单理解相关推荐
- BP反向传播算法的思考和直观理解 -卷积小白的随机世界
https://www.toutiao.com/a6690831921246634504/ 2019-05-14 18:47:24 本篇文章,本来计划再进一步完善对CNN卷积神经网络的理解,但在对卷积 ...
- 梯度的直观理解_BP反向传播算法的思考和直观理解 -卷积小白的随机世界
本篇文章,本来计划再进一步完善对CNN卷积神经网络的理解,但在对卷积层反向传播算法的理解中,越发觉得之前对于BP反向传播算法的理解是不到位的.小白近日觉得,对于深度神经网络,"反向传播&qu ...
- python求偏导_python实现点位精度评定
点位精度评定,主要是评定点位数据得l离散度.评定主要是一系列得数学值.在python的numpy中有一些列的函数可以用来实现这一系列的评估值. 1.期望 期望表示一点点位最可能出现的位置.一般情况下期 ...
- 用Python对数学函数进行求值、求偏导
from sympy import *# x = Symbol("x") # y = diff(x**3+x, x) # print(y) # result = y.subs('x ...
- 1.4 torch_向量/矩阵求偏导
文章目录 函数微分 标量/向量函数求偏导 矩阵函数求偏导 函数微分 标量/向量函数求偏导 矩阵函数求偏导
- 有限差分——图像求偏导
对函数求偏导,离散化的方法--有限差分
- python中用sympy对变量求偏导
用sympy 求偏导 import numpy as np import pandas as pd import sympy as sytheta, n, k = sy.symbols('theta, ...
- 【李代数求偏导】SLAM中李代数SE3求偏导左扰动模型和右扰动模型的区别
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 结论 1.左扰动模型: 2.右扰动模型: 2.1右扰动+右乘更新 2.2右扰动+左乘更新 3.将T展开后求偏导(具体看 ...
- 看懂SoftMax回归算法之代价函数求偏导的数学推导——机器学习笔记(12)
1.学习背景 这两天学习softmax逻辑回归算法,然后卡在了其代价函数求偏导处,"百科"中说,softmax的代价函数如下: 经过求导,得到梯度公式如下: 作为一个准数学专业毕业 ...
最新文章
- 《javaScript100例|01》超级经典一套鼠标控制左右滚动图片带自动翻滚
- 你认为已经过时的C语言,是如何影响500万程序员的?...
- FreeSql (八)插入数据时指定列
- 开启防火墙并添加出入站规则
- 引入方式之外部样式表(CSS、HTML)
- mysql每10万条数据分区_WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案...
- 云原生是一个时代下践行者们的故事
- You can't specify target table 'sdb_goods' for update in FROM clause
- NMF非负矩阵分解算法(Non-negative Matrix Factorization)
- opencv(二)图像像素提取及操作
- GitLab上传文件教程
- STM32CubeIDE XiP 和 BootROM介绍, XiP外部内存QSPI FLASH执行用户代码
- 修改host访问远景论坛
- 批量替换一个文件中的文件名,例如将文件夹中s**_abnormal.jpg文件修改为s**_abnor.jpg
- 第 218 场周赛阿里巴巴专场(只做出了前三道)设计 Goal 解析器+K 和数对的最大数目+连接连续二进制数字
- 20190507-学习dubbo有感于梁飞
- 转行互联网运营是个坑
- Windows Thin PC体验 语言包更改(win 7 included)
- Pandas Cut 与dataframe随机抽取(sample)替换(replace)应用案例
- 网络云存储技术Windows server 2012 (项目十一 NAS服务器磁盘配额的配置与管理)
热门文章
- outlook显示无法连接发送服务器地址,为什么outlook无法连接发送(pop3)电子邮件服...
- Mac使用终端上传ipa到App Store Connect
- Transact-SQL 语法元素之数据类型
- 普普通通的导航条练习
- Blog外挂之:热门文章与导航栏
- 普通话水平测试录音软件,普通话水平测试50篇示范录音
- Windows10 在睡眠或休眠状态下自动唤醒
- cadence导出bom清单_OrCAD Capture CIS 16.6 导出BOM
- 微信小程序使用微信公众号的模板消息进行消息推送开发流程
- excel数据表单_新的改进的Excel数据输入表单