hung-yi lee_p13_反向传播
文章目录
- 背景
- 链式法则
- 计算思路
- 梯度计算过程/反向传播
- 总结
背景
回顾神经网络中计算梯度,更新梯度的过程
这里面的问题是,梯度是一个上百万维的向量,计算出来并非易事
这就引出了反向传播
可以说反向传播是梯度下降在神经网络中的实现。
链式法则
本节将要用到的数学知识
对于case2,可以看成是s通过影响x和y这两条路径来影响z
计算思路
如图所示,本文引入反向传播的思想,运用链式法则,通过将A的计算转化为B,进一步转化为C,进一步转化为D1和D2来求梯度。其中D1和D2的求解分为在输出层和非输出层两种情况讨论。
梯度计算过程/反向传播
以下只关注1不关注2,因为1求出2也就求出
取出一个神经元作为研究对象
关注其一个权重,记作w(在总图中的w1或是w2)
如何计算损失函数对w的偏微分,这就要用到链式法则
我们将因子1 @z/@w 称作forward pass,因子2 @C/@z 称作backward pass
先看如何计算forward pass(@代表偏微分符号)
发现秒杀
网络上所有**@z/@w都等于和w对应的输入值
接着看如何计算 backward pass
可以再次使用链式法则
其中 @a/@z 就是sigmoid函数的微分
sigmoid函数及其微分如图所示
@C/@a应该如何计算呢
注意到a可以通过z’和z’'来影响后面的
可再度利用链式法则
进一步计算@C/@a
@C/@z’ 和 @C/@z’’ 假设已经算出
则综合上面的计算可以得到 @C/@z 为
我们换个角度看这个式子
将 @C/@z’ 和 @C/@z’’ 看成是输入,而 sigma pf z ’ 由forward pass决定,可看成一个常数
注意:“新的神经元”和之前的神经元运作模式并不一样
问题只剩下计算出 @C/@z’ 和 @C/@z’'
如果下一层就是输出层**,根据链式法则,可以写出如下式子
其中 @y1/@z’ 即为激活函数的导数,@C/@y1 取决于损失函数是如何定义的
z’'和y2是类似的
如果下一层不是输出层,则需要递归计算
也就是根据这个式子
在这样一张神经网络中,如果想知道C对z1的偏微分,就要知道C对z3和z4的偏微分,想知道z3的的偏微分,就要知道C对z5和z6的偏微分……直至最后一层
想要计算地更有效率,我们不妨从输出层往里计算
总结
forward pass和backward pass的命名原因就是前者用正向(输入到输出)思维计算,后者用逆向(输出到输入)思维计算,两者相乘就是我们要计算的梯度
hung-yi lee_p13_反向传播相关推荐
- 【数据挖掘】神经网络 后向传播算法( 向后传播误差 | 输出层误差公式 | 隐藏层误差公式 | 单元连接权值更新公式 | 单元偏置更新公式 | 反向传播 | 损失函数 | 误差平方和 | 交叉熵 )
文章目录 I . 向后传播误差 简介 II . 输出层误差计算公式 III . 隐藏层层误差计算公式 IV . 使用误差更新 连接权值 V . 使用误差更新 单元偏置 VI . 反向传播 过程 VII ...
- Lesson 11.1-11.5 梯度下降的两个关键问题反向传播的原理走出第一步:动量法开始迭代:batch和epochs在Fashion—MNIST数据集熵实现完整的神经网络
在之前的课程中,我们已经完成了从0建立深层神经网络,并介绍了各类神经网络所使用的损失函数.本节课开始,我们将以分类深层神经网络为例,为大家展示神经网络的学习和训练过程.在介绍PyTorch的基本工具A ...
- 【深度学习】神经网络基础:反向传播算法
作者:Simona Ivanova AI/ML 专家 就职于 Science 杂志 导读 反向传播(Backpropagation,简称 BP)是目前用来训练人工神经网络(Artificial ...
- AI应用开发基础傻瓜书系列2-神经网络中反向传播与梯度下降的基本概念
AI应用开发基础傻瓜书系列2-神经网络中反向传播与梯度下降的基本概念 Copyright © Microsoft Corporation. All rights reserved. 适用于Licens ...
- 神经网络训练中的Tricks之高效BP(反向传播算法)
神经网络训练中的Tricks之高效BP(反向传播算法) zouxy09@qq.com http://blog.csdn.net/zouxy09 Tricks!这是一个让人听了充满神秘和好奇的词.对于我 ...
- nndl学习笔记(二)反向传播公式推导与详解
写在前面 反向传播回顾 为什么需要反向传播? 基本思想 算法流程 算法局限性 详细推导(核心:多元微积分的*链式法则*) 一些定义 1. 输出层的误差δL\delta^{L}δL 2. 利用下一层误差 ...
- 反向传播与梯度下降概念
反向传播和梯度下降这两个词,第一眼看上去似懂非懂,不明觉厉.这两个概念是整个神经网络中的重要组成部分,是和误差函数/损失函数的概念分不开的. 神经网络训练的最基本的思想就是:先"蒙" ...
- 【深度学习】深度学习入门——BP网络反向传播
BP网络反向传播 1.原理 2.Code bc.m fc.m bp_batch.m bp_online.m 本博客代码为本人选修<深度学习引论>课程所用,源代码与课件截图属于Zhang Y ...
- Educoder 机器学习 神经网络 第三关:反向传播算法
任务描述 相关知识 数据集介绍 神经网络是如何训练 前向传播 交叉熵 反向传播 sklearn中的神经网络 编程要求 测试说明 任务描述 本关任务:用sklearn构建神经网络模型,并通过鸢尾花数据集 ...
最新文章
- centos6.7x86_64安装nginx (good)
- nmon服务器监控工具的使用安装
- SQL优化笔记分享:34条实用经验可别错过
- mysql每一步花费时间_MySQL之:日志
- (JAVA)FileWriter
- 【POJ - 2255】Tree Recovery (给定树的先序中序,输出后序)
- Vue、element-ui的resetFields()方法重置表单无效问题及解决办法
- c1flexGrid 在单元格中显示图片, 及行号
- idea 工程中有某个类,仍然报错 Cannot resolve symbol XXX 的问题
- html5 小车动画_HTML5 实现小车动画效果(Canvas/CSS3/JQuery)
- 【物理应用】基于Matlab GUI超声场可视化仿真模拟【含Matlab源码 1494期】
- Pilosa文档翻译(二)入门指南
- 使用deepin 20作为开发环境
- VScode恢复删除的文件
- 正点原子IMX6UL底板硬件设计指南
- 微信公众号定位用户所在位置
- Windows XP下如何实现共享上网
- 华为2022硬件逻辑笔试题
- 阿里云率先达成国家绿色数据中心标准,平均PUE低于1.3...
- 在互联网卷不动了,还能做什么?