ヤコビ行列

ヤコビ行列とは何ぞやということで、調べてみました。
なお、スーパー初心者が自分でどうにかかみ砕いた結果を書いていますので、数学的な正確性についての保証はありません。

まずはwikiの記述から。

数学、特に多変数微分積分学およびベクトル解析におけるヤコビ行列(やこびぎょうれつ、Jacobian matrix)あるいは単にヤコビアン[1]または関数行列(かんすうぎょうれつ、Funktionalmatrix)は、一変数スカラー値関数における接線の傾きおよび一変数ベクトル値函数の勾配の、多変数ベクトル値関数に対する拡張、高次元化である。

wikipedia

「接線の傾き」とか「勾配」という単語からも予想できるように、微分積分に関連しています。ヤコビ行列は特に、多変数の関数についてのものです。

置換積分

ヤコビ行列を理解するのに、まず、カギとなるのは「置換積分」です。
「置換積分」のおさらいをします。

そのままだと積分しにくい複雑な式について、式の一部をより単純な形の式で置き換えることによって積分しやすい形に変換するという手法です。
例えば、下のような定積分を考えます。
$$F(x) = \int_a^b f(x) dx$$
ここで、\(f(g(t))\) となる関数\(g(t)\)を定義します。変数を\(x\)から\(t\)に変えるわけです。
さらに、\(a \le x \le b \Rightarrow \alpha \le t \le \beta \) と積分範囲も式に合わせて変換します。

そうすると、最終的に以下の式で結果を求められるようになります。
これが「置換積分」です。
$$\int_a^b f(x) dx = \int_\alpha^\beta f(g(t))g'(t) dt$$
簡単な例として、以下のような式をイメージすることができます。
$$\int_a^b (2x+1)^2 dx$$
このとき、\(t = 2x+1\) とすると、\(f(x) = f(g(t))\)、\(g(t) = t\)と書き換えることができます。
なお、\(a \le x \le b \Rightarrow \frac{a}{2} \le t \le \frac{b}{2} \) です。

そのため、最終的に求めるべきは、
$$\int_\frac{a}{2}^\frac{b}{2} f(g(t))g'(t) dt
=\int_\frac{a}{2}^\frac{b}{2} t^2 \frac{dt}{2}$$
と、非常にシンプルな形に変わります。
また、 \(\frac{dt}{dx} = 2\) なので\(dx = \frac{dt}{2}\) です。

さて、上で求めたものは変数がひとつ(\(=x\))に対する積分でした。
では変数が複数、つまり多変数の場合どうすればよいか? といった時に登場するのが「ヤコビ行列」です。
wikiで「多変数ベクトル値関数に対する拡張、高次元化である。」と書かれているのはそのためですね。

多変数への拡張

簡単に2つの変数を持つ関数 \(f(x, y)\) を考えます。
この関数は、\(x = \phi (u, v), y = \psi (u, v)\) で表されるとします。

イメージしにくい場合は、\(xy\)平面から\(\theta\), \(r\)への極座標への変換
\(x =r cos\theta, y = rsin\theta\)
を考えてみるといいかもしれません。 ある座標から別の座標への変換ということですね。
微分しづらい座標系を、もっと簡単な座標系に投影して計算をするという意味合いでしょうか。

この場合、\(u\)と\(v\)が微笑値変わった時の\(x\)と\(y\)の値、つまり\(x\)と\(y\)の全微分はどのようになるでしょうか。

全微分

また新たな単語が出てきましたので、整理します。
「全微分」とは、多変数の関数において、各変数の\(偏微分\times 無限小\)をすべての変数について足し合わせたものを指します。
\(x\)と\(y\)からなる2変数\(f(x, y)\)の全微分は下の式で表せます。
$$f'(x, y) = \frac{\partial f}{\partial x}*dx + \frac{\partial f}{\partial y}*dy$$
\(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \) :\(x, y\)それぞれの傾き
\(dx, dy\) :\(x, y\)の微小値

全部の変数が少しだけ変わった時の傾き=関数全体の傾きを求めていることになります。

ヤコビ行列の導入

というわけで、あらためて \(x = \phi (u, v)\), \(y = \psi (u, v)\)に対する全微分を考えます。全微分の式に従って、\(dx, dy\)は、以下のように書き表せます。

$$dx = \frac {\partial \phi}{\partial u}du + \frac {\partial \phi}{\partial v}dv$$
$$dy = \frac {\partial \psi}{\partial u}du + \frac {\partial \psi}{\partial v}dv$$

これを行列の形に整理して、
$$\begin{pmatrix}
dx\\
dy
\end{pmatrix}
= \begin{pmatrix}
\frac {\partial \phi}{\partial u} & \frac {\partial \phi}{\partial v}\\
\frac {\partial \psi}{\partial u} & \frac {\partial \psi}{\partial v }
\end{pmatrix}\begin{pmatrix}
du\\
dv
\end{pmatrix} $$

右辺の1つ目の行列を見ると、異なる座標系\(x, y\)と\(u, v\)の橋渡しをしてくれていることがわかります。これが「ヤコビ行列」です。(ようやくたどり着きました)

【ヤコビ行列】
$$ \begin{pmatrix}
\frac {\partial \phi}{\partial u} & \frac {\partial \phi}{\partial v}\\
\frac {\partial \psi}{\partial u} & \frac {\partial \psi}{\partial v }
\end{pmatrix} $$

ちなみに、3次元以上になっても同じ考えで行列式を作ることができます。

では、学習したヤコビ行列を胸に、次回は再びPyTorch Tutorialに戻ります。
ヤコビアンとかその他については、また必要に迫られた時に調べます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です