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

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

1.计算图


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


1.1用计算图进行计算

43a6f2eb8e86449d989638a7151b1c10.png

3b7fde372d264322b68d4d09de068d69.png

a69c97073aa7416dbc56b5c0421c4fd5.png

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


计算图计算流程:

1.构建计算图。

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


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



1.2 局部计算


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


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


99e8932af8804729b0992d44cdeb4884.png

1.3计算图优势


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

2. 利用计算图可以将中间的计算结果全部保存起来(比如,计算进行到2个苹

果时的金额是200日元、加上消费税之前的金额650日元等)

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


上述问题中,我们计算了购买2个苹果时加上消费税最终需要支付的金额。这里,假设我们

想知道苹果价格的上涨会在多大程度上影响最终的支付金额,即求“支付金额关于苹果的价格的导数”。设苹果的价格为x,支付金额为L,则相当于求αL/αx。这个导数的值表示当苹果的价格稍微上涨时,支付金额会增加多少?



e1b4a4ac8e3547438f88648f8115982d.png


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


2链式法则


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


2.1计算图的反向传播


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


a728d5a331344259af007e73e011b261.png

d1989d74dbb0492bb291c869bce89474.png


2.2什么是链式法则


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

85e95edd11e044d1a94194918546a883.png


2.3链式法则和计算图

2036c0be6efc400eb499e1e5e8cfd773.png


84d4ee89ace145c8baa35b2802fd818f.png

66afa6bcb69d46339dfcbf72eb321e23.png




总结


1.介绍了计算图的基本概念与计算方式;


2.链式法则相关概念;

相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
从零开始学习深度学习:入门指南与实践建议
本文将引导读者进入深度学习领域的大门,从基础概念到实际应用,为初学者提供全面的学习指南和实践建议。通过系统化的学习路径规划和案例实践,帮助读者快速掌握深度学习的核心知识和技能,迈出在人工智能领域的第一步。
|
2月前
|
机器学习/深度学习 JSON 自然语言处理
python自动化标注工具+自定义目标P图替换+深度学习大模型(代码+教程+告别手动标注)
python自动化标注工具+自定义目标P图替换+深度学习大模型(代码+教程+告别手动标注)
46 0
|
2月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习入门:Python 与神经网络
深度学习是机器学习的一个分支,它涉及使用多层神经网络来处理和学习数据。在 Python 中,有许多流行的深度学习库和框架可以帮助我们轻松地构建和训练神经网络模型。在本文中,我们将介绍深度学习的基本概念,并使用 Python 中的 TensorFlow 和 Keras 库来构建一个简单的神经网络模型。
|
3月前
|
机器学习/深度学习 分布式计算 搜索推荐
深度学习入门:一篇概述深度学习的文章
深度学习入门:一篇概述深度学习的文章
|
4月前
|
机器学习/深度学习 数据采集 算法
【深度学习基础】反向传播BP算法原理详解及实战演示(附源码)
【深度学习基础】反向传播BP算法原理详解及实战演示(附源码)
74 0
|
4月前
|
机器学习/深度学习 自然语言处理 算法
【Tensorflow深度学习】优化算法、损失计算、模型评估、向量嵌入、神经网络等模块的讲解(超详细必看)
【Tensorflow深度学习】优化算法、损失计算、模型评估、向量嵌入、神经网络等模块的讲解(超详细必看)
55 1
|
4月前
|
机器学习/深度学习 自然语言处理 算法
【深度学习】常用算法生成对抗网络、自编码网络、多层感知机、反向传播等讲解(图文解释 超详细)
【深度学习】常用算法生成对抗网络、自编码网络、多层感知机、反向传播等讲解(图文解释 超详细)
42 0
|
5月前
|
机器学习/深度学习
小白入门机器学习深度学习实战教程
小白入门机器学习深度学习实战教程
35 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习从入门到出门(1)——概念与发展概况
深度学习从入门到出门(1)——概念与发展概况
|
6月前
|
机器学习/深度学习 人工智能 TensorFlow
【人工智能】深度学习框架值TF入门-模型保存与加载
保存完整的模型有很多应用场景,比如在浏览器中使用TensorFlow.js加载运行,比如在移动设备上使用TensorFlow Lite加载运行。
38 0