AIとは何か

機械学習を行うなら知っておくべき、「次元の呪い」の基本とは

次元の呪いのサムネイル

機械学習の勉強をする中で気をつけろと口を酸っぱく言われがちな次元の呪い。

呪いという言葉がついているところからちょっと身構えてしまいますよね。

これは機械学習の実装に関わる限りいつまでも向き合い続ける必要があります。

とはいえそれを解く方法がないのか、RPGでデメリットを伴う装備のようにそれと引き換えにいい結果を出せないのかなど呪いだから気をつけろと一方的に言われても納得できないのも事実。

そこで今回は次元の呪いにフォーカスを当てこれがどういった現象を指すかから自分達で回避するにはどういった方法が考えられるかを解説、最後にそれでも残っている弱点に触れた上で最近注目を集めている研究開発について紹介していきます。
中村
中村

それではまず、そもそも次元の呪いとは何か直感的な説明から始めていきます。

次元の呪いとは

次元の呪いとは

まず、次元の呪いは同じ情報量であっても特徴量を増やしすぎるとかえって精度が下がってしまうという現象のこと。

ここでは友人におすすめの映画を紹介するというシチュエーションで考えましょう。

友人が勧めた映画を気に入るか考える上でまず好きなジャンルであるかが挙げられますよね。

コメディ、ホラーなど大まかな方向性が定まれば少なくとも大きく外れることはないでしょう。

その次に愛好家からの評価はどうかやどんな役者さんが出ているかから考えていくこともできます。

仮にサメ映画を勧めるとしたら作品としての評価が高く有名な役者さんが出ていればジャンルだけで考えるよりも細かく絞り込んでいくことが可能。

しかしやり過ぎると事情が変わってしまいます。

例えば上映時間がどれくらいの長さであるかや発表された年代といった内容。

気にする項目が多くなりすぎると友人に対し何を重視するかが曖昧になってしまったりそもそも各作品のどれがどう違うのかわかりにくくなってしまいます。
最終的なオチとしてシンプルにジャンルだけに留めておいて無難なものを進めておく方がかえってよかった。

これが次元の呪いで起こるよろしくない状態です。

特徴量とは

特徴量とは

前の章で次元の呪いとは何か映画の例えから直感的な説明をしました。

最初の説明に立ち返ると特徴量を多くしすぎるとかえって逆効果になるという現象が次元の呪い。

ここではその特徴量について説明していきます。

特徴量は機械学習で対象とするデータの特徴を数値で表されたもの。

先程の映画での説明では映画を考える軸としてジャンル、評価、キャストなどの情報を挙げました。

機械学習ではこういった情報をそのまま扱うことができず数値化された値に変える必要があります。

このような値に変換する作業のことを特報抽出と言いモデル構築では必須。

機械学習を用いたプロジェクトでは特徴量を変数として扱います。

変数は他の変数の原因となっている説明変数と説明変数の結果にあたる目的変数の2つに分けられるのが一般的。

モデルを完成させ実際の予測などに使えるようにするためにこれらの変数を駆使して傾向を掴ませていくことになります。
特徴量の数のことを次元といい多ければ多いほどデータから得られる情報量や質を高くできて良さそうに見えるもののそう単純にはいきません。

どういうことなのか次の章で見ていきましょう。

機械学習において、次元の呪いがデメリットとなる理由

デメリットの理由

改めて、次元が多ければ多い方がデータから得られる情報量や質が高くなり優秀なモデルを作れそうに見えますよね。

でも実際は「呪い」という言葉が象徴するように機械学習ではデメリットとなってしまいます。

そのようになってしまう理由は次元を増やせば増やすほどそれに見合ったデータの分量が求められるため。

これについて最初に使った映画の話から考えてみましょう。

友人に勧める作品を考える上で

気にする項目が多くなりすぎると友人に対し何を重視するかが曖昧になってしまったりそもそも各作品のどれがどう違うのかわかりにくくなってしまいます。

という風に指摘をしました。

気にする項目(=特徴量)が多くなりすぎると各作品でどこがどう違ってて何がいいかわかってないと難しく最近話題となっているものを見にいく程度で対応するのは難しいですよね。

それをなんとかするにはかなりの本数を見る必要がありけっこう負担がかかってしまいます。

このように次元を増やし役に立ちそうな特徴量を採用するなら対応できるデータの数をそれ相応まで引き上げることが求められる。

これが次元の呪いのデメリットであり恐ろしさであるとも言えます。

次元の呪いを回避するための方法

回避するための方法

次元の呪いによってモデルの精度が下がらぬよう防ぐ方法は大きく分けてふたつあります。

それは次元の数に対応できるようデータの数を増やすこと、もう一つはいくつかの特徴量を我慢すること。

ここでは後者にフォーカスを当てていきます。

特徴量を我慢する一つ目の方法は特徴選択をすること。

これには特徴量から適切なものを選んでいく前向き法と除外するべきものを一つ一つ削っていく後ろ向き法のふたつのやり方があります。

もう一つの方法は次元削減

これは次元の多いデータが持っている情報から失うものを最小限にした上で次元を下げるという手法。

主成分分析が該当します。

これは特徴量をより少ない指標や複数の変数を合体させた合成変数に要約していく統計学上のデータ解析手法。

この時に要約された合成変数のことを主成分ということからそのように呼ばれています。

ここでは人間の健康管理で見ていきましょう。

どれくらい太っているか考える方法として身長と体重を見ることが挙げられますよね。

これを特徴量とすれば二次元のデータから太っているかを見ていくことができます。

これらの特徴量をBMIでまとめれば一次元の手法だけでどれくらい太っているかわかりやすくすることが可能。

このように既にある特徴量を要約し次元の数を下げていくことで次元の呪いを回避することができます。

最近、次元の呪いを回避する研究が進んでいる

回避方法の研究

次元の呪いを回避する方法として特徴選択や次元削減を挙げましたがまだまだ問題点がありました。

それは次元を減らすことでデータの分布や確率が不正確となり、精度に限界が出たり誤った判定の原因になる可能性があること。

この問題点にも対応できるのを目指し新たな研究が進められています。

それは富士通研究所が開発したDeepTwin​​。

この技術では同研究所が武器とし磨きをかけてきた映像圧縮技術の知見や理論体系を基に確立させた情報圧縮技術とディープラーニングを組み合わせています。

具体的にやっているのは次元数の多いデータから削除すべき次元の数と実際にそうした後にデータがどう分布するかをディープラーニングで最適化するというもので教師データは不要。

こういった技術が開発されたのは世界でも初のことなので今後の研究開発に期待が高まっています。

 

最後のまとめ

今回は機械学習を進めていく際に切っても切り離せない次元の呪いに焦点を当て解説をしました。

次元の呪いは同じ情報量であっても特徴量を増やしすぎるとかえって精度が下がってしまうという現象のこと。

ここでは友人に映画を勧めるというシチュエーションを使い特徴量についてまで触れていきました。

次元の呪いを回避する方法として考えられるのはデータの量を増やすことと特徴量の数にあたる次元の数を減らすこと。

後者では特徴選択と次元削減が挙げられ該当する前向き法後ろ向き法主成分分析の紹介をしました。

そういった手法を使ってもデータの分布や確率の正確性を保つという課題があり富士通が開発した技術であるDeepTwinが注目を集めています。

中村
中村

機械学習をやる際に精度が悪くなってしまったら次元の呪いを原因の一つとして考えより良いものができるよう改善していけるといいですよね。

トップへ戻る
タイトルとURLをコピーしました