2021年9月3日金曜日

ベクトルの公式メモ

\( \renewcommand{\vec}{\boldsymbol} \)

機械学習などの最適化問題で登場するベクトルの微分に関する公式の確認方法をメモ.必要に応じて追加していく ベクトル$\vec{x}$と$\vec{u}$の成分を次のように定義しておき,必要に応じて添字$i,j$などを追加する. 微分を含む公式の確認に必要な微分を含まない公式もあるので分けている.

微分を含まない公式

\begin{eqnarray} \vec{x} &=& \left[ \begin{array}{c} x\\ y\\ z \end{array}\right] ,\ \ \ \vec{u} &=& \left[ \begin{array}{c} u\\ v\\ w \end{array}\right] \end{eqnarray}
\begin{eqnarray} \sum_i \vec{x}^T \vec{u}_i &=& \sum_i [x, y, z] \left[ \begin{array}{c} u_i\\ v_i\\ w_i \end{array}\right] \\ &=& \sum_i (x u_i + y v_i + z w_i)\\ &=& x \sum_i u_i + y \sum_i v_i + z \sum_i w_i\\ &=& [x, y, z] \left[ \begin{array}{c} \sum_i u_i\\ \sum_i v_i\\ \sum_i w_i \end{array} \right]\\ &=& [x, y, z] \sum_i \left[ \begin{array}{c} u_i\\ v_i\\ w_i \end{array} \right]\\ &=& \vec{x}^T \sum_i \vec{u}_i \end{eqnarray}

ベクトルも行列の一種と考えると,行列の結合法則 $(AB)C = A(BC)$ から見れば当たり前の法則かもしれない.

\begin{eqnarray} \vec{x}^T \vec{u}\vec{u} &=& (\vec{x}^T \vec{u})\vec{u}\\ &=& \vec{u}(\vec{x}^T \vec{u})\\ &=& \vec{u}(\vec{u}^T\vec{x})\\ &=& \vec{u} \vec{u}^T\vec{x}\\ \end{eqnarray}

ただ,この公式は少し当たり前じゃない部分もある. $\vec{u}\vec{u}$が行列どうしの積としては成立しないので$(\vec{x}^T \vec{u})\vec{u}$の順序としかみなせないため. 左辺には$\vec{x}^T \vec{u}$という内積が登場しても行列はどこにも見当たらない.

一方右辺は,$(\vec{u}\vec{u}^T)\vec{x}$とも$\vec{u}(\vec{u}^T\vec{x})$ともみなすことができる. $(\vec{u}\vec{u}^T)\vec{x}$とみなすと$(\vec{u}\vec{u}^T)$の部分は正方行列になる. $\vec{u}(\vec{u}^T\vec{x})$とみなすと$(\vec{u}^T\vec{x})$の部分は内積と同じで単なるスカラーになる.

微分を含む公式

(未完成)
(未完成)
(未完成)
(未完成)
(未完成)
\begin{eqnarray} \frac{\partial }{\partial \vec{x}}\left| A \vec{x} + \vec{b} \right|^2 &=& \frac{\partial }{\partial \vec{x}}\left( A \vec{x} + \vec{b} \right)^T\left( A \vec{x} + \vec{b} \right)\\ &=& \frac{\partial }{\partial \vec{x}}\left( \vec{x}^TA^T A \vec{x} + \vec{x}^T A^T \vec{b} + \vec{b}^T A \vec{x} + \vec{b}^T\vec{b} \right)\\ &=& 2 A^TA \vec{x} + 2 A^T \vec{b} \\ &=& 2 A^T(A \vec{x} + \vec{b}) \\ \end{eqnarray}
\begin{eqnarray} \frac{\partial }{\partial \vec{k}}\left| k \vec{x} + \vec{b} \right|^2 &=& \frac{\partial }{\partial \vec{k}}\left( k \vec{x} + \vec{b} \right)^T\left( k \vec{x} + \vec{b} \right)\\ &=& \frac{\partial }{\partial \vec{k}}\left( k^2 \vec{x}^T \vec{x} + k \vec{x}^T \vec{b} + k \vec{b}^T \vec{x} + \vec{b}^T\vec{b} \right)\\ &=& 2 k \vec{x}^T \vec{x} + 2 \vec{x}^T \vec{b} \\ &=& 2 \vec{x}^T(k \vec{x} + \vec{b}) \\ \end{eqnarray}