こちらの『パターン認識と機械学習』を読んで,勉強したことをまとめていきます.
前回は,1.3節のモデル選択についてまとめました.
今回は,1.4節の次元の呪いです.
次元の呪いとは
次元の呪いとは,
『取り扱う空間の次元が大きくなると,様々な不都合なことが起きてしまう問題』
のことを指します.
以降では,この「不都合なこと」についていくつか述べていきます.
状態の数(場合の数)が爆発的に増加する

次元Dが増加すると,考えなければならない状態の数は指数的に増加します.
上の図で行くと,D=1次元のときは一つの軸に対して3つの状態しかなくても,
D=2次元になると,状態数は3×3=9個になります.
また,D=3次元になると,立方体を考えれば状態数は3×3×3=27個になります(上の図の個数を考えるのが面倒なので立方体にしました).
つまり,次元に対して状態の数はざっくり
で増加することになります.
は一つの軸に対する変数の自由度です.例えば,サイズを小,中,大で分割すると,
です.
次に,似たような説明になりますが,多項式フィッティングの例を使って説明します.
に対して3次の多項式
を,色々な次元で考えてみます.
以下のように,M次の係数の数はで増加します.
のとき,
例えば,3次の項の係数は1個.全部で4個の係数
のとき,
例えば,3次の項の係数は個.全部で15個の係数
このように,次元が増えると係数が増え,特徴を探すことが困難になります(機械学習において係数は特徴付けをするものです).
高次元空間ではデータはどう分布するか
高次元になると起こる問題として,あまりにも高次元になると『データの次元が実質的に一つ落ちてしまう』ことがあります.
一見,次元が落ちるのでいいことのように思えますが(ときには本当にいいことかもしれない),この人間の直感にはよくわからないことは,人間によるデータ分析の妨げになることがあります.
高次元球では,中身がスカスカになる
以降で説明するように,3次元の球の体積は半径の3乗に比例しますが,もっと高次元なN次元球の体積は,球の表面に密集し,半径のN-1乗に近くなります.
まず,次元球の体積は,以下の式で求められます.

は半径です.
はガンマ関数ですが,
によらないので,今は定数だと思っておいてください.
ガンマ関数:
この体積の式の導出は,よく知られたものなので調べればすぐに出てきますから,ここでは省略します.
ちなみに,球の表面積は体積を
で微分したものなので,
です.
例えば,3次元の場合は,,
と,見慣れたものになります.
とにかく,N次元球の体積はに比例し,N次元球の面積は
に比例することが分かればOKです.
さて,N次元球の体積の表面の性質についてみることにします.
N次元球の半径がだけ減った,半径
の球の体積
を考えると,半径
の球の体積
の差
は,
の厚さを持った球殻の体積になります.
その球殻の体積と,全体の球の体積の比を取ると,
となります.
そして,たとえに比べて小さな
を取ったときでも,
が十分大きいとすると.この式の値はなんと1に近づきます.
つまり,高次元球では球の体積とその球殻の体積はほぼ等しくなります.
体積のほとんどは球殻にあり,球殻以外の中身の部分に体積はほとんど無いということです.
3次元球とか,人間が想像できる球を思い浮かべると,理解しがたい事実ですが,
高次元になると,このような直感に反したことが起こってしまうのです.
この「球の表面付近だけに体積があり,中身はスカスカ」ということは,ほぼ次元が1つ落ちたとも言えます.
なぜなら,体積の次元が一つ落ちたものが,表面積だからです.
ちなみに,ここでは超次元球を考えましたが,高次元の超立方体では,体積は表面でなく,その角に体積が集中します.
このようなことが起きると,いくつかの問題が起きます.
N次元として扱っていたと思っていたのが,じつは裏ではN-1次元になっていた,ということが起きてしまうと,データ分析の時に厄介なことが起きたりするようです.
また,表面にデータが偏ってしまうと,データ間の距離が離れ,状態空間内での関係性が見えにくくなるようです.
この辺に関しては,私はデータ分析の専門家ではないので,あまり下手なことは言えないため,自分で調べて頂けたらと思います.
高次元空間に対する実用的な考え方
高次元空間では状態数が増加したり,次元におかしなことが起きたりしますが,実際のデータ分析では,あまり問題にはならないようです.
その一つ目の理由が,いくらパラメータの数が大きくて,状態空間が大きくなってしまったとしても,現実的な意味のあるデータは低次元領域に存在することが多く,目標変数(ターゲット変数)が重要な変化をする方向は限定されることが多いからです.
例えば,3次元空間にデータが分布していたとしても,実際にはある平面内に分布しているから,平面と平行な方向さえ見ておけばOK,みたいなことです.
また,実データは滑らかな性質を持つことが多いため,入力を少し変えたとしても,目標変数は少ししか変わりません.このようなときには,ローカルな補間を行うことで,目標変数を予測することができます.
まとめ
次元の呪いは,高次元空間になるとデータ分析にいくつかの問題を起こす.
しかし,その問題は実際のデータ分析の妨げにはならないことが多い.
次回は,1.5節の決定理論について述べます.
コメント