ベクトルによる微分のレイアウト(分子レイアウト記法と分母レイアウト記法)

2つの異なる記法と混乱

ベクトル(や行列)による微分には2つの異なるレイアウトが用いられる。

  • 分母レイアウト記法 (Denominator Layout)
  • 分子レイアウト記法 (Numerator Layout)

これらは演算結果が異なるため、意識して用いないとしばしば混乱の元となる。

以下では \mathbf{x} \in \mathbb{R}^{n \times 1} は縦ベクトルとし、y \in \mathbb{R}スカラーする。また、便宜上、ライプニッツの記法に則り「分子」は微分される関数の方、「分母」は微分する独立変数の方を表すことにする。

分母レイアウト記法 (Denominator Layout)

スカラー微分する際、分母が縦ベクトルなら結果も縦ベクトルになる。分母が横ベクトルなら結果も横ベクトルとなる。つまり、直感的には分母のベクトル(や行列)のレイアウトが結果にそのまま反映されると解釈できる。

\displaystyle{
\frac{\partial y}{\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial y}{\partial x_1} \\ \vdots \\ \frac{\partial y}{\partial x_n} \end{bmatrix} \in \mathbb{R}^{n \times 1}
}

一方、スカラーによって微分する際は、分子が縦ベクトルなら結果は横ベクトルになる。分子が横ベクトルなら結果は縦ベクトルになる。

\displaystyle{
\frac{\partial \mathbf{x}}{\partial y} = \begin{bmatrix} \frac{\partial x_1}{\partial y} & \cdots & \frac{\partial x_n}{\partial y} \end{bmatrix} \in \mathbb{R}^{1 \times n}
}

分子レイアウト記法 (Numerator Layout)

スカラー微分する際、分母が縦ベクトルなら結果は横ベクトルになる。分母が横ベクトルなら結果は縦ベクトルになる。分母レイアウトとは転置したような関係となっている。

\displaystyle{
\frac{\partial y}{\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial y}{\partial x_1} & \cdots & \frac{\partial y}{\partial x_n} \end{bmatrix} \in \mathbb{R}^{1 \times n}
}

一方、スカラーによって微分する際は、分子が縦ベクトルなら結果も縦ベクトルになる。分子が横ベクトルなら結果も横ベクトルになる。つまり、直感的には分子のベクトル(や行列)のレイアウトが結果にそのまま反映されると解釈できる。

\displaystyle{
\frac{\partial \mathbf{x}}{\partial y} = \begin{bmatrix} \frac{\partial x_1}{\partial y} \\ \vdots \\ \frac{\partial x_n}{\partial y} \end{bmatrix} \in \mathbb{R}^{n \times 1}
}

どちらを用いるべきか

分母レイアウト記法を目にする機会が多く感じるので、個人的にはこちらを推奨したい。

ただしヤコビ行列の定義は分子レイアウトを採用していることが多く感じるため、悩ましい。

関連リンク