目录

1 问题背景

1.1计算图(Computational Graph)

1.2 激活函数(Activation Function)引入

1.3 问题引入

2 反向传播(Back Propagation)

2.1 为什么要使用反向传播

2.2 前馈运算(Forward Propagation)过程

2.3 反向传播过程

2.3.1 计算过程 

2.3.2 课堂练习

3 在Pytorch中进行前馈和反向传播计算

3.1 Tensor数据类型

3.2 代码实现

3.2.1 实现线性模型


1 问题背景

1.1计算图(Computational Graph)

计算图(Computational Graph)是一种用于表示数学运算的图形模型。在计算图中,每个节点代表一个数学运算,而每条边代表运算之间的输入输出关系。

计算图用于记录和组织复杂的数学运算,可以帮助我们快速理解运算的依赖关系和结构。在机器学习和深度学习中,计算图是一种常用的工具,用于定义和计算模型的损失函数和梯度。

计算图还可以用于求导,通过利用计算图上的梯度进行反向传播,可以快速计算模型的损失函数对于每个参数的导数。因此,计算图不仅提高了计算效率,而且可以方便地实现自动微分和反向传播。

比如下式

图1 一个两层神经网络模型

用计算图表示

图2 计算图表示

注:MM表示相乘

1.2 激活函数(Activation Function)引入

对于刚刚举例的神经网络计算图,计算机会直接对其进行简化:

图3 计算图会被简化

这就导致了计算过程中添加的新的权重值变得毫无意义,层数的划分变得多余,导致神经网络的表示能力下降。

为了解决这个问题,我们需要在每一层的输出处应用上一个非线性变换函数(Nonlinear
Function)
,这样模型就不会被简化了

图4 添加非线性函数防止被简化

如果一个神经网络只使用线性变换函数,那么其最终的表示能力仍然有限,因为它们的输出结果是线性的,无法对复杂的数据进行分类或回归。因此,在每一层的输出都应用非线性变换函数,以增强神经网络的表示能力。

非线性变换函数通常也称为激活函数(Activation Function)。常见的激活函数有Sigmoid函数、ReLU函数等。

补充

线性函数与非线性函数的简单区别:线性函数其函数图像是一条直线;非线性函数的函数图像是一条曲线,等等。

1.3 问题引入

对于一个简单线性模型 ,我们可以利用解析式来进行简单的计算。

图5 线性模型,返回预测值

通过计算图,我们可以直观地看出计算的过程:

图6 左右两幅计算图是等价的

然后利用解析式来更新权重:

图7 随机梯度下降涉及的两个解析式

但是对于复杂的神经网络模型来说,可能同时含有多个

Lecture4 反向传播(Back Propagation)相关推荐

  1. 反向传播(Back Propagation)与神经网络(Neural Network)

    图片来自:http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html 程序实现参考:http://www.wildml.com/2015/09 ...

  2. 深度学习笔记(三)—— 反向传播[Back Propagation] 计算图[Computational Graph]

      这是深度学习笔记第三篇,完整的笔记目录可以点击这里查看.      反向传播就是求梯度值,然后通过梯度下降的方式对损失函数进行迭代优化的过程.在通常情况下,直接对一个复杂的函数一步到位写出其解析导 ...

  3. 神经网络中的反向传播----Back Propagation

    说到神经网络,大家看到这个图应该不陌生: 这是典型的三层神经网络的基本构成,Layer L1是输入层,Layer L2是隐含层,Layer L3是隐含层,我们现在手里有一堆数据{x1,x2,x3,.. ...

  4. 反向传播算法原理(BP算法)(直观易懂)

    反向传播(Back Propagation.BP算法) 反向传播是对于神经网络来说最重要的算法 反向传播是求偏导的过程 反向传播的核心是计算图(如下图所示) a和b:输入量/权重,可经一系列运算得到e ...

  5. 神经网络反向传播算法推导

    反向传播是多数神经网络进行参数更新的基本方法,它的本质是巧妙利用了高数中的链式法则,下面对这一方法进行推导: (1)符号说明 :神经元的激活函数 :神经网络的权重向量 :神经网络的偏置向量 :某层的输 ...

  6. 反式自动微分autodiff是什么?反向传播(Back Propagation)是什么?它是如何工作的?反向传播与反式自动微分autodiff有什么区别?

    反式自动微分autodiff是什么?反向传播(Back Propagation)是什么?它是如何工作的?反向传播与反式自动微分autodiff有什么区别? 目录

  7. 花书+吴恩达深度学习(三)反向传播算法 Back Propagation

    目录 0. 前言 1. 从 Logistic Regression 中理解反向传播 2. 两层神经网络中单个样本的反向传播 3. 两层神经网络中多个样本的反向传播 如果这篇文章对你有一点小小的帮助,请 ...

  8. back propagation反向传播(浅层神经网络分析示例)

    back propagation 一个浅层的神经网络 参数和中间变量解释 前向传播 反向传播 代码示例 参考 一个浅层的神经网络 上图是一个,3层的神经网络,2个隐藏层+1个输出层:输入层 特征维度为 ...

  9. 前向传播算法(Forward propagation)与反向传播算法(Back propagation)

    虽然学深度学习有一段时间了,但是对于一些算法的具体实现还是模糊不清,用了很久也不是很了解.因此特意先对深度学习中的相关基础概念做一下总结.先看看前向传播算法(Forward propagation)与 ...

最新文章

  1. 推荐系统笔记:Introduction
  2. wav文件格式分析详解
  3. codeforces 15C. Industrial Nim
  4. DefaulSqlSession 和SqlSessionTemplate 的区别是什么?
  5. java 开源 网络流量统计_jpcap java流量监控
  6. pascal行人voc_利用Pascal VOC目标检测数据深度学习进行目标检测
  7. 不同用户同时并发测压_教你 7 招,迅速提高服务器并发能力!
  8. auto_cmdb--01之models.py建表
  9. (转)C#中的Dictionary字典类介绍
  10. SQL Server 查询哪些对象(表\视图\存储过程)包含有某些内容
  11. centos6.0 LAMP源码安装
  12. CCF推荐期刊/会议历年发表论文数据库:CCF Rec-Paper DB
  13. Untiy Shader - Metallic vs Specular Workflow 金属 vs 高光的工作流
  14. Variable used in lambda expression should be final or effectively final
  15. 一起学JAVA之【基础篇】4种默认线程池介绍
  16. 路径规划学习之地图生成(二)
  17. 网站页面制作教程[纯萌新]
  18. 有时用weblogic用户启动weblogic时会报错的原因以及解决办法
  19. RC并联电路常见应用总结
  20. 阿里巴巴校招笔试题型攻略

热门文章

  1. expected a type specifier
  2. PING命令的工作原理
  3. 怎么编写一个chrome插件
  4. win7安装SQL2005
  5. cif和cip的区别_CIF与CIP价的区别?CIP价怎么算的?...
  6. 楷体DB_2312 安装包
  7. DBeaver安装及使用手册
  8. 登陆验证码图片不显示解决办法
  9. Ubuntu卷boot仅剩0字节的硬盘空间解决方案
  10. CouchDB使用小记