Lecture4 反向传播(Back Propagation)
目录
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)是一种用于表示数学运算的图形模型。在计算图中,每个节点代表一个数学运算,而每条边代表运算之间的输入输出关系。
计算图用于记录和组织复杂的数学运算,可以帮助我们快速理解运算的依赖关系和结构。在机器学习和深度学习中,计算图是一种常用的工具,用于定义和计算模型的损失函数和梯度。
计算图还可以用于求导,通过利用计算图上的梯度进行反向传播,可以快速计算模型的损失函数对于每个参数的导数。因此,计算图不仅提高了计算效率,而且可以方便地实现自动微分和反向传播。
比如下式
用计算图表示
注:MM表示相乘
1.2 激活函数(Activation Function)引入
对于刚刚举例的神经网络计算图,计算机会直接对其进行简化:
这就导致了计算过程中添加的新的权重值变得毫无意义,层数的划分变得多余,导致神经网络的表示能力下降。
为了解决这个问题,我们需要在每一层的输出处应用上一个非线性变换函数(Nonlinear
Function),这样模型就不会被简化了
如果一个神经网络只使用线性变换函数,那么其最终的表示能力仍然有限,因为它们的输出结果是线性的,无法对复杂的数据进行分类或回归。因此,在每一层的输出都应用非线性变换函数,以增强神经网络的表示能力。
非线性变换函数通常也称为激活函数(Activation Function)。常见的激活函数有Sigmoid函数、ReLU函数等。
补充
线性函数与非线性函数的简单区别:线性函数其函数图像是一条直线;非线性函数的函数图像是一条曲线,等等。
1.3 问题引入
对于一个简单线性模型 ,我们可以利用解析式来进行简单的计算。
通过计算图,我们可以直观地看出计算的过程:
然后利用解析式来更新权重:
但是对于复杂的神经网络模型来说,可能同时含有多个
Lecture4 反向传播(Back Propagation)相关推荐
- 反向传播(Back Propagation)与神经网络(Neural Network)
图片来自:http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html 程序实现参考:http://www.wildml.com/2015/09 ...
- 深度学习笔记(三)—— 反向传播[Back Propagation] 计算图[Computational Graph]
这是深度学习笔记第三篇,完整的笔记目录可以点击这里查看. 反向传播就是求梯度值,然后通过梯度下降的方式对损失函数进行迭代优化的过程.在通常情况下,直接对一个复杂的函数一步到位写出其解析导 ...
- 神经网络中的反向传播----Back Propagation
说到神经网络,大家看到这个图应该不陌生: 这是典型的三层神经网络的基本构成,Layer L1是输入层,Layer L2是隐含层,Layer L3是隐含层,我们现在手里有一堆数据{x1,x2,x3,.. ...
- 反向传播算法原理(BP算法)(直观易懂)
反向传播(Back Propagation.BP算法) 反向传播是对于神经网络来说最重要的算法 反向传播是求偏导的过程 反向传播的核心是计算图(如下图所示) a和b:输入量/权重,可经一系列运算得到e ...
- 神经网络反向传播算法推导
反向传播是多数神经网络进行参数更新的基本方法,它的本质是巧妙利用了高数中的链式法则,下面对这一方法进行推导: (1)符号说明 :神经元的激活函数 :神经网络的权重向量 :神经网络的偏置向量 :某层的输 ...
- 反式自动微分autodiff是什么?反向传播(Back Propagation)是什么?它是如何工作的?反向传播与反式自动微分autodiff有什么区别?
反式自动微分autodiff是什么?反向传播(Back Propagation)是什么?它是如何工作的?反向传播与反式自动微分autodiff有什么区别? 目录
- 花书+吴恩达深度学习(三)反向传播算法 Back Propagation
目录 0. 前言 1. 从 Logistic Regression 中理解反向传播 2. 两层神经网络中单个样本的反向传播 3. 两层神经网络中多个样本的反向传播 如果这篇文章对你有一点小小的帮助,请 ...
- back propagation反向传播(浅层神经网络分析示例)
back propagation 一个浅层的神经网络 参数和中间变量解释 前向传播 反向传播 代码示例 参考 一个浅层的神经网络 上图是一个,3层的神经网络,2个隐藏层+1个输出层:输入层 特征维度为 ...
- 前向传播算法(Forward propagation)与反向传播算法(Back propagation)
虽然学深度学习有一段时间了,但是对于一些算法的具体实现还是模糊不清,用了很久也不是很了解.因此特意先对深度学习中的相关基础概念做一下总结.先看看前向传播算法(Forward propagation)与 ...
最新文章
- 推荐系统笔记:Introduction
- wav文件格式分析详解
- codeforces 15C. Industrial Nim
- DefaulSqlSession 和SqlSessionTemplate 的区别是什么?
- java 开源 网络流量统计_jpcap java流量监控
- pascal行人voc_利用Pascal VOC目标检测数据深度学习进行目标检测
- 不同用户同时并发测压_教你 7 招,迅速提高服务器并发能力!
- auto_cmdb--01之models.py建表
- (转)C#中的Dictionary字典类介绍
- SQL Server 查询哪些对象(表\视图\存储过程)包含有某些内容
- centos6.0 LAMP源码安装
- CCF推荐期刊/会议历年发表论文数据库:CCF Rec-Paper DB
- Untiy Shader - Metallic vs Specular Workflow 金属 vs 高光的工作流
- Variable used in lambda expression should be final or effectively final
- 一起学JAVA之【基础篇】4种默认线程池介绍
- 路径规划学习之地图生成(二)
- 网站页面制作教程[纯萌新]
- 有时用weblogic用户启动weblogic时会报错的原因以及解决办法
- RC并联电路常见应用总结
- 阿里巴巴校招笔试题型攻略