• 向量对向量求导


    设两个向量 $x,y$ 分别为

    $$x = (x_{1},x_{2},cdots, x_{m})^{T}$$

    $$y = (y_{1},y_{2},cdots, y_{n})^{T}$$

    虽然是多变量对多变量求偏导,但最终都是归结于一个单变量对另一个单变量求偏导,只是函数和自变量都写成了向量形式。

    我们要做的就是找到求偏导的结果所对应的形式。

    形状规则:向量 $y$ 对向量 $x$ 求导,分两步:

       1)向量 $y$ 的每个元素是标量,先做 $y$ 的每个元素对向量 $x$ 求导,这里按照标量对向量的求导规则进行。

       2)第一步做好后,将求导结果按 $y$ 的形状排列。

    观察下面这个图,向量对向量求导就只有这四种情况,求导结果其实是个多维数组(张量)。

       

    1. 行向量对列向量求导

       向量 $y^{T}$ 是一个 $1 imes n$ 的行向量,现在它对自变量 $x$ 求导,其中 $x$ 是一个 $ m imes 1$ 的列向量,向量 $y^{T}$ 中的每个元素都是向量 $x$ 的函数。

       那这个结果会是什么形式呢?每个元素 $y_{j}$ 对向量 $x$ 都有 $m$ 个偏导数,而向量 $y^{T}$ 有 $n$ 个元素,所以结果必然有 $mn$ 个元素。

       标量对向量求偏导,结果是个列向量,所以每个元素标量 $y_{j}$ 对向量 $x$ 的导数为

    $$frac{d y_{j}}{d x} = egin{bmatrix}
    frac{partial y_{j}}{partial x_{1}} \
    frac{partial y_{j}}{partial x_{2}} \
    cdots \
    frac{partial y_{j}}{partial x_{m}}
    end{bmatrix}$$

       所以

    $$frac{d y^{T}}{d x} = egin{bmatrix}
    frac{d y_{1}}{d x} & frac{d y_{2}}{d x} & cdots & frac{d y_{n}}{d x}
    end{bmatrix} =
    egin{bmatrix}
    frac{partial y_{1}}{partial x_{1}} & frac{partial y_{2}}{partial x_{1}} & cdots & frac{partial y_{n}}{partial x_{1}} \
    frac{partial y_{1}}{partial x_{2}} & frac{partial y_{2}}{partial x_{2}} & cdots  & frac{partial y_{n}}{partial x_{2}}\
    cdots  & cdots  & cdots  & cdots \
    frac{partial y_{1}}{partial x_{m}} & frac{partial y_{2}}{partial x_{m}} & cdots  & frac{partial y_{n}}{partial x_{m}}
    end{bmatrix}$$

       所以结果就是一个 $m imes n$ 矩阵。

       进一步地:行向量 $(Ax)^{T}$ 对列向量 $x$ 的导数为

    $$frac{d (Ax)^{T}}{d x} = A^{T}$$

       推导:设 $A = (a_{ij})_{n imes m}$,$Ax = c$,则 $c$ 的第 $k$ 个元素的值为

    $$c_{k} = sum_{j = 1}^{m}a_{kj}x_{j}$$

             $c_{k}$ 对列向量 $x$ 求偏导有

    $$frac{d c_{k}}{d x} = egin{bmatrix}
    frac{partial c_{k}}{partial x_{1}} \
    frac{partial c_{k}}{partial x_{2}} \
    cdots \
    frac{partial c_{k}}{partial x_{m}}
    end{bmatrix} = egin{bmatrix}
    a_{k1} \
    a_{k2} \
    cdots \
    a_{km}
    end{bmatrix}$$

             所以

    $$frac{d c^{T}}{d x} = A^{T}$$

     

    2. 列向量对行向量求导

       向量 $y$ 是一个 $n imes 1$ 的矩阵,现在它对向量 $x^{T}$ 求导,其中 $x^{T}$ 是一个 $1 imes m$ 的矩阵,向量 $y$ 中的每一个元素都是向量 $x^{T}$ 的函数。

       同上分析,这结果也有 $mn$ 个偏导数。标量对行向量求导,结果是个行向量,所以每个元素标量 $y_{j}$ 对向量 $x^{T}$ 的导数为

    $$frac{d y_{j}}{d x^{T}} = egin{bmatrix}
    frac{partial y_{j}}{partial x_{1}} & frac{partial y_{j}}{partial x_{2}} & cdots  & frac{partial y_{j}}{partial x_{m}}
    end{bmatrix}$$

       所以

    $$frac{d y}{d x^{T}} = egin{bmatrix}
    frac{partial y_{1}}{partial x_{1}} & frac{partial y_{1}}{partial x_{2}} & cdots  & frac{partial y_{1}}{partial x_{m}}\
    frac{partial y_{2}}{partial x_{1}} & frac{partial y_{2}}{partial x_{2}} & cdots  & frac{partial y_{2}}{partial x_{m}}\
    cdots  & cdots  & cdots  & cdots \
    frac{partial y_{n}}{partial x_{1}} & frac{partial y_{n}}{partial x_{2}} & cdots  & frac{partial y_{n}}{partial x_{m}}
    end{bmatrix}$$

       显然有

    $$frac{d y}{d x^{T}} = left ( frac{d y^{T}}{d x} ight )^{T}$$

       进一步地:列向量 $Ax$ 对行向量 $x^{T}$ 的导数为

    $$frac{d (Ax)}{d x^{T}} = A$$

       推导:设 $A = (a_{ij})_{n imes m}$,$Ax = c$,则 $c$ 的第 $k$ 个元素的值为

    $$c_{k} = sum_{j = 1}^{m}a_{kj}x_{j}$$

             $c_{k}$ 对行向量 $x^{T}$ 求偏导有

    $$frac{d c_{k}}{d x^{T}} = egin{bmatrix}
    frac{partial c_{k}}{partial x_{1}} & frac{partial c_{k}}{partial x_{2}} & cdots & frac{partial c_{k}}{partial x_{m}}
    end{bmatrix} = egin{bmatrix}
    a_{k1} & a_{k2} & cdots  & a_{km}
    end{bmatrix}$$

             显然有

    $$frac{d c}{d x^{T}} = A$$

  • 相关阅读:
    USACO1.3.3Calf Flac
    USACO1.3.1Mixing Milk
    USACO1.3.2Barn Repair
    USACO2.1.4Healthy Holsteins
    USACO1.5.2Prime Palindromes
    USACO1.4.2The Clocks
    USACO2.1.2Ordered Fractions
    PHP关联数组教程
    你的服务器没有正确响应Token验证的解决方法
    微信公众平台消息接口开发(10)语音触发(非识别)
  • 原文地址:https://www.cnblogs.com/yanghh/p/13758243.html
Copyright © 2020-2023  润新知