设两个向量 $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$$