当前位置: 首页 > article >正文

深度学习记录--计算图(前向后向传播)

什么是计算图?

从一个例子入手:

J=3(a+b*c) 

u=b*c

v=a+u

J=3*v

将函数J的计算用流程图表示出来,这样的流程图被称为计算图

简单来说,计算图是用来显示每个变量间的关系的一种图

两种传播方式

计算图有两种传播方式:前向传播 和 后向传播

什么是前向传播?

还是以函数J为例,前向传播就是将计算函数J的值的每一个过程表示出来,类似分步计算

什么是后向传播? 

后向传播就是从最后一个方框开始,逐步向前求最终输出变量(FinalOutput Variable)对普通变量(variable)的导数,记为:\frac{\mathrm{d} (FinalOutput Variable) }{\mathrm{d} (var)} ,在函数J的例子中,最终输出变量是变量J的值,所以导数写为:\frac{\mathrm{d} J }{\mathrm{d} (var)} ,在编程代码中,为了简便,通常将导数记作:d (var) ,当我们求出J对所有普通变量的导数后,我们也就清楚了每个变量var对于J变化的影响程度,同时,这些导数也可以用来更新变量(即梯度下降法),方便进行迭代计算

后向传播的计算方法

简要来说,就是求导

但是,我们可以利用链式法则(chain rule)来简化计算

比如:当我们求完 ^{\frac{\mathrm{d} J }{\mathrm{d} v}} 之后,之后我们要求 \frac{\mathrm{d} J }{\mathrm{d} u} ,可以进行拆分,拆分成:\frac{\mathrm{d}J }{\mathrm{d} v}\frac{\mathrm{d} v }{\mathrm{d} u} , 这样我们只需要求 \frac{\mathrm{d} v }{\mathrm{d} u} ,并将上一次求出的 ^{\frac{\mathrm{d} J }{\mathrm{d} v}} 代入即可求出 \frac{\mathrm{d} J }{\mathrm{d} u} 

同理之后每个导数都可以拆分成两个导数,进行简化运算


http://www.kler.cn/a/154642.html

相关文章:

  • 论文阅读(八):结构方程模型用于研究数量遗传学中的因果表型网络
  • zsh安装插件
  • S4 HANA明确税金本币和外币之间转换汇率确定(OBC8)
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.30 性能巅峰:NumPy代码优化全攻略
  • 不背单词快捷键(不背单词键盘快捷键)
  • 复古壁纸中棕色系和米色系哪个更受欢迎?
  • 最新AI智能写作回答系统源码 附完整的搭建教程
  • java学习part29线程通信
  • 锐捷EWEB网管系统 RCE漏洞复现
  • oracle sql相关语法
  • Docker的常用基本命令(基础命令)
  • 在Windows中如何知道当前cmd的python解释器来自哪个位置
  • 在 ArcGIS 软件中添加左斜宋体(东体)的方法与步骤
  • 管理类联考-性质
  • 无人机助力电力设备螺母缺销智能检测识别,python基于YOLOv7开发构建电力设备螺母缺销小目标检测识别系统
  • C++作业2
  • 编写高质量Python (第26条) 用 functools.wraps 定义函数装饰器
  • AIGC: 关于ChatGPT中token和tiktoken工具
  • uniapp 微信小程序连接蓝牙卡死
  • 前端打包添加前缀
  • wordpress路径怎么优化?wordpress伪静态怎么做?
  • Group normalization是什么
  • 消息队列好文收集
  • GnuCash macos 设置中文的方法
  • TwinCAT3一个PLC设备里多个程序工程之间通讯
  • 数据结构算法-冒泡排序算法