いい加減時代の潮流に乗ろうということで機械学習を学びたいと思う。またRはともかくとしてPythonは未経験であるため、丁度良い書籍として
を用いることにする。
0. 線形代数
0.1 逆行列
係数行列およびベクトルからを満たすようなを求める問題を考える。
またはについて
- ルール1:ある行全体を非零定数で割る
- ルール2:ある2つの行を入れ替える
- ルール3:ある行の何倍かを他の行に加える
を施すことでがに変形できることをで表すこととする。
すべての成分がでない行ベクトルの最初の非零成分を主成分と言い、そのうち下記の条件を満たす行列を標準形という:
- [\tex:0]の行ベクトルは最下段にある
- でない行ベクトルの主成分はである
- 各行の主成分は下の行ほどそれより上の行の主成分よりも右にある
- 主成分を含む列の主成分以外の成分はである
任意の行列に対して標準形が一意に定まる。
ルール1から3を用いて標準形を計算することを掃き出し法という。行列の標準形の主成分の数を階数(Rank)という。定義から階数は以下である。
が正方でその標準形が単位行列になるとき、「は正則である」という。またが正則であるとき、大きさがの単位行列を右の列に置いた行列の標準形をと書くとき、を互いに逆行列であるといい、と書く。
0.2 行列式
正方行列に対し、行列式を以下で定義する:
まずが正則でない場合、とする。が正則ならば、単位行列に対してとし、標準形からもとの行列を求める過程で、以下の手順を施すことで最終的に得たの値を行列式と定義する。
- ある行全体を非零定数倍するとき、を倍する
- ある2行を入れ替えるとき、を倍する
- ある行の倍を他の行から引くときには、の値を変えない
行列式について、以下が成り立つ:
正方行列について、
が成立する。
0.3 一次独立性
を列ベクトルにもつ行列に対して、連立方程式が以外の解をもたないとき、は一次独立であるといい、そうでない場合には一時従属であるという。
階数は一次独立な列ベクトルの最大数と解釈できる。階数には以下が成り立つ:
として、以下が成り立つ:
0.4 ベクトル空間とその次元
の部分集合で、
が成立するようなをの部分空間と呼ぶ。
をそれぞれの部分空間、として、写像
を線型写像という。たとえば像および核はの部分空間になる。
線型写像には以下が成り立つ:
をそれぞれの部分空間として、行列による線形写像の像と核はそれぞれの部分空間であって、それらの次元の和はである。またその像の次元はの階数に一致する。
0.5 固有値と固有ベクトル
正方行列について、
を考え、これについてが成立するとき、を固有値の固有ベクトルという。
一般に、
から、
一般にであれば、それらは固有方程式の解であり、とおけば、が成立する。
正方行列の前後に正則行列とその逆行列を掛けると対角行列になるとき、は対角化可能という。
0.7 対称行列の対角化
を満たすすべての成分がであるような正方行列を上三角行列という。これに対して
正方行列は適当な直交行列を用いてを上三角にすることができる。
が成り立つ。ここでが対称行列、すなわちならば、
と、もまた対称行列である。すなわちを用いて三角化に加え対角化もできていることになる。
対称行列では、異なる固有空間に含まれるベクトルは直交する。実際、をの固有値、またに対して
さらにであるから、が成立する。またが対角行列となるためには、の各列ベクトルが一次独立な固有ベクトルであることが必要十分条件であった。したがって
同じ固有空間に含まれるベクトルを直交するように選べば、個のベクトルすべてがちょっこうすることになる。更に大きさをすべてに選ぶことでを直交行列にできる
ことが分かる。さらに
大きさがの対称行列について以下は同値である:
- であるような行列が存在する
- 任意のについて
- のすべての固有値が非負である