博客
关于我
矩阵 向量求导法则
阅读量:306 次
发布时间:2019-03-03

本文共 3778 字,大约阅读时间需要 12 分钟。

矩阵与向量微分运算规则

1. 行向量对元素求导

行向量对元素求导是线性代数中的基本操作,用于描述如何微分一个行向量中的元素。假设有一个行向量 ( \mathbf{u} = [u_1, u_2, ..., u_n]^T ),其中 ( u_i ) 表示第 ( i ) 个元素。行向量对第 ( i ) 个元素求导的结果为一个标量,表示该元素对整体行向量的变化率。数学表达式为:

[\frac{\partial \mathbf{u}}{\partial u_i} = 1]

这个结果表明,行向量对其任意一个元素求导的结果都为1。


2. 列向量对元素求导

列向量对元素求导的过程类似于行向量,但求导的结果是一个列向量。假设有一个列向量 ( \mathbf{v} = [v_1; v_2; ...; v_n] ),其中 ( v_i ) 表示第 ( i ) 个元素。列向量对第 ( i ) 个元素求导的结果为:

[\frac{\partial \mathbf{v}}{\partial v_i} = \mathbf{e}_i]

其中 ( \mathbf{e}_i ) 是第 ( i ) 个基向量,表示仅第 ( i ) 个位置为1,其余位置为0。


3. 矩阵对元素求导

矩阵对元素求导是一个扩展的概念,适用于矩阵 ( A ) 中的每一个元素 ( a_{ij} )。假设矩阵 ( A ) 的大小为 ( m \times n ),则矩阵对第 ( (i,j) ) 个元素求导的结果仍然是标量:

[\frac{\partial A}{\partial a_{ij}} = 1]

这个结果表明,矩阵对其任意一个元素求导的结果都为1。


4. 元素对行向量求导

当元素 ( x ) 对行向量 ( \mathbf{u} = [u_1, u_2, ..., u_n]^T ) 求导时,结果是一个行向量,其中只有与 ( x ) 相关联的位置为1,其余位置为0。例如,假设 ( x = u_2 ),则:

[\frac{\partial \mathbf{u}}{\partial x} = [0, 1, 0, ..., 0]^T]


5. 元素对列向量求导

元素对列向量 ( \mathbf{v} = [v_1; v_2; ...; v_n] ) 求导的结果是一个列向量。同样,只有与元素 ( x ) 相关联的位置为1,其余位置为0。例如,假设 ( x = v_3 ),则:

[\frac{\partial \mathbf{v}}{\partial x} = [0; 0; 1; 0, ..., 0]^T]


6. 矩阵对行向量求导

矩阵对行向量求导的结果是一个行向量。假设矩阵 ( A ) 是 ( m \times n ) 的矩阵,行向量 ( \mathbf{u} = [u_1, u_2, ..., u_n]^T ),则:

[\frac{\partial \mathbf{u}}{\partial A} = \mathbf{A}^T]

其中 ( \mathbf{A}^T ) 是矩阵 ( A ) 的转置。


7. 行向量对列向量求导

行向量对列向量求导的结果是一个标量矩阵(即一个矩阵),其中只有与行向量和列向量相关联的位置为1,其余位置为0。假设行向量 ( \mathbf{u} = [u_1, u_2, ..., u_n]^T ) 和列向量 ( \mathbf{v} = [v_1; v_2; ...; v_m]^T ),则:

[\frac{\partial \mathbf{v}}{\partial \mathbf{u}} = \mathbf{I}_{m \times n}]

其中 ( \mathbf{I}_{m \times n} ) 是一个 ( m \times n ) 的单位矩阵。


8. 列向量对行向量求导

列向量对行向量求导的结果是一个标量矩阵(即一个矩阵),其中只有与列向量和行向量相关联的位置为1,其余位置为0。假设列向量 ( \mathbf{v} = [v_1; v_2; ...; v_m]^T ) 和行向量 ( \mathbf{u} = [u_1, u_2, ..., u_n]^T ),则:

[\frac{\partial \mathbf{u}}{\partial \mathbf{v}} = \mathbf{I}_{n \times m}]

其中 ( \mathbf{I}_{n \times m} ) 是一个 ( n \times m ) 的单位矩阵。


9. 行向量对行向量求导

行向量对行向量求导的结果是一个标量矩阵(即一个矩阵),其中只有与行向量相关联的位置为1,其余位置为0。假设行向量 ( \mathbf{u} = [u_1, u_2, ..., u_n]^T ) 和行向量 ( \mathbf{w} = [w_1, w_2, ..., w_n]^T ),则:

[\frac{\partial \mathbf{w}}{\partial \mathbf{u}} = \mathbf{I}_{n \times n}]

其中 ( \mathbf{I}_{n \times n} ) 是一个 ( n \times n ) 的单位矩阵。


10. 列向量对列向量求导

列向量对列向量求导的结果是一个标量矩阵(即一个矩阵),其中只有与列向量相关联的位置为1,其余位置为0。假设列向量 ( \mathbf{v} = [v_1; v_2; ...; v_m]^T ) 和列向量 ( \mathbf{w} = [w_1; w_2; ...; w_m]^T ),则:

[\frac{\partial \mathbf{w}}{\partial \mathbf{v}} = \mathbf{I}_{m \times m}]

其中 ( \mathbf{I}_{m \times m} ) 是一个 ( m \times m ) 的单位矩阵。


11. 矩阵对行向量求导

矩阵对行向量求导的结果是一个行向量。假设矩阵 ( A ) 是 ( m \times n ) 的矩阵,行向量 ( \mathbf{u} = [u_1, u_2, ..., u_n]^T ),则:

[\frac{\partial \mathbf{u}}{\partial A} = \mathbf{A}^T]

其中 ( \mathbf{A}^T ) 是矩阵 ( A ) 的转置。


12. 矩阵对列向量求导

矩阵对列向量求导的结果是一个列向量。假设矩阵 ( A ) 是 ( m \times n ) 的矩阵,列向量 ( \mathbf{v} = [v_1; v_2; ...; v_n]^T ),则:

[\frac{\partial \mathbf{v}}{\partial A} = \mathbf{A}^T]

其中 ( \mathbf{A}^T ) 是矩阵 ( A ) 的转置。


例一

考虑矩阵微分的一种常见应用:误差传播。假设有一个函数 ( f(\mathbf{x}) = \mathbf{A}\mathbf{x} + \mathbf{b} ),其中 ( \mathbf{x} ) 是一个列向量,( \mathbf{A} ) 是一个矩阵,( \mathbf{b} ) 是一个行向量。假设误差 ( \Delta \mathbf{x} ) 在 ( \mathbf{x} ) 上的变化率为:

[\frac{\partial \mathbf{x}}{\partial \Delta \mathbf{x}} = \mathbf{I}]

则误差 ( \Delta f ) 在 ( \mathbf{x} ) 上的变化率为:

[\frac{\partial f}{\partial \mathbf{x}} = \mathbf{A}^T]

因此,误差 ( \Delta f ) 在 ( \mathbf{A} ) 上的变化率为:

[\frac{\partial f}{\partial \mathbf{A}} = \mathbf{A}^T \Delta f]


例二

考虑行向量微分的实际应用。假设有一个函数 ( f(\mathbf{u}) = \mathbf{A}\mathbf{u} ),其中 ( \mathbf{u} ) 是一个行向量,( \mathbf{A} ) 是一个矩阵。假设误差 ( \Delta \mathbf{u} ) 在 ( \mathbf{u} ) 上的变化率为:

[\frac{\partial \mathbf{u}}{\partial \Delta \mathbf{u}} = \mathbf{I}]

则误差 ( \Delta f ) 在 ( \mathbf{u} ) 上的变化率为:

[\frac{\partial f}{\partial \mathbf{u}} = \mathbf{A}^T]

因此,误差 ( \Delta f ) 在 ( \mathbf{A} ) 上的变化率为:

[\frac{\partial f}{\partial \mathbf{A}} = \mathbf{A}^T \Delta f]

转载地址:http://jasm.baihongyu.com/

你可能感兴趣的文章
Objective-C实现FTP文件上传(附完整源码)
查看>>
Objective-C实现fuzzy operations模糊运算算法(附完整源码)
查看>>
Objective-C实现Gale-Shapley盖尔-沙普利算法(附完整源码)
查看>>
Objective-C实现gamma recursive伽玛递归算法(附完整源码)
查看>>
Objective-C实现getline函数功能(附完整源码)
查看>>
Objective-C实现gnome sortt侏儒排序算法(附完整源码)
查看>>
Objective-C实现GraphVertex图顶点算法(附完整源码)
查看>>
Objective-C实现greatest common divisor最大公约数算法(附完整源码)
查看>>
Objective-C实现greedy coin change贪心硬币找零算法(附完整源码)
查看>>
Objective-C实现half adder半加器算法(附完整源码)
查看>>
Objective-C实现hamiltonianCycle哈密尔顿图算法(附完整源码)
查看>>
Objective-C实现hamming code汉明码算法(附完整源码)
查看>>
Objective-C实现hamming numbers汉明数算法(附完整源码)
查看>>
Objective-C实现hammingDistance汉明距离算法(附完整源码)
查看>>
Objective-C实现hanning 窗(附完整源码)
查看>>
Objective-C实现hanoiTower汉诺塔算法(附完整源码)
查看>>
Objective-C实现hardy ramanujana定理算法(附完整源码)
查看>>
Objective-C实现harmonic series调和级数算法(附完整源码)
查看>>
Objective-C实现harris算法(附完整源码)
查看>>
Objective-C实现HashTable哈希表算法(附完整源码)
查看>>