標準化は機械学習において非常に重要な概念です。スケール統一のためや学習速度の向上を目的に使われます。そこで今回は多変量ガウス分布の標準化などをやっていこうと思います。数式やいろんな公式が現れますが知らないものがあれば調べながら読むことをお勧めします。
定理
あるとに対してとすると、が存在し次を満たす、とすると
- 共分散行列がある正則行列を用いてと分解できる(コレスキー分解)
- を用いてから異なるベクトルランダム変数を作る
- 任意の実対称行列は常にで表される、ここではfull-rank直行行列であり、その列にの固有ベクトルを持ちはの固有値を持つ対角行列である
- もしが正定値対称行列なら、すべての固有値は正である
となります。ただしとしました。余談ですが僕が今までやってきた中で知っておいたほうがいい分解をいくつかリストしておきます。
- 対角化
- 特異値分解(SVD)
- QR分解
- LU分解
- コレスキー分解
逆行列の公式により、となるので多変量ガウス分布の式は次のように書き換えられます
多変量標準ガウスに近づいたことがわかると思います。ここでお分かりかもしれませんが新しい変数をと定義します。が同時密度関数によるベクトル値ランダム変数と仮定します。もしただしは全単射で微分可能関数ならは次の同時密度関数を持ちます。 変数変換式を用いることでベクトル変数が次の同時密度を持つことがわかります。(ヤコビアンとかで調べてください。)
これはまさしくです。
定理を実験
上記の定理を実際に確認してみます。作業過程は次の通り- を点作成する
- ここで作成したデータの平均を計算しておく
- 次に定理のより共分散行列をコレスキー分解しを求める
- 上記のを用いて新たな確率変数を作る
- 作った各データをscatter plotする
データ変換行列Wとの関係
上ではどちらかというとデータを戻すという動作を行いました。いえ、標準化を戻すということにしておきます。次に標準化されたデータを変換し、その変換行列の性質を見ていきたいと思います。 今、三次元標準ガウス分布に従うデータZが1000点あるとします。そして、これを二次元に移す変換Wをかけた時のデータWZとWの関係を考察しましょう。たとえば とういう変換をかけた場合、の固有ベクトルは の各列ベクトルであり固有値はです。ここでWの特異値分解を見てみます この通りの固有ベクトルはUの各列ベクトルに、固有値は特異値の平方に近い値になっていますね。数式を用いて確認してみましょう。Wの特異値分解をとし、は適当な零行列ですであり これより上記の予想が正しかったことがわかります。
特異値分解の関係
まずの共分散行列を対角化しとなったとします。ここで線形変換行列はとしておくと。ただし、の各成分は行列のそれぞれの成分の正の平方根。の共分散を求めると となります。つまり、とすることで,この形の共分散が達成されることがわかります。が直交行列であることを忘れずに。次にの特異値を求めます。の特異値はの固有値の正の平方根です。まずを計算するとこれはの対角化そのものであるのでの特異値はの対角成分となり、の固有値はの固有値と一致するのでの対角成分となります。つまり、の固有値の平方根がの特異値となるんです。
対角化と特異値分解は奥が深いですね。ちなみに最近パソコンがかなり暑くなって調子が悪いです。でわ。