zoukankan      html  css  js  c++  java
  • 【351】实数对向量求导公式及推导

    实数对向量求导公式,得到结果的形式与 分母(自变量) 一致,意思就是,自变量是列向量,结果也是列向量

    因变量是否转置对于结果无影响,这一条是我自己总结的。

    公式一:将 $x$ 约掉后,剩下一个跟 $x$ 维度一直的就可以了,所以都是 $a$。

    $$
    abla_{mathbf{x}} (mathbf{a}^T mathbf{x}) = color{red}{ abla_{mathbf{x}} (mathbf{a}^T mathbf{x})^T} = abla_{mathbf x} (mathbf{x}^T mathbf{a}) = color{blue}{mathbf{a}}
    $$
    $$
    frac {partial mathbf{a}^T mathbf{x}} {partial mathbf{x}} = color{red}{frac {partial (mathbf{a}^T mathbf{x})^T} {partial mathbf{x}}} = frac {partial mathbf{x}^T mathbf{a}} {partial mathbf{x}} = color{blue}{mathbf{a}}
    $$

    公式二:理解成 $x*x=x^2$ 吧,所以就是 $2x$。

    $$
    abla_{mathbf{x}} ||mathbf{x}||_2^2 = color{red} { abla_{mathbf x} (mathbf{x}^T mathbf{x})} = color{blue} {2 mathbf{x}}
    $$
    $$
    frac {partial ||mathbf{x}||_2^2} {partial mathbf{x}} = color{red} {frac {partial (mathbf{x}^T mathbf{x})} {partial mathbf{x}}} = color{blue} { 2 mathbf{x}}
    $$

    公式三:本来结果应该类似 $2Ax$,然而由于转置不影响,也可以得 $2A^Tx$,所以综合来看就是 $(A+A^T)x$。

    $$
    abla_{mathbf x} (mathbf{x}^T mathbf{A} mathbf{x}) = color{red}{ abla_{mathbf x} (mathbf{x}^T mathbf{A} mathbf{x})^T} = abla_{mathbf x} (mathbf{x}^T mathbf{A}^T mathbf{x}) = color{blue} {(mathbf{A} + mathbf{A}^T) mathbf{x}}
    $$
    $$
    frac {partial (mathbf{x}^T mathbf{A} mathbf{x})} {partial mathbf{x}} = color{red}{frac {partial (mathbf{x}^T mathbf{A} mathbf{x})^T} {partial mathbf{x}}} = frac {partial (mathbf{x}^T mathbf{A}^T mathbf{x})} {partial mathbf{x}} = color{blue} {(mathbf{A} + mathbf{A}^T) mathbf{x}}
    $$

    实值函数对向量求导

    - 未作特殊说明即为对变量 $oldsymbol{x}$ 求导

    - 一个基本的雅克比矩阵(由定义易得):

    - $ abla_oldsymbol{x}(Aoldsymbol{x})=A$
    - 特别地,$ abla_{oldsymbol{x}} oldsymbol{x} = abla_{oldsymbol{x}} (Ioldsymbol{x}) = I $

    - 向量内积的求导法则

    - 注:内积是一个实数,因此本节相当于实数对向量求导,结果是与自变量同型的向量。

    - $ abla(oldsymbol{a}^Toldsymbol{x}) = abla(oldsymbol{x}^Toldsymbol{a}) = oldsymbol{a}$

    - 证明:$dfrac{partialoldsymbol{a^Tx}}{partial x_i} = dfrac{partialsum_j a_j x_j}{partial x_i} = dfrac{partial a_i x_i}{partial x_i} = a_i$

    - $ abla ||oldsymbol{x}||_2^2 = abla(oldsymbol{x}^Toldsymbol{x}) = 2oldsymbol{x}$

    - 证明一(直接计算):$dfrac{partial ||oldsymbol{x}||_2^2}{partial x_i} = dfrac{partialsum_j x_j^2}{partial x_i} = dfrac{partial x_i^2}{partial x_i} = 2x_i$
    - 证明二(变量多次出现的求导法则):$ abla(oldsymbol{x}^Toldsymbol{x}) = abla_{oldsymbol{x}}(oldsymbol{x}_c^Toldsymbol{x}) + abla_{oldsymbol{x}}(oldsymbol{x}^Toldsymbol{x}_c) = 2 abla_{oldsymbol{x}}(oldsymbol{x}_c^Toldsymbol{x}) = 2oldsymbol{x}_c = 2oldsymbol{x}$,其中 $oldsymbol{x}_c$ 表示将 $oldsymbol{x}$ 的此次出现不视作自变量,而是视作与 $oldsymbol{x}$ 无关的常数,下同。

    - $ abla (oldsymbol{x}^TAoldsymbol{x}) = (A+A^T)oldsymbol{x}$

    - 证明(变量多次出现的求导法则):$$egin{align*}
    LHS & = & abla (oldsymbol{x}_c^TAoldsymbol{x}) + abla (oldsymbol{x}^TAoldsymbol{x}_c) \
    & = & abla ((A^Toldsymbol{x}_c)^Toldsymbol{x}) + abla ((Aoldsymbol{x}_c)^Toldsymbol{x}) \
    & = & A^Toldsymbol{x}_c + Aoldsymbol{x}_c \
    & = & RHS
    end{align*}$$
    - 若 $A$ 是对称矩阵,即 $A=A^T$,上式右边还可以进一步化简为 $2Aoldsymbol{x}$

    - **向量函数内积的求导法则**

    - 若 $oldsymbol{u}(oldsymbol{x}):mathbb{R}^n ightarrow mathbb{R}^m, oldsymbol{v}(oldsymbol{x}):mathbb{R}^n ightarrow mathbb{R}^m$,则 $ abla(oldsymbol{u}^Toldsymbol{v}) = ( abla_{oldsymbol{x}} oldsymbol{u})^T oldsymbol{v} + ( abla_{oldsymbol{x}} oldsymbol{v})^T oldsymbol{u}$

    - 证明(变量多次出现的求导法则 + 一次复合的求导法则):$LHS= abla(oldsymbol{u}^Toldsymbol{v}_c)+ abla(oldsymbol{u}_c^Toldsymbol{v}) = ( abla_{oldsymbol{x}} oldsymbol{u})^T oldsymbol{v}_c + ( abla_{oldsymbol{x}} oldsymbol{v})^T oldsymbol{u}_c = RHS$


    #### 向量数乘求导公式

    - $ abla_{oldsymbol{x}} (alpha(oldsymbol{x})oldsymbol{f(x)}) = oldsymbol{f(x)} abla_{oldsymbol{x}^T} alpha(oldsymbol{x}) + alpha(oldsymbol{x}) abla_{oldsymbol{x}}oldsymbol{f(x)}$

    - 说明:向量对向量求导,结果是一个雅克比矩阵,形状为 $oldsymbol{f}$ 的维度乘 $oldsymbol{x}$ 的维度

    - 推导:$dfrac{partial alpha f_i}{partial x_j} = f_i dfrac{partial alpha}{partial x_j} + alpha dfrac{partial f_i}{partial x_j} $,两边逐分量对比一下便知等式成立。

    - 记忆:按两个标量函数相乘的求导法则记,再注意一下**维度相容原理**即可。另外注意,等式左边 $alpha(oldsymbol{x})oldsymbol{f(x)}$ 是向量的数乘(若 $oldsymbol{f(x)}$ 为行向量也可视作矩阵乘法);右边 $alpha(oldsymbol{x}) abla_{oldsymbol{x}}oldsymbol{f(x)}$ 是矩阵的数乘。

  • 相关阅读:
    OpenCV——IplImage
    OpenCV——常用函数查询
    OpenCV——Sobel和拉普拉斯变换
    OpenCV——CvSeq动态结构序列
    OpenCV——人脸检测
    Java—Integer类
    Java—NumberFormat与DecimalFormat类
    sql事务机制
    存储过程
    java中的抽象类和接口
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/10297747.html
Copyright © 2011-2022 走看看