多次元であること

ニューラルネットワークを勉強していて特徴的だな、と思ったことは、とてつもない多次元で物事を考えることです。たとえば、「パターン認識(1)」で扱った数字のパターン認識について考えると、これは5×7=35マス あります。

  • 図1


このひとマス毎に0または1の2つの状態があるので、35マス全体の状態は35次元のベクトルとして表されます。こんな荒い図であっても35次元もあります。以前、TEDに出てくる、ジェレミー・ハワードの
学習出来るコンピュータの素晴らしい、そして、恐ろしい、意味合い(The wonderful and terrifying implications of computers that can learn)(2014年)
を見ていたら「16,000次元の空間」という言葉が登場しました。とてつもない高次元です。


人間が普通に想像できるのはせいぜい3次元までなので、多次元になると人間の想像を超えるところがあります。そのひとつとして、その多次元の空間内にある2点間の距離について考えてみました。


位置ベクトルの各成分は0または1の値をとるとします。1次元の場合、位置としては2点しかなく、その間の距離は1です。

  • 図2


2次元の場合、下図のように4点が存在します。2点間の距離で最大のものは、対角線上に位置する2点間の距離(赤い点線で示しました)で、それは図から\sqrt{1^2+1^2}=\sqrt{2}\approx{1.4}になります。

  • 図3


3次元の場合は、8点が存在します。2点間の距離で最大のものは(赤い点線で示しました)、図から\sqrt{1^2+1^2+1^2}=\sqrt{3}\approx{1.7}になります。

  • 図4


4次元以上になると、図を書くことが出来ません。しかし、数式を使って2点間の距離で最大のものを計算することが出来ます。35次元の場合は、それは\sqrt{35}\approx{5.9}になります。16,000次元ならば\sqrt{16,000}\approx{126}にもなります。


私は、座標の値として0か1しか考えないので、状態を表す2つの点の間の距離は何となく小さいような気がしていたのですが、以上のように考えてみると、高次元になれば充分に遠い場合があり得ることが分かってきました。そのように距離があるので、座標の値として0か1しか考えていないにもかかわらず、この空間は実は広いということが分かります。広い空間であればこそ、「ホップフィールドネットワーク(5)」で示したように、エネルギー関数の極小値や勾配を考えることが出来るのだと理解しました。