ベクトルをベクトルで微分したときの公式の証明について



- 1. ベクトルをベクトルで微分する
- 1.1. ベクトルをベクトルで微分したときの公式
- 2. 公式の証明
- 2.1. \(\dfrac{\partial \mathbf{x}}{\partial \mathbf{x}} = I_n\)
- 2.2. \(\dfrac{\partial}{\partial \mathbf{x}} (A \mathbf{x}) = A^T\)
- 2.3. \(\dfrac{\partial}{\partial \mathbf{x}} g(f(\mathbf{x})) = \dfrac{\partial f}{\partial \mathbf{x}} \cdot \dfrac{\partial g}{\partial \mathbf{y}}\)
- 3. 関連した記事
1. ベクトルをベクトルで微分する
$$ \dfrac{\partial }{\partial \mathbf{x}} \mathbf{a}= \begin{pmatrix} \dfrac{\partial a_1}{\partial x_1} & \dfrac{\partial a_2}{\partial x_1} & \dots & \dfrac{\partial a_n}{\partial x_1} \\ \dfrac{\partial a_1}{\partial x_2} & \dfrac{\partial a_2}{\partial x_2} & \dots & \dfrac{\partial a_n}{\partial x_2} \\ \vdots & \vdots & \ddots & \vdots \\ \dfrac{\partial a_1}{\partial x_n} & \dfrac{\partial a_2}{\partial x_n} & \dots & \dfrac{\partial a_n}{\partial x_n} \end{pmatrix} $$
1.1. ベクトルをベクトルで微分したときの公式
\begin{align*}
\frac{\partial x}{\partial x} &= I_n \\
\frac{\partial}{\partial x}(Ax) &= A^T \\
\end{align*}
ベクトルを入力とし、ベクトルを返す関数 \( f : \mathbb{R}^n \to \mathbb{R}^n \) および \( g : \mathbb{R}^n \to \mathbb{R}^n \) を合成したとき、合成関数の微分に関して次の関係が成り立ちます。
\[ \dfrac{\partial}{\partial \mathbf{x}} g(f(\mathbf{x})) = \dfrac{\partial f}{\partial \mathbf{x}} \cdot \dfrac{\partial g}{\partial \mathbf{y}} \]
2. 公式の証明
2.1. \(\dfrac{\partial \mathbf{x}}{\partial \mathbf{x}} = I_n\)
ベクトル \(\mathbf{x} = (x_1, x_2, \dots, x_n)^T\) の微分を考えると、
$$ \dfrac{\partial }{\partial \mathbf{x}} \mathbf{x}= \begin{pmatrix} \dfrac{\partial x_1}{\partial x_1} & \dfrac{\partial x_2}{\partial x_1} & \dots & \dfrac{\partial x_n}{\partial x_1} \\ \dfrac{\partial x_1}{\partial x_2} & \dfrac{\partial x_2}{\partial x_2} & \dots & \dfrac{\partial x_n}{\partial x_2} \\ \vdots & \vdots & \ddots & \vdots \\ \dfrac{\partial x_1}{\partial x_n} & \dfrac{\partial x_2}{\partial x_n} & \dots & \dfrac{\partial x_n}{\partial x_n} \end{pmatrix} $$
したがって、 \(i\) 行 \(j\) 列の要素の偏微分は
\[ \frac{\partial x_j}{\partial x_i} = \begin{cases} 1 & (i = j) \\ 0 & (i \ne j) \end{cases} \]
これはクロネッカーのデルタ\(\delta_{ij}\) です。行列で表すと、これは \( n \times n \) の単位行列 \( I_n \) です。
2.2. \(\dfrac{\partial}{\partial \mathbf{x}} (A \mathbf{x}) = A^T\)
正方行列 \(A\) とベクトル \(\mathbf{x}\) に対して、\(\mathbf{a} = A \mathbf{x}\) と置きます。各成分は次のようになります。
\[ a_j = \sum_{k=1}^n A_{jk} x_k \]
これを用いて、 \(i\) 行 \(j\) 列の要素の偏微分を計算します。
\[ \dfrac{\partial a_j}{\partial x_i} = \dfrac{\partial}{\partial x_i} \left( \sum_{k=1}^n A_{jk} x_k \right) = A_{ji} \]
したがって、行列 \(\dfrac{\partial \mathbf{a}}{\partial \mathbf{x}}\) の \(i\) 行 \(j\) 列の要素は \(A_{ji}\) となります。したがって、行列 \(A\) の転置 \(A^T\) になります。


2.3. \(\dfrac{\partial}{\partial \mathbf{x}} g(f(\mathbf{x})) = \dfrac{\partial f}{\partial \mathbf{x}} \cdot \dfrac{\partial g}{\partial \mathbf{y}}\)
\( \mathbf{y} = f(\mathbf{x}) \)、\( \mathbf{z} = g(\mathbf{y}) \) とします。各成分について、
\[ y_j = f_j(x_1, x_2, \dots, x_n) \]
\[ z_k = g_k(y_1, y_2, \dots, y_n) \]
チェーンルール(連鎖律)により、\(\dfrac{\partial z_k}{\partial x_i}\) は次のように計算できます。
\[ \dfrac{\partial z_k}{\partial x_i} = \sum_{j=1}^n \dfrac{\partial z_k}{\partial y_j} \dfrac{\partial y_j}{\partial x_i} \]
これは、行列の要素として次のように表すことができます。
- \(\dfrac{\partial z_k}{\partial x_i}\) は行列 \(\dfrac{\partial \mathbf{z}}{\partial \mathbf{x}}\) の \( (i, k) \) 成分
- \(\dfrac{\partial z_k}{\partial y_j}\) は行列 \(\dfrac{\partial \mathbf{z}}{\partial \mathbf{y}}\) の \( (j, k) \) 成分
- \(\dfrac{\partial y_j}{\partial x_i}\) は行列 \(\dfrac{\partial \mathbf{y}}{\partial \mathbf{x}}\) の \( (i, j) \) 成分
これらを組み合わせて、
\[ \left( \dfrac{\partial \mathbf{z}}{\partial \mathbf{x}} \right)_{ik} = \sum_{j=1}^n \left( \dfrac{\partial \mathbf{y}}{\partial \mathbf{x}} \right)_{ij} \left( \dfrac{\partial \mathbf{z}}{\partial \mathbf{y}} \right)_{jk} \]
したがって、行列では
\[ \dfrac{\partial \mathbf{z}}{\partial \mathbf{x}} = \dfrac{\partial \mathbf{y}}{\partial \mathbf{x}} \cdot \dfrac{\partial \mathbf{z}}{\partial \mathbf{y}} \]
つまり、
\[ \dfrac{\partial}{\partial \mathbf{x}} g(f(\mathbf{x})) = \dfrac{\partial f}{\partial \mathbf{x}} \cdot \dfrac{\partial g}{\partial \mathbf{y}} \]