当前位置: 首页 > news >正文

反向传播的微积分原理 | Chapter 4 | Deep Learning | 3Blue1Brown

目录

    • 前言
    • 1. 简介
    • 2. 神经网络中的链式法则
    • 3. 微积分的计算
    • 4. 公式含义
    • 5. 代价函数对权重偏置的敏感度
    • 6. 多个神经元的情形
    • 7. 回顾
    • 相关资料
    • 结语

前言

3Blue1Brown 视频笔记,仅供自己参考

这个章节主要来深度讲解反向传播中的一些微积分理论

官网:https://www.3blue1brown.com

视频:https://www.bilibili.com/video/BV16x411V7Qg

1. 简介

在这里插入图片描述

这章开始我们就假设你已经看过第三章了,上章让大家直观上感受了反向传播算法的原理

在这里插入图片描述

在这章里,我们会更深入讲解一些其中的微积分理论,这个看不太懂很正常,所以我们的六字格言 “停一停想一想” 在这依旧管用,这章我们的目标是给大家展示在机器学习中,我们一般是怎么理解链式法则的,这点跟别的基础微积分课讲得会有点不一样

在这里插入图片描述

对于微积分不够熟悉的观众,我之前已经做了一整个系列了,大家感兴趣的可以看看:Calculus

2. 神经网络中的链式法则

在这里插入图片描述

我们从最最简单的网络讲起吧,每层只有一个神经元

在这里插入图片描述

图上这个网络就是由 3 个权重和 3 个偏置决定的,我们的目标是理解代价函数对于这些变量有多敏感,这样我们就知道怎么调整这些变量才可以使得代价降低得最快,

在这里插入图片描述

我们先来关注最后两个神经元吧,我给最后一个神经元的激活值一个上标 L,表示它处于第 L 层,那么,前一个神经元的激活值就是 a ( L − 1 ) a^{(L-1)} a(L1),这里的上标不是指数,而是用来标记我们正在讨论哪一层,过一会我会用到下标来表示别的意思

在这里插入图片描述

给定一个训练样本,我们把这个最终层激活值要接近的目标叫做 y,例如 y 可能是 0 或者 1,那么这个简易网络对于单个训练样本的代价就等于 ( a ( L ) − y ) 2 \color{black}(a^{(L)}-\color{gold}y\color{black})^2 (a(L)y)2,对于这个样本,我们把这个代价值标记为 C 0 \color{red}C_0 C0

在这里插入图片描述

还记得吗,最终层的激活值是这么算出来的,即一个权重 w L \color{blue}w^L wL 乘上前一个神经元的激活值再加上一个偏置 b L \color{pink}b^L bL,最后把加权和塞进一个特定的非线性函数,例如 sigmoid 或者 ReLU 之类的,给这个加权和起一个名字会方便很多,就叫它 z L \color{green}z^L zL 好了,跟对应的激活值用同一个上标

在这里插入图片描述

这里的项挺多,概括起来我们拿权重 w L \color{blue}w^L wL、前一个激活值 a ( L − 1 ) a^{(L-1)} a(L1) 以及偏置值 b L \color{pink}b^L bL 一起来算出 z L \color{green}z^L zL 再算出 a ( L ) a^{(L)} a(L),最后再用上常量 y \color{gold}y y 算出代价值 C 0 \color{red}C_0 C0,当然 a ( L − 1 ) a^{(L-1)} a(L1) 也是由它自己的权重和偏置决定的,以此类推,但我们现在重点不在那里

在这里插入图片描述

上面这些东西都是数字,没错吧,我们可以想象每个数字都对应一个数轴,我们第一个目标是理解代价函数对权重 w L \color{blue}w^L wL 的微小变化有多敏感,或者换句话讲求 C 0 \color{red}C_0 C0 w L \color{blue}w^L wL 的导数

在这里插入图片描述

当你看到 ∂ w \color{blue}\partial w w 之类的项时,请把它当做这是对 w \color{blue}w w 的微小扰动,好比改变 0.01,然后把 ∂ C 0 \color{red}\partial C_0 C0 当做 “改变 w \color{blue}w w C 0 \color{red}C_0 C0 的值造成的变化”,我们求得是这两个数的比值

在这里插入图片描述

概念上说 w L \color{blue}w^L wL 的微小变化会导致 z L \color{green}z^L zL 产生些变化,然后会导致 a L a^L aL 产生变化,最终影响到代价值

在这里插入图片描述

那么,我们把式子拆开,首先求 z L \color{green}z^L zL 的变化量比上 w L \color{blue}w^L wL 的变化量,也就是求 z L \color{green}z^L zL 关于 w L \color{blue}w^L wL 的导数,同理考虑 a L a^L aL 的变化量比上因变量 z L \color{green}z^L zL 的变化量,以及最终的 C 0 \color{red}C_0 C0 的变化量比上直接改动 a L a^L aL 产生的变化量

在这里插入图片描述

这不就是链式法则么,把三个比值相乘就可以算出 C 0 \color{red}C_0 C0 w L \color{blue}w^L wL 的微小变化有多敏感

3. 微积分的计算

在这里插入图片描述

现在图上多了一大堆符号,稍微花点时间理解一下每个符号都是什么意思吧,因为马上我们就要对各个部分求导了

在这里插入图片描述

C 0 \color{red}C_0 C0 关于 a L a^L aL 的导数就是 2 ( a ( L ) − y ) \color{black}2(a^{(L)}-\color{gold}y\color{black}) 2(a(L)y),这也就意味着导数的大小跟网络最终的输出减目标结果的差成正比,如果网络的输出差别很大,即使 w \color{blue}w w 稍稍变一点代价也会改变非常大

在这里插入图片描述

a L a^L aL z L \color{green}z^L zL 求导就是求 sigmoid 的导数,或就你选择的非线性激活函数求导

在这里插入图片描述

z L \color{green}z^L zL w L \color{blue}w^L wL 求导结果就是 a L − 1 a^{L-1} aL1

4. 公式含义

在这里插入图片描述

对我自己来说,这里如果不退一步好好想想这些公式的含义,很容易卡住

在这里插入图片描述

就最后这个导数来说,这个权重的改变量 ∂ w \color{blue}\partial w w 对最后一层的影响有多大取决于之前一层的神经元,所谓的 “一同激活的神经元关联在一起” 的出处即来源于此

在这里插入图片描述

不过这只是包含一个训练样本的代价对 w ( L ) \color{blue}w^{(L)} w(L) 的导数,由于总的代价函数是许许多多训练样本所有代价的总平均,它对 w ( L ) \color{blue}w^{(L)} w(L) 的导数就需要求 ∂ C ∂ w ( L ) \frac{\color{red}\partial C}{\color{blue}\partial w^ {(L)}} w(L)C 这个表达式之于每一个训练样本的平均

在这里插入图片描述

当然这只是梯度向量 ∇ C \color{red}\nabla C C 的一个分量,而梯度向量 ∇ C \color{red}\nabla C C 本身则由代价函数对每一个权重和每一个偏置求偏导构成的

5. 代价函数对权重偏置的敏感度

在这里插入图片描述

在这里插入图片描述

值得注意的是,求出这些偏导中的一个就完成了一大半的工作量,对偏置的求导步骤也就基本相同,只要把 ∂ z ∂ w \frac{\color{green}\partial z}{\color{blue} \partial w} wz 替换成 ∂ z ∂ b \frac{\color{green}\partial z}{\color{pink} \partial b} bz,对应的公式中可以看出导数 ∂ z ∂ b \frac{\color{green}\partial z}{\color{pink} \partial b} bz 等于 1

在这里插入图片描述

这里也涉及到了反向传播的概念,我们来看下这个代价函数对上一层激活值的敏感度,展开来说,链式法则的第一项 z \color{green}z z 对上一层激活值的敏感度就是权重 w ( L ) \color{blue}w^{(L)} w(L)

在这里插入图片描述

虽然说过我们不能直接改变激活值,但我们很有必要关注这个值,因为我们可以反向应用链式法则来计算代价函数对之前的权重偏置的敏感度

6. 多个神经元的情形

在这里插入图片描述

你可能觉得这个例子举得太简单了,毕竟每层只有一个神经元,而真实的神经网络会比这个例子复杂百倍,然而说真的,每层多加若干个神经元并不会复杂很多,真的,只不过多写一些下标罢了

在这里插入图片描述

我们用加上下标的神经元来表示 L 层的若干神经元,而不是用 a ( L ) a^{(L)} a(L) 统称 L 层的激活值,现在用 k 来标注 L-1 层的神经元,j 则是 L 层的神经元

在这里插入图片描述

现在要求代价函数,我们从期望的输出着手,计算上一层激活值和期望输出的差值的平方然后求和,即求 ( a j ( L ) − y j ) 2 \color{black}(a_j^{(L)}-\color{gold}y_j\color{black})^2 (aj(L)yj)2 的和

在这里插入图片描述

由于权重的数量多了不少,那么每个权重要多用几个下标,我们记连接第 k 个神经元和第 j 个神经元的连线为 w j k ( L ) \color{blue}w_{jk}^{(L)} wjk(L),这些下标感觉像标反了,可能有点别扭,不过和第一章中的权重矩阵的下标是一致的

在这里插入图片描述

同样的,把加权和记为 z 总是很方便,那么最后一层的激活值依然等于指定的函数(如 sigmoid)在 z 处的函数值

在这里插入图片描述

在这里插入图片描述

你懂我意思吧,现在的方程式和之前每层只有一个神经元的时候本质是一样的,只是看着复杂一些

在这里插入图片描述

链式法则形式的导数表达式所描述的代价对某个权重的敏感度也是一样的,这里大家可以暂停推导一下每一项的含义,唯一改变的是代价对 L-1 层激活值的导数

在这里插入图片描述

此时,激活值可以通过不同的途径影响代价函数,也就是说,神经元一边通过 a 0 ( L ) a_0^{(L)} a0(L) 来影响代价函数,另一边通过 a 1 ( L ) a_1^{(L)} a1(L) 来影响代价函数,得把这些都加起来,然后…就搞定了

在这里插入图片描述

只要计算出倒数第二层代价函数对激活值的敏感度,接下来只要重复上述过程,计算喂给倒数第二层的权重和偏置就好了

7. 回顾

现在长吁一口气吧!如果上面这些明白了,那你就看明白了神经网络的主力—反向传播

在这里插入图片描述

链式法则表达式给出了决定梯度每个分量的偏导,使得我们能不断下探,最小化神经网络的代价

在这里插入图片描述

静下来想一想你会发现这些复杂的层层叠叠很烧脑,消化这些知识需要花一些时间,这很正常

相关资料

  • http://neuralnetworksanddeeplearning.com/chap2.html
  • https://github.com/mnielsen/neural-networks-and-deep-learning
  • https://colah.github.io/posts/2015-08-Backprop/

结语

这个章节我们主要学习了反向传播以微积分的形式表达,其核心就是链式法则

OK,以上就是本章的全部内容了,下章我们来讲 Transformer,敬请期待😄

相关文章:

反向传播的微积分原理 | Chapter 4 | Deep Learning | 3Blue1Brown

目录 前言1. 简介2. 神经网络中的链式法则3. 微积分的计算4. 公式含义5. 代价函数对权重偏置的敏感度6. 多个神经元的情形7. 回顾相关资料结语 前言 3Blue1Brown 视频笔记,仅供自己参考 这个章节主要来深度讲解反向传播中的一些微积分理论 官网:https://…...

matlab读取excel表格

使用matlab读取excel表格中的数据 使用推荐代码读取excel表格中的数据 path "C:\Users\24975\Desktop\503\GUI展示案例\Tx_20_0_Rx_40_90_0.1_95_L.xlsx";%文件路径 data readtable(path,Sheet,Sheet1,ReadRowNames,false,ReadVariableNames,false,Ra…...

基于springboot+vue实现的助学兼职系统(源码+L文+ppt)4-092

基于springbootvue实现的助学兼职系统(源码L文ppt)4-092 第4章 系统设计 4.1 总体功能设计 一般学生、招聘公司和管理者都需要登录才能进入助学兼职系统,使用者登录时会在后台判断使用的权限类型,包括一般使用者和管理者,一般使…...

⌈ 传知代码 ⌋ 农作物病害分类(Web端实现)

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...

CMU生成式人工智能大模型:从入门到放弃(九)

引言 在前面的系列博客中,我们深入探讨了生成式对抗网络(GANs)和变分自编码器(VAEs)等生成式模型。今天,我们将探索扩散模型(Diffusion Models)的进一步应用,并讨论在上…...

HTML基础总结

一、简介 HTML(HyperText Markup Language)即超文本标记语言,是用于创建网页的标准标记语言。它通过使用各种标签来定义网页的结构和内容,告诉浏览器如何显示网页。HTML 文档由标签和文本组成,标签用于描述文本的性质…...

EXCELL中如何两条线画入一张图中,标记坐标轴标题?

1,打开excel,左击选中两列, 2,菜单栏>“插入”>”二维折线图”选中一个 3,选中出现的两条线中的一条右击>最下一行,“设置数据系列格式” 4,右测“系列选项中”>点击“次坐标轴” 5…...

Zabbix企业级分布式监控环境部署

“运筹帷幄之中,决胜千里之外”。在IT运维中,监控占据着重要的地位,按比例来算,说占30%一点也不为过。对IT运维工程师来说,构建一个真正可用的监控告警系统是一项艰巨的任务。在监控系统的开源软件中,可供选…...

水轮发电机油压自动化控制系统解决方案介绍

在现代水电工程中,水轮机组油压自动化控制系统,不仅直接关系到水轮发电机组的安全稳定运行,还影响着整个水电站的生产效率和经济效益。 一、系统概述 国科JSF油压自动控制系统,适用于水轮发电机组调速器油压及主阀(蝶…...

今天不分享技术,分享秋天的故事

引言 这个爱情故事好像是个悲剧,你说的是婚姻。爱情没有悲剧,对爱者而言,爱情怎么会是悲剧呢。对春天而言,秋天是它的悲剧吗。结尾是什么,等待,之后呢,没有之后。或者说,等待的结果…...

转录组上游分析流程(三)

环境部署——数据下载——查看数据(非质控)——数据质控——数据过滤(过滤低质量数据) 测序得到的原始序列含有接头序列和低质量序列,为了保证信息分析的准确性,需要对原始数据进行质量控制,得到高质量序列(Clean Reads),原始序列…...

excel判断某一列(A列)中的数据是否在另一列(B列)中

如B列如果有7个元素,在A列右边的空白列中,输入如下公式: COUNTIF($B$1:$B$7,A1), 其中,$B$1:$B$7代表A列中的所有数据即绝对范围,A1代表B列中的一个单元格....

[环境配置]macOS上怎么查看vscode的commit id

macOS的commit id和windows上有点不一样,windows可以在帮助-关于查看 macOS则需要再左边第一个查看...

.net framework 3.5sp1组件安装进度条不动启动错误怎么解决

安装.NET Framework 3.5 SP1通常需要管理员权限。这是因为安装过程可能需要修改系统文件和注册表项,这些操作通常需要管理员权限才能执行。在Windows系统上,安装.NET Framework 3.5 SP1通常通过控制面板中的“启用或关闭Windows功能”选项进行&#xff0…...

学习threejs,利用THREE.ExtrudeGeometry拉伸几何体实现svg的拉伸

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.ExtrudeGeometry拉伸…...

大模型之三十二-语音合成TTS(coqui) 之二 fine-tune

在 大模型之三十-语音合成TTS(coqui)[shichaog CSDN]中提到了xttsv2的fine-tune。 数据情况: 我是从bilibili up主小Lin说提取了一些视频,然后进行了重新的fine-tune。 训练结果 如下图所示,上面波形幅度较大的是xttsv2原始模型的结果&am…...

JVM的内存模型是什么,每个区域的作用是什么,以及面试题(含答案)

JVM(Java 虚拟机)内存模型定义了 Java 程序在运行时如何分配、管理和优化内存。JVM 内存模型主要分为几个关键区域,每个区域有特定的作用: JVM 内存模型 堆内存(Heap): 作用:用于存…...

《设计模式三》Java代理模式实现

Java代理模式实现 静态代理实现 // Subject.java // 主题接口,定义了请求方法 public interface Subject {void request(); }// RealSubject.java // 真实主题实现类,实现了Subject接口 public class RealSubject implements Subject {Overridepublic …...

vue3中计算属性的用法以及使用场景

在 Vue 3 中,计算属性(computed properties)是一种基于依赖项动态计算并缓存的响应式数据。它与 Vue 2 中的计算属性类似,但在组合式 API 中使用 computed 函数来定义。计算属性的核心优势在于能够自动缓存计算结果,仅…...

pytorh学习笔记——cifar10(六)MobileNet V1网络结构

基础知识储备: 一、深度可分离卷积(Depthwise Separable Convolution) MobileNet的核心是深度可分离卷积(Depthwise Separable Convolution),深度可分离卷积是卷积神经网络(CNN&#xf…...

麒麟v10sp3操作系统安装疑难解答:无法登录界面的终极解决方案

1. 麒麟v10sp3安装后无法登录的典型场景 最近帮朋友安装麒麟v10sp3操作系统时遇到了一个棘手问题:系统安装完成后重启,本该出现的图形化登录界面迟迟不出现,屏幕上只显示一个带有三个选项的提示框。这种情况我在多个品牌的国产电脑上都遇到过…...

别再只做温度计了!用STM32玩点高级的:双INMP441麦克风阵列的时延测量与声源指向

从零构建STM32双麦克风声源定位系统:I2S协议、PHAT算法与舵机控制实战 在嵌入式音频处理领域,声源定位一直是个既有趣又充满挑战的方向。想象一下,当你拍手时,一个小型装置能立即转向声源方向——这种看似简单的互动背后&#xf…...

2026年10款高效AI写小说软件全面测评,快速解决卡文与大纲难题(含实测体验)

经常有新人问我:现在ai写小说到底靠不靠谱?是不是生成的都是没有感情的机器味? 说实话,前两年我觉得不行,但到了2026年,如果你还不会用AI辅助,真的会比别人慢半个身位。从灵感枯竭到大纲崩坏&a…...

C++常量表达式constexpr在编译期计算与模板元编程中的结合

C常量表达式constexpr与模板元编程的结合为现代C带来了前所未有的编译期计算能力,这种技术组合不仅提升了程序性能,还增强了代码的表达能力。在C11引入constexpr后,开发者能够在编译期完成复杂的计算,而模板元编程则提供了类型操作…...

如何通过HS2-HF Patch解决《Honey Select 2》插件整合与兼容性问题

如何通过HS2-HF Patch解决《Honey Select 2》插件整合与兼容性问题 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 《Honey Select 2》作为一款流行的3D角色定制…...

3步搞定Windows卡顿:Win11Debloat系统优化工具使用全攻略

3步搞定Windows卡顿:Win11Debloat系统优化工具使用全攻略 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and…...

【Matlab Simulink】从Excel到2-D Lookup Table:数据导入与模型搭建实战

1. 为什么需要将Excel数据导入2-D Lookup Table 在工程建模和仿真过程中,我们经常会遇到需要处理二维表格数据的情况。比如在汽车发动机建模时,发动机的扭矩特性通常以转速和油门开度为输入,输出扭矩值的二维表格形式存在。这类数据通常保存在…...

Parca配置热重载终极指南:如何实现动态更新配置而不重启服务

Parca配置热重载终极指南:如何实现动态更新配置而不重启服务 【免费下载链接】parca Continuous profiling for analysis of CPU and memory usage, down to the line number and throughout time. Saving infrastructure cost, improving performance, and increas…...

LeetCode 热题100(JAVA)

LeetCode 热题100(JAVA) 哈希 1. 两数之和 给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数, 并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不…...

STM32实战:光敏电阻传感器从原理到智能应用

1. 光敏电阻与STM32的完美邂逅 第一次接触光敏电阻时,我完全被这个小东西迷住了。它就像电子世界的"眼睛",能感知光线的强弱变化。记得当时我用万用表测量它的阻值,看着数值随着手电筒的远近而变化,那种感觉就像发现了新…...