OpenNH

日常のひとこま(自分用のメモとかあれこれ)

よく使うかもしれない線形代数まとめ

はじめに

線形代数学、それは大学で勉強はいろいろしてきましたが講義聞いてるだけでは何につかうの?って感じで全く頭に入っていなかったものです。ですが、研究をするようになって線形代数学の重要性を身にしてみ感じるようになりましたね。ほんとに単純な計算で躓いてしまうと開発速度が遅くなって仕方ないですよね…...。式が解ければ制御できるのに解き方がわからん!ってなって式を解くのに何時間もかけるのはもったいなく感じます。

なので、少しでも時間の節約になればと思い線形代数の計算式をメモ書き程度に載せておきます(あくまで自分用)。

まだ全然項目がありませんが、時間あるときに随時載せていく予定です。
 
 

ヤコビ行列(ヤコビアン

ヤコビ行列(Jacobian matrix)って、要はベクトルをベクトルで微分したものですね。
ベクトル値関数
 f(x) = [ f_1(x), f_2(x), . . . , f_m(x) ]^T
をベクトル
 x = [ x_1, x_2, . . . , x_n ]^T
微分すると、
\[ \frac{\partial f(x)}{\partial x} =
\left[ \begin{array} {rrr}
\frac{\partial f_1}{\partial x_1} & \ldots & \frac{\partial f_1}{\partial x_n} \\
\vdots & \ddots & \vdots \\
\frac{\partial f_m}{\partial x_1} & \ldots & \frac{\partial f_m}{\partial x_n}
\end{array} \right]
\]
となります。これが f xに関するヤコビ行列(ヤコビアン)です。


<例題>
ベクトル値関数 fとベクトル xが以下のように与えられた場合のヤコビ行列は?
\[ f(x) = \left[
\begin{array}{c}
x_1 \\
x_1^2+x_2 \\
x_1^3+x_2^2+x_3 \\
x_1^4+x_2^3+x_3^2+x_4
\end{array}
\right]
~~~~~~~
x = \left[
\begin{array}{c}
x_1 \\
x_2 \\
x_3 \\
x_4
\end{array}
\right]
\]
このときのヤコビ行列は以下のようになります。
\[ \frac{\partial f(x)}{\partial x} =
\left[ \begin{array} {rrrr}
1 & 0 & 0 & 0 \\
2x_1 & 1 & 0 & 0 \\
3x_2 & 2x_2 & 1 & 0 \\
4x_3 & 3x_3 & 2x_3 & 1
\end{array} \right]
\]


ヘッセ行列

ヘッセ行列(Hessian matrix)は、スカラ値関数をベクトルで二階微分したものですね。
ヘッセ行列を考えるにはまず勾配ベクトルを考えるとわかりやすいです。

スカラ値関数 f(x)をベクトル x = [ x_1, x_2, . . . , x_n ]^T 微分すると、
\[ \frac{\partial f(x)}{\partial x} = \left[ \frac{\partial f}{\partial x_1}, \ldots, \frac{\partial f}{\partial x_n} \right]^T \]
となります。これが、 f xに関する勾配ベクトルです。
(ただし、上式は物理学で用いられる勾配ベクトル \nabla fを表しています。)

それで、ヘッセ行列とは勾配ベクトルをさらにベクトル x微分したものなので、
\[ \frac{\partial^2 f(x)}{\partial x^2} =
\left[ \begin{array} {rrr}
\frac{\partial^2 f}{\partial x_1 \partial x_1} & \ldots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\
\vdots & \ddots & \vdots \\
\frac{\partial^2 f}{\partial x_n \partial x_1} & \ldots & \frac{\partial^2 f}{\partial x_n \partial x_n}
\end{array} \right]
\]
となります。ベクトルをベクトルで微分するのは上述したヤコビ行列の導出でやっているので同様にして解けます。
 
 
 
参考となる資料:

非線形最適制御入門 (システム制御工学シリーズ)

非線形最適制御入門 (システム制御工学シリーズ)

 
 

平均二乗誤差(MSE)

ある値cに対する,データ配列x_iの差分の平方の平均値を平均二乗誤差(MSE:Mean Squared Error)といい、以下の式で表す.
\[ MSE(c) = \frac{1}{n} \sum_{i=1}^n(x_i-c)^2 \]

なお、上式MSE(c)の平方根を平均二乗誤差平方根(RMSE : Root Mean Squared Error)と言い,以下の式で表す。
\[ RMSE(c) = \sqrt{\frac{1}{n} \sum_{i=1}^n(x_i-c)^2} \]