矩阵向量求导链式法则

1. 向量对向量求导的链式法则

       首先我们来看看向量对向量求导的链式法则。假设多个向量存在依赖关系,比如三个向量x→y→z存在依赖关系,则我们有下面的链式求导法则:

       

2. 标量对多个向量的链式求导法则

      在我们的机器学习算法中,最终要优化的一般是一个标量损失函数,因此最后求导的目标是标量,无法使用上一节的链式求导法则,比如2向量,最后到1标量的依赖关系:x→y→z,此时很容易发现维度不相容。

       

    如果是标量对更多的向量求导,比如y1→y2→...→yn→zy1→y2→...→yn→z,则其链式求导表达式可以表示为:

      

3. 标量对多个矩阵的链式求导法则

     下面我们再来看看标量对多个矩阵的链式求导法则,假设有这样的依赖关系:X→Y→z那么我们有:

       

      机器学习常用矩阵求导:

      

 

链式法则是微积分中非常重要的一个法则,尤其在多变量函数和神经网络的反向传播中起着核心作用。 --- ## ✅ 偏导数与链式法则简介 ### 1. **什么是偏导数?** 对于多元函数 $ z = f(x, y) $,当我们固定其他变量时,对其中一个变量求导,称为**偏导数**: - 对 $ x $ 的偏导:$ \frac{\partial z}{\partial x} $ - 对 $ y $ 的偏导:$ \frac{\partial z}{\partial y} $ --- ## ✅ 链式法则(Chain Rule)——偏导数版本 ### 情况一:单变量嵌套函数 设: - $ z = f(u) $ - $ u = g(x) $ 则: $$ \frac{dz}{dx} = \frac{df}{du} \cdot \frac{du}{dx} $$ 这是普通链式法则。 --- ### 情况二:多变量复合函数(偏导数链式法则) #### 示例 1:两个中间变量 设: - $ z = f(u, v) $ - $ u = g(x, y) $ - $ v = h(x, y) $ 那么,$ z $ 是关于 $ x $ 和 $ y $ 的复合函数。 对 $ x $ 的偏导为: $$ \frac{\partial z}{\partial x} = \frac{\partial f}{\partial u} \cdot \frac{\partial u}{\partial x} + \frac{\partial f}{\partial v} \cdot \frac{\partial v}{\partial x} $$ 同理,对 $ y $ 的偏导为: $$ \frac{\partial z}{\partial y} = \frac{\partial f}{\partial u} \cdot \frac{\partial u}{\partial y} + \frac{\partial f}{\partial v} \cdot \frac{\partial v}{\partial y} $$ --- ### 示例 2:三个变量嵌套 设: - $ z = f(u) $ - $ u = g(v) $ - $ v = h(x, y) $ 则: $$ \frac{\partial z}{\partial x} = \frac{df}{du} \cdot \frac{dg}{dv} \cdot \frac{\partial h}{\partial x} $$ 这是一个典型的“链式”结构。 --- ## 🧠 理解链式法则的图形化表示 你可以将链式法则想象成从输出到输入的路径,每条路径对应一项乘积,所有路径之和就是最终的偏导数。 例如: ``` z ↑ f(u, v) ↑ ↑ u=g(x,y) v=h(x,y) ↑ ↑ x y ``` 要计算 $ \frac{\partial z}{\partial x} $,你只需要沿着所有从 $ z $ 到 $ x $ 的路径,把每个环节的导数相乘,然后加起来即可。 --- ## 📌 示例详解 ### 例题:设 $ z = u^2 + v $,其中 $ u = x + y $,$ v = xy $ 求:$ \frac{\partial z}{\partial x} $ --- ### 步骤 1:写出偏导关系 - $ \frac{\partial z}{\partial u} = 2u $ - $ \frac{\partial z}{\partial v} = 1 $ - $ \frac{\partial u}{\partial x} = 1 $ - $ \frac{\partial v}{\partial x} = y $ --- ### 步骤 2:应用链式法则 $$ \frac{\partial z}{\partial x} = \frac{\partial z}{\partial u} \cdot \frac{\partial u}{\partial x} + \frac{\partial z}{\partial v} \cdot \frac{\partial v}{\partial x} = 2u \cdot 1 + 1 \cdot y = 2(x + y) + y = 2x + 3y $$ --- ## ✅ 编程实现(Python + sympy 符号计算) ```python from sympy import symbols, diff # 定义符号变量 x, y = symbols('x y') u = x + y v = x * y z = u**2 + v # 计算偏导 dz_dx = diff(z, x) print("∂z/∂x =", dz_dx) ``` 输出: ``` ∂z/∂x = 2*x + 2*y + y → 即:2x + 3y ``` --- ## ✅ 总结公式 | 类型 | 表达式 | |------|--------| | 一般形式 | $ \frac{\partial z}{\partial x} = \sum_{i} \frac{\partial z}{\partial u_i} \cdot \frac{\partial u_i}{\partial x} $ | | 双变量链式法则 | $ \frac{\partial z}{\partial x} = \frac{\partial f}{\partial u} \cdot \frac{\partial u}{\partial x} + \frac{\partial f}{\partial v} \cdot \frac{\partial v}{\partial x} $ | ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值