昨年のことですが、NHKの「サイエンスZERO」という番組で魔法の数式スパース・モデリングが特集されていました。少し興味を持つ内容だったので調べてみました。スパース(sparse)とは英語で「まばら」「スカスカ」「少ない」などの意味があります。スパース・モデリングとは数少ない貴重なデータから、本当に知りたかったことをえぐり出す技術とのことです。この手法が今や医療、宇宙科学などの分野に応用され画期的な成果を挙げており、今後更に、自動車の燃費改善や売上予測といった幅広い領域にも応用が期待されています。

少し難しいですが……、原理を知ると楽しい

この魔法の数式スパース・モデリングを式で書くと、下記のE(x)の式になるそうです。流石に数学でこの分野を専門に研究していない限り理解は難しいので、番組の中でもこの式のロジックの説明は殆どされませんでした。NHKなんだから万人に解るように解説してほしい気もしましたが、流石のNHKも無理でした。そのため番組内では応用事例を中心に紹介していました。

評価関数E(x) =‖y-Ax‖^2 +λΣ|x|
記号‖y-Ax‖の意味 → y-Axのノルムと言いベクトル空間での長さを指します。

逆にどういうロジックなのか気になりましたので、素人探究で多分こうじゃないかという感じでまとめてみました。ただWebでも専門用語を多用した説明ばかりで、とても素人が理解できる記事はありませんでしたので間違っていたらごめんなさい。でも当たらずとも遠からずではないかと思います。原点に立ち返ると、少ない情報から、あるいは多過ぎる情報からある事象を表す関数(定数Aと定数λを特定)と使用すべき変数xを抽出するというのが目的ですから、前出の評価関数(はっきり言って式の名前などどうでも良い)を最小にするということのようです。‖y-Ax‖^2 の部分で変数となるxの候補を抽出し、更にλΣ|x|の部分で一定の制約条件を付けて候補のxを更に絞り込む、というのが大まかな原理のようです。しかし、この評価関数のE(x) =‖y-Ax‖^2 +λΣ|x| という表記自体が、私のような素人には取っ付き難い代物です。右辺で‖y-Ax‖^2 の部分だけなら最小二乗法による単純な回帰分析となるように思います。回帰分析とは、{(実測値:y)-(理論値:ax+b)}の2乗の総和が最小になるようaとbを設定し、y=ax+bの関数で未測定のyの値を予測する手法です。

ここでは予測したい値となる目的変数yを表す説明変数が1種類(xだけ)しかない、最もシンプルな単回帰分析(y=ax+b)を例に考えてみます。図1のように計測データが(x=1、y=1)の僅か1個だった場合、x=2でのyの値を予想するのは不可能です。理由は座標(1,1)を通過する直線(図の中で赤い直線)は無限に存在するためです。では図2のように計測データが(1,1)と(2,2)だったらどうでしょう? この場合は見ての通り1本の直線しか引けません。中学で習った一次関数のy=ax+b という極めて単純な式となりますが、(1,1)(2,2)を通ることから直線の傾きを表すaの値は1,初期値のbは0となりますので、代入するとy=xとなります。ここではaとbを求める2元1次方程式の解き方は割愛します。この結果x=3ではyは3になるだろうと推察することになります。

ただスパース・モデリングがいくら「まばら」「スカスカ」と言っても2個のデータということはないので、一般的には図3のようになるのではないでしょうか。図3では赤い点の座標が有効なデータ、青い点の座標が不要なデータを示しています。全てのデータから回帰直線を求めると緑の直線になるのに対して、有効な赤い点のデータだけで計算すると赤の直線になり、赤い線が事象をシンプルだけど非常に正確に表すという原理のようです。図4のように使用するxの個数がある一定値以上になると、予測値と実測値の誤差が殆ど変化しないP点でxの個数を限定するということです。ちょうど昔のテレビ画面の走査線が1000本以上になると、人間の目には鮮明さは影響しないのと同じ感じです。

これが重回帰分析になると、変数xが1種類ではなく複数になるのでy=A1X1+A2X2+A3X3+・・・+AnXn+Bという式になります。スパース・モデリングでは膨大な説明変数のいくつかのXをX=0として間引きし、極めてシンプルな関数にしてくれるということのようです。

【事例1】AI(人工知能)における機械学習

効果:人口知能の問題判別精度の向上

  • 対話能力(Call Center / 介護/ 診断など)
  • 機械制御(車の自動運転)


【事例2】金融工学

効果:予測精度の向上

  • 株価
  • 為替