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

神经网络之链式法则

一、什么是链式法则?

链式法则是微积分中用于处理复合函数求导的基本规则。

🧠 基本思想:

当一个变量依赖另一个变量,而另一个变量又依赖另一个变量时,总的变化率是每一步变化率的乘积


🎯 经典形式(单变量):

设:

z=f(y),y=g(x)⇒z=f(g(x))z = f(y), \quad y = g(x) \Rightarrow z = f(g(x)) z=f(y),y=g(x)z=f(g(x))

那么链式法则是:

dzdx=dzdy⋅dydx\frac{dz}{dx} = \frac{dz}{dy} \cdot \frac{dy}{dx} dxdz=dydzdxdy

即:

“总导数 = 每层局部导数的乘积”


二、链式法则中:何时是乘法?何时是加法?

链式法则的核心操作是乘法,但在计算图(如神经网络)中,有些情况却需要加法。这两种形式其实不是矛盾,而是出现在不同的结构中。

我们来分别说明:


✅ 1. 使用乘法的场景:函数嵌套

📌 结构:

x→y=g(x)→z=f(y)⇒z=f(g(x))x \rightarrow y = g(x) \rightarrow z = f(y) \Rightarrow z = f(g(x)) xy=g(x)z=f(y)z=f(g(x))

🧮 梯度计算:

dzdx=dzdy⋅dydx\frac{dz}{dx} = \frac{dz}{dy} \cdot \frac{dy}{dx} dxdz=dydzdxdy

✅ 特点:
  • 每个函数的输出作为下一个函数的输入
  • 形成一条链
  • 每一步都“放大”或“缩小”输入的变化
  • 所以梯度乘起来
📎 举例:

z=sin⁡(x2)⇒dzdx=cos⁡(x2)⋅2xz = \sin(x^2) \Rightarrow \frac{dz}{dx} = \cos(x^2) \cdot 2x z=sin(x2)dxdz=cos(x2)2x


✅ 2. 使用加法的场景:分支结构(多路径传播)

📌 结构:

x→f(x)=a,x→g(x)=b,L=a+b⇒L=f(x)+g(x)x \rightarrow f(x) = a,\quad x \rightarrow g(x) = b,\quad L = a + b \Rightarrow L = f(x) + g(x) xf(x)=a,xg(x)=b,L=a+bL=f(x)+g(x)

🧮 梯度计算:

dLdx=dadx+dbdx\frac{dL}{dx} = \frac{da}{dx} + \frac{db}{dx} dxdL=dxda+dxdb

✅ 特点:
  • 一个变量 xxx 同时用于多个地方(有多个“输出”分支)
  • 每条路径都有独立的影响
  • 梯度在反向传播时合流,进行加法
📎 举例:

L=x2+sin⁡(x)⇒dLdx=2x+cos⁡(x)L = x^2 + \sin(x) \Rightarrow \frac{dL}{dx} = 2x + \cos(x) L=x2+sin(x)dxdL=2x+cos(x)


三、为什么是乘法?为什么是加法?

🔷 为什么是乘法(链式结构)?

源于导数的定义:

dfdx=lim⁡Δx→0ΔfΔx\frac{df}{dx} = \lim_{\Delta x \to 0} \frac{\Delta f}{\Delta x} dxdf=Δx0limΔxΔf

如果:

x→y→zx \rightarrow y \rightarrow z xyz

则:

Δz=dzdy⋅Δy=dzdy⋅dydx⋅Δx\Delta z = \frac{dz}{dy} \cdot \Delta y = \frac{dz}{dy} \cdot \frac{dy}{dx} \cdot \Delta x Δz=dydzΔy=dydzdxdyΔx

所以:

dzdx=dzdy⋅dydx\frac{dz}{dx} = \frac{dz}{dy} \cdot \frac{dy}{dx} dxdz=dydzdxdy

变化被层层放大/缩小 → 所以是乘法


🔶 为什么是加法(分支结构)?

当一个变量影响多个路径时,每条路径都会对最终输出产生一部分影响。

例如:

L=f(x)+g(x)L = f(x) + g(x) L=f(x)+g(x)

那么:

ΔL=Δf+Δg=f′(x)Δx+g′(x)Δx=(f′(x)+g′(x))Δx\Delta L = \Delta f + \Delta g = f'(x)\Delta x + g'(x)\Delta x = (f'(x) + g'(x)) \Delta x ΔL=Δf+Δg=f(x)Δx+g(x)Δx=(f(x)+g(x))Δx

所以:

dLdx=f′(x)+g′(x)\frac{dL}{dx} = f'(x) + g'(x) dxdL=f(x)+g(x)

多个路径独立贡献 → 所以是加法


✅ 总结表格:链式法则中的乘法 vs 加法

项目使用场景结构形式导数公式原因
🔗 乘法函数嵌套z=f(g(x))z = f(g(x))z=f(g(x))dzdx=f′(g(x))⋅g′(x)\frac{dz}{dx} = f'(g(x)) \cdot g'(x)dxdz=f(g(x))g(x)变化层层放大
➕ 加法分支结构L=f(x)+g(x)L = f(x) + g(x)L=f(x)+g(x)dLdx=f′(x)+g′(x)\frac{dL}{dx} = f'(x) + g'(x)dxdL=f(x)+g(x)多路径贡献叠加

✅ 一句话总结

链式法则的本质是“乘法”传播,但当一个变量影响多个路径时,每条路径的梯度会在反向传播时加和** —— 所以在分支结构中使用“加法”。**

http://www.dtcms.com/a/486156.html

相关文章:

  • C#设计模式源码讲解
  • 性能测试单场景测试时,是设置并发读多个文件,还是设置不同的用户读不同的文件?
  • Qt初识(对象树,乱码问题,小结)
  • 基于Home Assistant的机器人低延迟通信项目详细调研报告
  • 深圳网站做的好的公司婚庆网站开发目的
  • 中小企业网站制作是什么宁德网站建设51yunsou
  • 代理模式 vs AOP:支付服务中的日志增强实践(含执行顺序详解)
  • linux系统运维教程,linux系统运维攻略
  • string字符集
  • Linux 命令:fsck
  • 如何提升生物科技研发辅助的效率?
  • ECEF坐标转换库
  • 企业商务网被公司优化掉是什么意思
  • 网站虚拟主机购买教程专业网站设计工作室
  • 数据库管理-第376期 Oracle AI DB 23.26新特性一览(20251016)
  • 【Nature高分思路速递】 物理驱动的机器学习
  • word文档转pdf开源免费,可自定义水印
  • k8s(五)PV和PVC详解
  • 深度学习与自然语言处理
  • python 部署可离线使用的中文识别OCR(window)
  • 湖州微信网站建设网站301了不知道在哪做的
  • 请描述网站开发的一般流程图php网站开发经理招聘
  • 关于pkg-config的使用示例--g++编译过程引入第三方库(如Opencv、Qt)
  • 外贸soho先做网站wordpress如何把背景颜色调为白色
  • zk02-知识演进
  • 全自动相机在线标定方法
  • 设计模式篇之 中介者模式 Mediator
  • 卫星几何处理
  • 【个人成长笔记】在Ubuntu中的Linux系统安装sogoupinyin搜狗输入法完整版(亲测有效)
  • 3d驱动模型。如何让人物说话?什么情况下需要训练wav2lip模型,自己训练的好处是什么?操作步骤是?