• 深度学习入门(6)误差反向传播基础---计算图与链式法则


    在我的第三篇博文《深度学习入门(3)神经网络参数梯度的计算方式》中详细介绍了通过微分方式计算神经网络权重参数的梯度。但是数值微分的方式计算梯度效率较低。后续博文会介绍另外一种更加高效的梯度计算方式---误差的反向传播。

    这篇文章介绍的是误差反向传播基础---计算图与链式法则相关的一些内容。

    理解误差反向传播的两种方式:

    1,基于数学式

    2,基于计算图(computational graph)

    本文主要介绍计算图的方式,误差是如何进行反向传播的。

    1.计算图

    计算图将计算过程用图形表示出来。这里的图形是数据结构图。

    1.1用计算图进行计算

     

     构建了计算图后,从左向右进行计算。就像电路中的电流流动一样,计算结果从左
    向右传递。到达最右边的计算结果后,计算过程就结束了。

    计算图计算流程:

    1.构建计算图。
    2.在计算图上,从左向右进行计算。

    2从左向右进行计算是一种正方向上的传播,简称为正向传播 forward propagation)。正向传播是从计算图出发点到结束点的传播。既然有正向传播这个名称,当然也可以考虑反向(从图上看的话,就是从右向左)的传播。实际上,这种传播称为反向传播 backward propagation)。

    1.2 局部计算

    计算图的特征是可以通过传递“局部计算”获得最终结果。“局部”这个词的意思是“与自己相关的某个小范围”。局部计算是指,无论全局发生了什么,都能只根据与自己相关的信息输出接下来的结果。

    计算图可以集中精力于局部计算。无论全局的计算有多么复杂,各个步骤所要做的就是对象节点的局部计算。虽然局部计算非常简单,但是通过传递它的计算结果,可以获得全局的复杂计算的结果。

    1.3计算图优势

    1. 通过局部计算,简化问题

    2. 利用计算图可以将中间的计算结果全部保存起来(比如,计算进行到2个苹
    果时的金额是200日元、加上消费税之前的金额650日元等)

    3. 通过反向传播高效计算导数

    上述问题中,我们计算了购买2个苹果时加上消费税最终需要支付的金额。这里,假设我们
    想知道苹果价格的上涨会在多大程度上影响最终的支付金额,即求“支付金额关于苹果的价格的导数”。设苹果的价格为x,支付金额为L,则相当于求αL/αx。这个导数的值表示当苹果的价格稍微上涨时,支付金额会增加多少?

    如图所示,反向传播使用与正方向相反的箭头(粗线)表示。反向传播传递“局部导数”,将导数的值写在箭头的下方。在这个例子中,反向传播从右向左传递导数的值(1 1.1 2.2)。从这个结果中可知,“支付金额关于苹果的价格的导数”的值是2.2。这意味着,如果苹果的价格上涨1日元,最终的支付金额会增加2.2日元(严格地讲,如果苹果的价格增加某个微小值,则最终的支付金额将增加那个微小值的2.2倍)。

    2链式法则

    反向传播是将局部导数向正方向的反方向(从右到左)传递, 传递这个局部导数的原理,是基于链式法则( chain rule)的。

    2.1计算图的反向传播

    假设存在y = f(x)的计算,这个计算的反向传播如图所示。

    2.2什么是链式法则

    介绍链式法则时,我们需要先从复合函数说起。复合函数是由多个函数构成的函数。

     

    2.3链式法则和计算图

     

    总结

    1.介绍了计算图的基本概念与计算方式;
    2.链式法则相关概念;

    如果内容对你有帮助,感谢点赞+关注哦!

    更多干货内容持续更新中…

  • 相关阅读:
    流媒体分析之rtmp 协议封装
    0047__Verilog语法入门
    PyTorch 入门
    uniapp微信小程序-项目实战修改密码
    python多进程(一)Fork模式和Spawn模式的优缺点
    【数据结构】栈和队列面试题总结(持续更新中...)
    【23种设计模式】开闭原则
    缓冲区“l”(大小为 24 字节)将溢出;4 字节将在偏移 24 时开始写入
    对称加密算法———AES算法
    自定义MVC01
  • 原文地址:https://blog.csdn.net/qq_42589613/article/details/128031945