機械学習の基礎(線形代数)を備忘録として残しておく。
1.ベクトル・行列
【単位ベクトル】
$ \overrightarrow {a} = \begin{pmatrix} 1 \\ -2 \\ 2 \end{pmatrix} $ と同じ方向を持つ単位ベクトル(大きさが1)を求める
$\displaystyle \pm\frac{1}{| \overrightarrow a|} \overrightarrow a = \pm \frac{1}{\sqrt{1^2 + (-2)^2 + 2^2}} \begin{pmatrix} 1 \\ -2 \\ 2 \end{pmatrix} $
$\displaystyle = \pm \frac{1}{3} \begin{pmatrix} 1 \\ -2 \\ 2 \end{pmatrix} $
【ベクトルの直行】
ベクトルの内積は、
$ \overrightarrow a \overrightarrow b = |a||b|cosθ $ と表わされる。
よって、直行する場合は$ \overrightarrow a \overrightarrow b = 0$となる。
$ \overrightarrow {a} = \begin{pmatrix} 2 \\ -3 \\ 1 \end{pmatrix} $、$ \overrightarrow {b} = \begin{pmatrix} 1 \\ 2 \\ 4 \end{pmatrix} $の時、$ \overrightarrow {a}$と$\overrightarrow {b}$が直交するか?
$\displaystyle \overrightarrow a・\overrightarrow b = \begin{pmatrix} 2 \\ -3 \\ 1 \end{pmatrix}・\begin{pmatrix} 1 \\ 2 \\ 4 \end{pmatrix}$
$\displaystyle = 2・1 + (-3)・2 + 1・4 = 0 $
よって直交する。
【行列式】
$ A = \begin{pmatrix} a & b \\ c & d\end{pmatrix}$ の行列式$|A|$は、$|A| = ad -bc$
$A = \begin{pmatrix} a11 & a12 & a13 \\ a21 & a22& a23 \\ a31 & a32 & a33\end{pmatrix}$の行列式$|A|$は、
$|A| = a11a22a33 + a12a23a31 + a13a21a32 -a13a22a31 - a11a23a32 -a12a21a33$
*サラスの公式
【逆行列】
$E=\begin{pmatrix} 1 & 0 \\ 0 & 1\end{pmatrix}$を単位行列として、
$AA^{-1} = A^{-1}A = E$ を満たす行列 $A^{-1}$ を逆行列と言う。
$ A = \begin{pmatrix} a & b \\ c & d\end{pmatrix}$ の逆行列$A^{-1}$は、
$\displaystyle A^{-1} =\frac{1}{|A|}\begin{pmatrix} d & -b \\ -c & a\end{pmatrix}=\frac{1}{ad - bc}\begin{pmatrix} d & -b \\ -c & a\end{pmatrix}$
*但し、$ad - bc = 0$ の時、逆行列は存在しない
【転置行列】
$A = \begin{pmatrix} 2 & 1 & -1 \\ 1 & -1 & 0\end{pmatrix}$ の転置行列は、
$A^T = \begin{pmatrix} 2 & 1\\ 1 & -1 \\ -1 & 0 \end{pmatrix}$
$(AB)^T = B^TA^T $が成り立つ
【直行行列】
$A^T = A^{-1}$を満たす特殊な行列$A$を直行行列と言う。各列の大きさは1 である。
$AA^{-1} = A^{-1}A = E$ なので、$AA^T = A^TA = E$ が成り立つ。
(for example)
$\displaystyle A = \begin{pmatrix} \frac{2}{\sqrt5} & \frac{1}{\sqrt5} \\ \frac{-1}{\sqrt5} & \frac{2}{\sqrt5} \end{pmatrix}$
$\displaystyle A^{-1} =\frac{1}{|A|}\begin{pmatrix} \frac{2}{\sqrt5} & \frac{1}{\sqrt5} \\ \frac{-1}{\sqrt5} & \frac{2}{\sqrt5} \end{pmatrix} = \begin{pmatrix} \frac{2}{\sqrt5} & \frac{1}{\sqrt5} \\ \frac{-1}{\sqrt5} & \frac{2}{\sqrt5} \end{pmatrix}$
$\displaystyle A^TA = \begin{pmatrix} \frac{2}{\sqrt5} & \frac{-1}{\sqrt5} \\ \frac{1}{\sqrt5} & \frac{2}{\sqrt5} \end{pmatrix}\begin{pmatrix} \frac{2}{\sqrt5} & \frac{1}{\sqrt5} \\ \frac{-1}{\sqrt5} & \frac{2}{\sqrt5} \end{pmatrix} =\begin{pmatrix} 1 & 0 \\ 0 & 1\end{pmatrix} $
【基底の取替え行列】
$( \overrightarrow c, \overrightarrow d) = ( \overrightarrow c, \overrightarrow d)P$ のとき、Pを基底の取り替え行列と言う。Pを求める、
$ A =( \overrightarrow c, \overrightarrow d) =\begin{pmatrix} -1 & 2 \\ -1 & 3\end{pmatrix}$
$ B =( \overrightarrow a, \overrightarrow b) =\begin{pmatrix} 1 & 2 \\ 3 & 5\end{pmatrix}$ とすると
$ A = BP $ より
$ B^{-1}A = B^{-1}BP $、よって
$ P = B^{-1}A $
$\displaystyle B^{-1} =\frac{1}{5 - 6}\begin{pmatrix} 5 & -2 \\ -3 & 1\end{pmatrix}= \begin{pmatrix} -5 & 2 \\ 3 & -1\end{pmatrix} $
$\displaystyle P = B^{-1}A$
$ = \displaystyle \begin{pmatrix} -5 & 2 \\ 3 & -1\end{pmatrix} \begin{pmatrix} -1 & 2 \\ -1 & 3\end{pmatrix} = \displaystyle \begin{pmatrix} 3 & -4 \\ -2 & 3\end{pmatrix}$
2. 固有値分解、特異値分解
【固有値分解】
$A\overrightarrow x = \lambda \overrightarrow x$ を満たすn次元ベクトル $ \overrightarrow x(\overrightarrow x ≠ 0) $と実数$\lambda$が存在するときに、$\lambda$ を固有値、$ \overrightarrow x$を固有ベクトルと言い、$P = (\overrightarrow x_1, \overrightarrow x_2) $ とすると、$ A = P\Lambda P^{-1} $ の形に固有値分解出来る
$ A = \begin{pmatrix} 4 & -2 \\ 1 & 1\end{pmatrix}$ を $ A = P\Lambda P^{-1} $ の形に固有値分解する
$A\overrightarrow x - \lambda \overrightarrow x = 0 $ から、 $(A - \lambda E )\overrightarrow x = 0 $
$ A - \lambda E = \begin{pmatrix} 4 & -2 \\ 1 & 1\end{pmatrix} -\begin{pmatrix} \lambda & 0 \\ 0 & \lambda\end{pmatrix} = \begin{pmatrix} 4 - \lambda & -2 \\ 1 & 1 - \lambda \end{pmatrix}$
従って、方程式 $(4 - \lambda)(1 - \lambda) +2 = 0 $ を解けば良い
$ \lambda ^2 -5 \lambda +6 = 0$
$ (\lambda -2 )(\lambda -3 ) = 0$
ゆえに、固有値 $ \lambda_1 = 2, \lambda_2 =3$
1) $ \lambda_1 = 2 $ のとき
$ \overrightarrow x_1 = \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right)$ とすると、
$(A - \lambda E )\overrightarrow x_1 = 0 $
$ \begin{pmatrix} 4 - \lambda & -2 \\ 1 & 1 - \lambda \end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$ \begin{pmatrix} 2 & -2 \\ 1 & -1\end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end {array} \right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$\alpha_1 - \alpha_2 = 0 $ なので、$\alpha_1 = \alpha_2 $ よって固有ベクトルは、
$ \overrightarrow x_1 = k_1\left(\begin{array}{ccc} 1 \\ 1 \end{array}\right)$
2) $ \lambda_2 = 3 $ のとき
$ \overrightarrow x_2 = \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right)$ とすると、
$(A - \lambda E )\overrightarrow x_2 = 0 $
$ \begin{pmatrix} 4 - \lambda & -2 \\ 1 & 1 - \lambda \end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$ \begin{pmatrix} 1 & -2 \\ 1 & -2\end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end {array} \right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$\alpha_1 - 2 \alpha_2 = 0 $ なので、$\alpha_1 = 2 \alpha_2 $ よって固有ベクトルは、
$ \overrightarrow x_2 = k_2\left(\begin{array}{ccc} 2 \\ 1 \end{array}\right)$
これらの結果を元に、
$P = ( \overrightarrow x_1 \overrightarrow x_2 ) = \begin{pmatrix} 1 & 2 \\ 1 & 1 \end{pmatrix}$
$\displaystyle P^{-1} =\frac{1}{ad - bc}\begin{pmatrix} d & -b \\ -c & a\end{pmatrix}=\frac{1}{-1}\begin{pmatrix} 1 & -2 \\ -1 & 1\end{pmatrix}= \begin{pmatrix} -1 & 2 \\ 1 & -1 \end{pmatrix}$
$ \Lambda = \begin{pmatrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{pmatrix} = \begin{pmatrix} 2 & 0 \\ 0 & 3 \end{pmatrix}$ なので、
$ A = P \Lambda P^{-1} = \begin{pmatrix} 1 & 2 \\ 1 & 1 \end{pmatrix} \begin{pmatrix} 2 & 0 \\ 0 & 3 \end{pmatrix}\begin{pmatrix} -1 & 2 \\ 1 & -1 \end{pmatrix}$ と固有値分解が出来る
特異値分解
任意のm×n行列Aに対して、以下の積の形で表すことを特異値分解と言う
$A = UDV^T$
・$U$が、m×mの直行行列
・$V$は、n×nの直行行列
・$D$は、m×nの非対角成分は0、対角成分は非負で大きさの順に並んだ行列
このとき、$D$の対角成分を、行列$A$の特異値(固有値の平方根となる)と呼び
$U$の列を左特異ベクトル、$V$の列を右特異ベクトルと呼ぶ
$A = \begin{pmatrix} 0 & 2 \\ 1 & 0 \end{pmatrix}$ として、$A=UDV^T$を求める。
$U$は、$AA^T$の固有ベクトルなので、
$AA^T = \begin{pmatrix} 0 & 2 \\ 1 & 0 \end{pmatrix}\begin{pmatrix} 0 & 1 \\ 2 & 0 \end{pmatrix}= \begin{pmatrix} 4 & 0 \\ 0 & 1 \end{pmatrix}$
$ |AA^T - \lambda E| = \left|\begin{array}{ccc} 4 - \lambda & 0 \\ 0 & 1- \lambda \end{array}\right| = 0$より、
$ (4 - \lambda)(1 - \lambda) = 0$
よって、固有値は、$\lambda = 4, 1$
1) $\lambda = 4$の時、
固有ベクトルを $ \overrightarrow x_1 = \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right)$ とすると、
$ \begin{pmatrix} 0 & 0 \\ 0 & 3 \end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end {array} \right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$\alpha_2 = 0 $ 、$\alpha_1 = k_1(任意の実数) $ なので、
$ \overrightarrow x_1 = k_1\left(\begin{array}{ccc} 1 \\ 0 \end{array}\right)$ ここで直行行列の各列は大きさが1なので、$k_1=1
$
2) $ \lambda_1 = 1 $ のとき
$ \overrightarrow x_1 = \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right)$ とすると、
$ \begin{pmatrix} 3 & 0 \\ 0 & 0 \end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end {array} \right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$\alpha_1 = 0 $、 $\alpha_2 = k_2$(任意の実数) なので、
$ \overrightarrow x_2 = k_2\left(\begin{array}{ccc} 0 \\ 1 \end{array}\right)$ ここで直行行列の各列は大きさが1なので、$k_2 = 1 $
よって、 $U = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} $
同様に、$V$ は$A^T$Aの固有ベクトルなので、
$A^TA = \begin{pmatrix} 0 & 1 \\ 2 & 0 \end{pmatrix}\begin{pmatrix} 0 & 2 \\ 1 & 0 \end{pmatrix}= \begin{pmatrix} 1 & 0 \\ 0 & 4 \end{pmatrix}$
よって、固有値は、
$ |A^TA - \lambda E| = \left|\begin{array}{ccc} 1 - \lambda & 0 \\ 0 & 4- \lambda \end{array}\right| = 0$より、
$ (1 - \lambda)(4 - \lambda) = 0$
$\lambda = 4, 1$
1)$\lambda = 4$の時、
固有ベクトルを $ \overrightarrow x_1 = \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right)$ とすると、
$ \begin{pmatrix} -3 & 0 \\ 0 & 0 \end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end {array} \right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$\alpha_1 = 0 $ 、$\alpha_2 = k_1$(任意の実数) なので、
$ \overrightarrow x_1 = k_1\left(\begin{array}{ccc} 0 \\ 1 \end{array}\right)$ ここで直行行列の各列は大きさが1なので、$k_1 = 1$
2) $\lambda = 1$の時、
固有ベクトルを $ \overrightarrow x_1 = \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right)$ とすると、
$ \begin{pmatrix} 0 & 0 \\ 0 & 3 \end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end {array} \right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$\alpha_2 = 0 $ 、$\alpha_1 = k_2 $(任意の実数) なので、
$ \overrightarrow x_2 = k_2\left(\begin{array}{ccc} 1 \\ 0 \end{array}\right)$ ここで直行行列の各列は大きさが1なので、$k_2 = 1$
よって、$ V = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}$
また、特異値は固有値の平方根なので、$\lambda_1 = \sqrt{4} = 2, \lambda_2 = \sqrt{1} = 1$
以上より、
$A=UDV^T =\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}\begin{pmatrix} 2 & 0 \\ 0 & 1 \end{pmatrix}\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}$
【特異値2】
$A = \begin{pmatrix} 1 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}$ のとき、 $A=UDV^T$を求める。
$AA^T =\begin{pmatrix} 1 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 0 \\ 1 & 0 \\ 0 & 1 \end{pmatrix} = \begin{pmatrix} 2 & 0 \\ 0 & 1 \end{pmatrix}$
$ |AA^T - \lambda E| = \left|\begin{array}{ccc} 2 - \lambda & 0 \\ 0 & 1- \lambda \end{array}\right| = 0$より、
$ (2 - \lambda)(1 - \lambda) = 0$
よって、固有値は、 $ \lambda = 2, 1$
1)$\lambda = 2$の時、
固有ベクトルを $ \overrightarrow x_1 = \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right)$ とすると、
$ \begin{pmatrix} 0 & 0 \\ 0 & 3 \end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end {array} \right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$\alpha_2 = 0$、$\alpha_1=k_1$(任意の実数)なので、
$\overrightarrow x_1 = k_1\left(\begin{array}{ccc} 1 \\ 0 \end{array}\right)$ ここで直行行列の各列は大きさが1なので、$k_1 = 1$
2) $\lambda = 1$の時、
固有ベクトルを $ \overrightarrow x_1 = \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end{array}\right)$ とすると、
$ \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix}\left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \end {array} \right) = \left(\begin{array}{ccc} 0 \\ 0\end{array}\right)$
$\alpha_1 = 0$、$\alpha_2=k_2$(任意の実数)なので、
$\overrightarrow x_1 = k_1\left(\begin{array}{ccc} 0 \\ 1 \end{array}\right)$ ここで直行行列の各列は大きさが1なので、$k_2 = 1 $
よって、$U = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} $
同様に、
$A^TA =\begin{pmatrix} 1 & 0 \\ 1 & 0 \\ 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}= \begin{pmatrix} 1 & 1 & 0 \\ 1 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}$
よって、固有値は、
$ |A^TA - \lambda E| = \left|\begin{array}{ccc} 1 - \lambda & 1 & 0 \\ 1 & 1- \lambda & 0 \\ 0 & 0 & 1 - \lambda \end{array}\right| = 0$より、
サラスの公式より
$ (1 - \lambda)(1 - \lambda)(1 - \lambda) + 1・0・0 + 0・1・0 - 0・1・0 - (1 - \lambda)・0・0 - 1・1・(1 - \lambda) = 0$
$ (1 - \lambda)^3 - (1 - \lambda) = 0$
$ (1 - \lambda){(1 - \lambda)^2 - 1)} = 0$
$ (1 - \lambda){(1 - \lambda) + 1}{(1 - \lambda) - 1} = 0$
$ (1 - \lambda)(2 - \lambda)\lambda = 0$
$\lambda = 2, 1, 0$
1)$\lambda = 2$の時、
固有ベクトルを$\overrightarrow x_1 = \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \\ \alpha_3 \end{array}\right)$ とすると、
$\begin{pmatrix} -1 & 1 & 0 \\ 1 & -1 & 0 \\ 0 & 0 & -1 \end{pmatrix} \left(\begin{array}{ccc} \alpha_1 \\ \alpha_2 \\ \alpha_3 \end{array}\right) = \left(\begin{array}{ccc} 0 \\ 0 \\ 0 \end{array}\right)$より、
$\alpha_3 = 0 、 \alpha_1 = \alpha_2 =k_1$ (任意の実数)なので、
$\overrightarrow x_1 = k_1\left(\begin{array}{ccc} 1 \\ 1 \\ 0 \end{array}\right)$
ここで直行行列の各列は大きさが1なので、$k_1=\frac{1}{\sqrt{2}}$
よって、$\overrightarrow x_1 = \left(\begin{array}{ccc} \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \\ 0 \end{array}\right)$
2) $\lambda = 1$の時、
固有ベクトルを$\overrightarrow x_2 = \left(\begin{array}{ccc} \beta_1 \\ \beta_2 \\ \beta_3 \end{array}\right)$ とすると、
$\begin{pmatrix} 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix} \left(\begin{array}{ccc} \beta_1 \\ \beta_2 \\ \beta_3\end{array}\right) = \left(\begin{array}{ccc} 0 \\ 0 \\ 0 \end{array}\right)$より、
$\beta_1 = \beta_2 = 0$、$\beta_3=k_2$(任意の実数)なので、
$\overrightarrow x_2 = k_2\left(\begin{array}{ccc} 0 \\ 0 \\ 1\end{array}\right)$
ここで直行行列の各列は大きさが1なので、$k_2=1$
よって、$\overrightarrow x_2 = \left(\begin{array}{ccc} 0 \\ 0 \\ 1 \end{array}\right)$
3) $\lambda = 0$の時、
固有ベクトルを$\overrightarrow x_3 = \left(\begin{array}{ccc} \gamma_1 \\ \gamma_2\\ \gamma_3 \end{array}\right)$ とすると、
$\begin{pmatrix} 1 & 1 & 0 \\ 1 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \left(\begin{array}{ccc} \gamma_1 \\ \gamma_2 \\ \gamma_3\end{array}\right) = \left(\begin{array}{ccc} 0 \\ 0 \\ 0 \end{array}\right)$より、
$\gamma_1 = - \gamma_2 = k_3$ (任意の実数)、$\gamma_3 = 0$ なので、
$\overrightarrow x_3 = k_3\left(\begin{array}{ccc} 1 \\ -1 \\ 0\end{array}\right)$
ここで直行行列の各列は大きさが1なので、$k_3= \frac{1}{\sqrt{2}}$
よって、$\overrightarrow x_3 = \left(\begin{array}{ccc} \frac{1}{\sqrt{2}} \\ - \frac{1}{\sqrt{2}} \\ 0 \end{array}\right)$
したがって、$V = \begin{pmatrix} \frac{1}{\sqrt{2}} & 0 & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & 0 & - \frac{1}{\sqrt{2}} \\ 0 & 1 & 0\end{pmatrix} $
よって、$V^T = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 \\ 0 & 0 & 1 \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0\end{pmatrix} $
また、特異値は固有値の平方根なので、$\lambda_1 = \sqrt{2}, \lambda_2 =\sqrt{1}=1$
以上より、
$A=UDV^T =\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}\begin{pmatrix} \sqrt{2} & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}\begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 \\ 0 & 0 & 1 \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0\end{pmatrix}$