SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ITエンジニアのためのスパースモデリング入門

スパースモデリングはなぜ生まれたか? 代表的なアルゴリズム「LASSO」の登場

ITエンジニアのためのスパースモデリング入門 第2回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載は「これから機械学習に取り組みたい」「ディープラーニングや機械学習を使った経験がある」といったエンジニアに向けて、データ量が少なくても分析が実現できる「スパースモデリング」という手法を紹介します。今回は、スパースモデリングの歴史を紐解きながら、その代表的なアルゴリズムであるLASSOについて解説します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

スパースモデリングの基本アイデア

オッカムの剃刀

 2010年代初頭にバズワードにまでなったビッグデータ。今では当時の過熱ぶりはなくなり、ハードウェアやクラウド環境の充実とともに活用が広がっています。ビッグデータには一つの明確に定まった定義はありませんが、RDBMSでは扱いづらくなるほどの大量データであるという量的側面と、データの出処やその種類が多種多様であるという質的側面などが特徴として挙げられます。ビッグデータが手元にあり、解きたいビジネス課題にそのビッグデータを使うのが適当である場合は、問題に応じてディープラーニングを使うなり、データをサンプリングして適当な機械学習アルゴリズムを使うなりすればよいと思います。

 ただ、現実的には質の良いビッグデータが手元になく、また集めるにも時間がかかったり、集めること自体が難しかったりすることも多いです。当然問題によってはビッグデータを必要としないことも多いでしょう。そういうケースであってもなお、十分な量のデータを集めるのが難しいことは少なくありません。このようなときに問題になりやすいのが過学習です。少し極端な例ではありますが、例えば以下のように、十分なデータがある場合と、十分なデータからいくつかサンプリングしてデータを少なくした場合とを見比べてみてください。

 十分なデータがある場合においては、データが密集しているあたりに以下の図のように1本の直線が引けそうです。

十分データがある場合
十分データがある場合

 一方、データが少ない場合においては、そのデータを近似する関数にはいろいろな可能性があり、極端な話、以下の図のようなすべての点を通るような複雑な関数を定義することも可能です。しかし、もともとはサンプリングして得られたデータですので、このような複雑な関数を定義することは明らかに過学習であり、より真の姿に近いのは十分なデータから得られた直線の方です。

データが少ない場合
データが少ない場合

 なぜこのようなことが起こるのでしょうか? やはりデータがたくさんないと正しい答えを導き出すのは難しいのでしょうか?

 現実の世界においては、ある結果を引き起こすためにはさまざまな要因が複雑に絡み合っています。

 例えば一定の高さからボールを落下させて、地面につくまでの時間を計測するということを考えます。大きな要因として考えられるのは引力と地面からの距離です。比較的軽いボールですと重量や直径なども考慮したほうが良さそうです。これだけが要因だと距離が同じ場合には計測結果は常に一定になりそうですがおそらくそうはなりません。微小な気温や湿度の変化によってボールが受ける抵抗が変化することもあるでしょうし、近くを通るものが起こす風の影響を受けるかもしれません。非常に厳密に計測できる場合は近くの重量物の位置の変化の影響を受けることがあるかもしれません。ときには計測システムに影響を及ぼす要因もあるでしょう。

 このように大小さまざまな要因の影響を受けることでデータにばらつきが出ます。データが少ない場合にはこのデータのばらつきが真の姿をより見えにくくし、過学習を引き起こす原因となります。

 ここでオッカムの剃刀という概念を紹介しましょう。オッカムの剃刀とは、14世紀の神学者オッカムが提唱した「ある事柄を説明するのに必要以上に多くのものを仮定すべきではない」という考え方です。このオッカムの剃刀に倣い、ばらつきを引き起こすような要因(先のボールの落下の例でいうと、近くを通るものが起こす風の影響といった些細なもの)は排除し、重要な要因だけでモデリングするのが良さそうです。そうすることで、仮にデータ量が少なくとも、真の姿に近いものが見えるのではないか、これがスパースモデリングの根底にある考え方です。

スパースモデリングの歴史

 スパースモデリングの始まりには諸説ありますが、1996年にRobert Tibshirani(スタンフォード大学)が提唱したLASSOなどを契機としてデータサイエンスなどの分野でその有用性が広く認知されるようになりました(LASSOについて詳細は後述します)。LASSOはその後さまざまな形でその発展形が提唱されることになります。

 その後、顕微鏡や望遠鏡などさまざまな計測に革命をもたらす圧縮センシング(Compressed Sensing)が、2006年にDavid L. Donoho(スタンフォード大学)より提唱されました。圧縮センシングを応用することでこれまでより高速に精度の高い計測結果を得ることができるようになり、医療分野や天文分野などで活用されはじめています。

 圧縮センシングが少ない観測データからスパースな元のデータを推定するデコーディング手法であるのに対し、元のデータを辞書と呼ばれる基底ベクトルとスパースなベクトルで表現するためのエンコーディング手法であるスパースコーディングも2000年代に提唱されています。スパースコーディングを使うことによりデータの圧縮を行えるだけでなく、画像からノイズを除去したり、画像の解像度を上げる超解像などさまざまな応用が可能です。

 アカデミアの世界においてスパースモデリングの研究は進んでいますが、スパースモデリングをビジネスに応用しているという事例はまだまだ少ないというのが現状です。今後ますますデータが蓄積される速度は加速し、大量のデータを扱う必要に迫られる場面が多くなることが予想される中、ディープラーニングを中心とした手法に注目が集まっているのも事実です。

 しかし第一回で述べたような解釈性に対する課題や、冒頭で述べた良質なデータを集めることが難しいビジネスユースケースの存在も数多く認識されてきており、今後はスパースモデリングのビジネスへの応用も増えていくでしょう。

次のページ
線形回帰とスパースモデリング

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ITエンジニアのためのスパースモデリング入門連載記事一覧

もっと読む

この記事の著者

木虎 直樹(株式会社ハカルス)(キトラ ナオキ)

 プログラマとインフラエンジニアを行き来するという、今となっては境界が曖昧になってきつつあるが、当時としては珍しい感じでキャリアをスタートして早20年弱。2011年頃からはデータ分析や機械学習といった最近では AI と一単語でまとめられてしまうような分野も手がけるようになった。 2018年 4月に ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11148 2018/11/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング