機械学習

次元の呪い

次元が増えると入力空間の領域数が指数的に増え、同じデータ量では各領域を学習できなくなります。疎になる空間で何が壊れるかと、分散表現がそれを緩める理由を押さえます。

  • B|標準
  • 機械学習

数式の記号で止まったら 記号の読み方 (∂・⊙・転置・上付き添字を、読み方から)

ひとことで言うと

次元の呪いとは、特徴量の次元 dd が増えるほど入力空間の広さと複雑さが急増し、データが空間を埋められなくなる現象です。データ数を増やさないまま特徴量だけを足すと、訓練例のない領域が増え、近くの例から一般化する前提も崩れます。

2次元の床に同じ数の点を置くのと、10次元の部屋に置くのでは、点の数が同じでも空間の空き方が違います。部屋を細かい区画に分けるほど、各区画を実際の点で確認する費用が急に重くなる、という現象です。

なぜ必要か

学習器は入力空間のどこで出力が変わるかを、観測した例から推定します。各特徴を少なくとも2区間に分けるだけでも、区別すべき組合せは 2d2^d 個です。したがって、各領域に例を1つ置くという単純な基準でさえ、必要な例数は次元に対して指数的に増えます。実際には領域ごとの境界やノイズも推定するため、同じデータ数で次元だけを増やすと、訓練データがある部分だけに適合し、未観測部分の予測が不安定になります。

これは「特徴量が多いほど情報が増える」という直感と衝突します。情報を追加しても、学習に必要な組合せの数がそれ以上の速さで増えれば、データ密度は下がります。正則化や特徴選択はこの負担を抑える手段ですが、入力の表現そのものに構造を持たせる方法もあります。

区間数を2に固定した場合の増え方は次の通りです。

次元 dd区画数 2d2^d
24
101,024
201,048,576

仕組み

各次元を mm 個の区間に分けると、空間の区画数は

Nregions=mdN_{\mathrm{regions}} = m^d

です。ここで dd は特徴量の次元、mm は1次元あたりの区切り数、NregionsN_{\mathrm{regions}} は区画数です。総サンプル数を nn とすると、区画あたりの平均サンプル数は

nˉ=nmd\bar{n} = \frac{n}{m^d}

となり、dd が1増えるたびに mm 分の1になります。各区画を個別に覚えるモデルなら、未観測区画の値を根拠なく補うことになります。さらに高次元では、最も近い点でさえ全体の広がりに対して十分近いとは限らず、「近い」という局所性が弱まります。ここでは距離計算の手順ではなく、空間が疎になることが本質です。

深層学習では、入力をそのまま区画ごとの記号として扱わず、複数の特徴が組み合わさる分散表現へ写します。少数の特徴の組合せで多くの領域を区別できるため、必要な表現の数を入力次元に対して効率よく増やせます。分散表現の構成自体は別の論点ですが、次元の呪いに対する接続はここです。

試験でどう問われるか

問われ方正解に寄る条件引っかけ
次元増加の影響区画数・組合せ数が指数的に増え、データが疎になるデータの情報量が単純に増えるだけとする
サンプル数の説明同じ密度を保つには次元に応じて例数も増やす例数を少し増やせば十分とする
距離の直感距離の差が相対的に小さくなり、局所性が弱まる高次元ほど必ず分類精度が上がる
深層学習との接続分散表現が特徴の組合せで多くの領域を表す分散表現は次元を必ず削減する、と断定する

実装で確かめる

区間数を固定したとき、次元の増加だけで区画数と平均密度がどう変わるかを確認します。

import numpy as np

n, bins = 100_000, 4
for d in (2, 4, 8, 12):
    regions = bins ** d
    print(d, regions, n / regions)

出力は 2 16 6250.0、4 256 390.625、8 65536 1.52587890625、12 16777216 0.0059604644775390625 です。サンプル数は変わらないのに、区画あたりの平均例数が急減します。これはモデルの優劣を測る実験ではなく、空間を局所的に埋める前提がどこで破綻するかを見る計算です。

取り違えやすいもの

用語切り分け
過学習次元の呪いはデータ密度が下がる問題。過学習は観測例への適合が強すぎる問題で、前者が後者を招くことがある
次元削減座標の数を減らす操作。次元の呪いそのものではなく、負担を減らす対策の一つ
疎性空間の大部分に例がない状態。高次元化で生じる観測上の帰結
分散表現複数の特徴を共有して領域を表す表現。次元の呪いを緩める設計上の接続

想起チェック

次元が1増えると、区画数はどう変わるか

1次元あたり mm 区間なら、区画数は mdm^d なので mm 倍になります。サンプル数を固定すれば、区画あたりの平均例数は 1/m1/m になります。

次元の呪いの中心を「計算量が増える」とだけ説明してよいか

不十分です。中心は区画や組合せが指数的に増え、観測例が空間を埋められず、局所的な一般化の根拠が薄くなることです。

分散表現は何を共有することで負担を緩めるか

特徴を組合せて複数の領域を表し、領域ごとに独立した記号やパラメータを置く必要を減らします。

出典