機械学習の勉強をする中で気をつけろと口を酸っぱく言われがちな次元の呪い。
呪いという言葉がついているところからちょっと身構えてしまいますよね。
とはいえそれを解く方法がないのか、RPGでデメリットを伴う装備のようにそれと引き換えにいい結果を出せないのかなど呪いだから気をつけろと一方的に言われても納得できないのも事実。
それではまず、そもそも次元の呪いとは何か直感的な説明から始めていきます。
次元の呪いとは
まず、次元の呪いは同じ情報量であっても特徴量を増やしすぎるとかえって精度が下がってしまうという現象のこと。
ここでは友人におすすめの映画を紹介するというシチュエーションで考えましょう。
友人が勧めた映画を気に入るか考える上でまず好きなジャンルであるかが挙げられますよね。
コメディ、ホラーなど大まかな方向性が定まれば少なくとも大きく外れることはないでしょう。
その次に愛好家からの評価はどうかやどんな役者さんが出ているかから考えていくこともできます。
仮にサメ映画を勧めるとしたら作品としての評価が高く有名な役者さんが出ていればジャンルだけで考えるよりも細かく絞り込んでいくことが可能。
しかしやり過ぎると事情が変わってしまいます。
例えば上映時間がどれくらいの長さであるかや発表された年代といった内容。
これが次元の呪いで起こるよろしくない状態です。
特徴量とは
前の章で次元の呪いとは何か映画の例えから直感的な説明をしました。
最初の説明に立ち返ると特徴量を多くしすぎるとかえって逆効果になるという現象が次元の呪い。
ここではその特徴量について説明していきます。
先程の映画での説明では映画を考える軸としてジャンル、評価、キャストなどの情報を挙げました。
機械学習ではこういった情報をそのまま扱うことができず数値化された値に変える必要があります。
このような値に変換する作業のことを特報抽出と言いモデル構築では必須。
機械学習を用いたプロジェクトでは特徴量を変数として扱います。
変数は他の変数の原因となっている説明変数と説明変数の結果にあたる目的変数の2つに分けられるのが一般的。
どういうことなのか次の章で見ていきましょう。
機械学習において、次元の呪いがデメリットとなる理由
改めて、次元が多ければ多い方がデータから得られる情報量や質が高くなり優秀なモデルを作れそうに見えますよね。
でも実際は「呪い」という言葉が象徴するように機械学習ではデメリットとなってしまいます。
これについて最初に使った映画の話から考えてみましょう。
友人に勧める作品を考える上で
という風に指摘をしました。
気にする項目(=特徴量)が多くなりすぎると各作品でどこがどう違ってて何がいいかわかってないと難しく最近話題となっているものを見にいく程度で対応するのは難しいですよね。
それをなんとかするにはかなりの本数を見る必要がありけっこう負担がかかってしまいます。
これが次元の呪いのデメリットであり恐ろしさであるとも言えます。
次元の呪いを回避するための方法
次元の呪いによってモデルの精度が下がらぬよう防ぐ方法は大きく分けてふたつあります。
ここでは後者にフォーカスを当てていきます。
特徴量を我慢する一つ目の方法は特徴選択をすること。
もう一つの方法は次元削減。
主成分分析が該当します。
この時に要約された合成変数のことを主成分ということからそのように呼ばれています。
ここでは人間の健康管理で見ていきましょう。
どれくらい太っているか考える方法として身長と体重を見ることが挙げられますよね。
これを特徴量とすれば二次元のデータから太っているかを見ていくことができます。
これらの特徴量をBMIでまとめれば一次元の手法だけでどれくらい太っているかわかりやすくすることが可能。
最近、次元の呪いを回避する研究が進んでいる
次元の呪いを回避する方法として特徴選択や次元削減を挙げましたがまだまだ問題点がありました。
この問題点にも対応できるのを目指し新たな研究が進められています。
この技術では同研究所が武器とし磨きをかけてきた映像圧縮技術の知見や理論体系を基に確立させた情報圧縮技術とディープラーニングを組み合わせています。
こういった技術が開発されたのは世界でも初のことなので今後の研究開発に期待が高まっています。
今回は機械学習を進めていく際に切っても切り離せない次元の呪いに焦点を当て解説をしました。
次元の呪いは同じ情報量であっても特徴量を増やしすぎるとかえって精度が下がってしまうという現象のこと。
ここでは友人に映画を勧めるというシチュエーションを使い特徴量についてまで触れていきました。
後者では特徴選択と次元削減が挙げられ該当する前向き法、後ろ向き法、主成分分析の紹介をしました。
そういった手法を使ってもデータの分布や確率の正確性を保つという課題があり富士通が開発した技術であるDeepTwinが注目を集めています。
機械学習をやる際に精度が悪くなってしまったら次元の呪いを原因の一つとして考えより良いものができるよう改善していけるといいですよね。