「次元の呪い」という言葉を聞いたことはありますか?これは機械学習などを行う際に、データを解析して、何らかのモデルで識別面を見つけようとした際に、データとそれに対応するモデルの次元数が大きくなると起こる現象を「次元の呪い」と呼びます。
言葉だけでこの現象を理解するのはなかなか大変なので、できるだけ具体的に説明します。ニューラルネットワークなどの機械学習で最適な解を求めることは、一番高い山を歩いて探すようなものです。もし、地球上には眼の前の山だけしか無く、山を登る道が一本だけなら、その一本の道を登れば良いので、すぐに一番高い場所を見つけることが出来るでしょう。
しかしながら、同じ地球上に、たくさんの山、たくさんの道があるとき、一番高い山の一番高い場所を探そうと思ったら、どっちに向かって、どの道を通り、もし行き止まりだったらどうするか、などなどさまざまな要因で探索の手順、順序、道の選択をしなければなりません。
この様に、組み合わせがたくさんあるときは手間が増大し、莫大な時間を要することが予想されます。このような現象を、組み合わせ爆発または計算機の爆発と呼びます。もちろん膨大な時間を掛けてありとあらゆる選択肢を一つずつ、すべて行えば、いつかは最適解(一番高い山)を見つけることは出来るでしょう。しかしながら、その時間と探索範囲は組み合わせの数に対して増大するため、私達が生きていられる間に見つけられない可能性すらあるため、現実的ではありません。
同じ範囲でも、条件が増えれば探索に手間と時間がかかります。このため、どうにか現実的に探索可能な範囲を探索したとしてもその結果見つけた場所は、実は対して高くないという可能性もあるわけです。機械学習の分野では、このような現象のことを「次元の呪い(Curse of Dimensionality)」と呼んでいます。
具体例として、ニューラルネットワークが数百個の単純なデータを用いた機械学習を行う場合は、少ないニューロンの数で単純なネットワーク構造を用いれば良く、パラメータの組み合わせは少なくて済むため、短い時間で学習することが可能です。さらに、より複雑なデータ、より難しい課題を考えた場合は、同じニューロン数、ネットワーク構造では十分ではないことがあります。このような場合には、ニューロンの数を増やし、より複雑なネットワークを用いる必要がありますが、このパラメータの組み合わせは爆発する可能性があり、次元の呪いによって十分な学習が出来ません。
そこで、とにかく高い精度を出すために、同じデータを何度も学習し続けると、良い結果が得られなくなることがあります。高い山を探す例でいうと、世界一のエベレストのてっぺんでなくとも、日本一のてっぺんなら見つけられるかもしれないというわけです。(つまり、ある特定の、詳細な条件を満たす場合のみ使えるニューラルネットワークとなり、汎用的な問題解決には役に立たない可能性があることを指しています。)これを過学習(Overfitting)と呼びます。