cv2 数学基础---矩阵微分
定义
(1) 向量对标量求导 矩阵对标量求导
我们可以看到上述求导过程实际上就是不同函数对变量求导,然后按照向量或者矩阵的形式排列,注意这里结果的结构应该与函数的结构保持一致
(2)标量对向量求导 标量对矩阵求导
这里的理解使同一个函数对不同的变量求导,然后注意结果要和变量的形式保持一致,比如对向量求导,向量如果是\(n \times 1\)的列向量,结果也是\(n \times 1\)的列向量,如果是行向量结果也是行向量,如果是\(m \times n\)的矩阵,结果也是同样大小的矩阵
(3)向量对向量求导
我们可以将上述过程看作函数向量中的每个元素对变量向量求导,这样就是标量对向量求导,然后再把所有结果搭成一个矩阵
当x是行向量时,标量对向量求导得到一个\(1 \times n\)的行向量,因为有m个函数,所以有m个行向量,最后矩阵就是\(m \times n\)
当x是列向量时,标量对向量求导得到一个\(n \times 1\)的列向量,因为有m个函数,所以有m个列向量,最后矩阵就是\(n \times m\)
重要结论
应用上面的定义,我们可以得到一些十分有用的结论:
应用
下面推导一下在单应变换中使用拉格朗日乘子法得到的函数的驻点的推导:
这个式子:
\(\frac{\partial \left [ \left \| Ax \right \| ^{2 }_{2} + \lambda \left ( 1 - \left \| x\right \| ^{2 }_{2} \right ) \right ] }{\partial x} = 0\)
我们把它展开可以得到:
$\frac{\partial\left ( Ax\right ) ^{T}Ax }{\partial x} - \lambda \frac{\partial x^{T}x }{\partial x} = 0 $
即$\frac{\partial x^{T} A^{T}Ax }{\partial x} - \lambda \frac{\partial x^{T}x }{\partial x} = 0 $
对于第一项我们应用重要结论中的第六条可以得到:
\(\frac{\partial x^{T} A^{T}Ax }{\partial x} = 2 A^{T}A x\)
第二项应用第二条得到:
\(\lambda \frac{\partial x^{T}x }{\partial x} = 2\lambda x\)
代回原式即得:
\(A^{T}A x = \lambda x\)