見出し画像

スパース推定について ~Lassoを中心に~ ①Lassoとは編

アポロ株式会社の今泉と申します。

Lassoという手法を中心に、スパースモデリングや高次元統計についてシリーズものでお話していこうと思います。
これは、数理統計、数理最適化、信号処理、画像処理、バイオインフォマティクスなどをはじめとしたさまざまな分野から、分野横断的に発展してきたトピックです。
最近だとあまり単独で話題になることはあまりない印象ですが、得られた知見や技術が当たり前として普及してきたため、という気もします。

まず、Lassoというのは

  • ふつうの線形回帰が使えない高次元設定でも使える回帰手法で

  • ほとんどの解がゼロなので解釈しやすい(といわれている)

手法です。
今回はLassoについてのおおまかな概要として、上記二文を説明する内容を書きます。

Lassoとは

Lassoとは、以下のL1正則化項つき線形回帰問題ないし手法のことです。※1

$$
\min_{\beta} \frac{1}{2}|| y-X \beta ||^2_2 + \lambda ||\beta||_1 \\ y \in \mathbb{R}^n ,X \in \mathbb{R}^{n\times p} ,\beta \in \mathbb{R}^p , \lambda \in \mathbb{R}^+
$$

サンプルサイズが$${n}$$、説明変数・特徴量ベクトルの次元が$${p}$$だとして、$${y}$$は目的変数または圧縮表現、$${X}$$が計画行列(説明変数・特徴量を並べた行列)ないし観測行列、$${\beta}$$を回帰係数ベクトルや原信号といい、$${\lambda}$$はハイパーパラメータとよばれるものです。

この辺りの呼称は分野によってまちまちで、実際には同じものを全然違う名前で呼んでいたりします。
この問題の解$${\beta_{Lasso}}$$をLasso推定量といったりします。

L1正則化項つき線形回帰問題といいましたが、線形回帰問題の部分が$${\frac{1}{2}|| y-X \beta ||^2_2}$$です。
L1正則化項というのが$${\lambda ||\beta||_1}$$の部分で、これは回帰係数に対する制約を与えています。

この問題を解くことで得られる解$${\beta_{Lasso}}$$は、$${p>n}$$の場合、$${\beta}$$のほとんどの要素がゼロで一部の要素だけにゼロでない値があるといったものになります。
ほとんどの要素がゼロであるような解を、疎な解・スパースな解といいます。Lassoの場合はL1正則化項による効果で、ハイパーパラメータ$${\lambda}$$の大小によってにスパース具合を調節することができます。

$${n=300,p=1000}$$,非ゼロ要素数10、オレンジの×が真の信号(10個以外全部0)だとして、真の信号にランダムな観測行列をかけてさらにノイズを乗せたものから、Lassoで真の信号を復元できるかというのを試すと以下のような図になります。
青い線がLassoで求めた解です。

青い線が×に埋もれていて図ではよくわからなくなっていますが、青い線で飛び出ていないところは本当にほぼ全部ゼロです。

通常の線形回帰問題では、$${\min \frac{1}{2}|| y-X \beta ||^2_2}$$を解き、解は$${\beta_{OLS} = (X^{\top}X)^{-1}X^{\top} y}$$と一発で書けるのですが、もし説明変数・特徴量の次元が、データの数・サンプルサイズより大きい$${(p > n)}$$のとき、$${X^{\top}X}$$の逆行列である$${(X^\top X)^{-1}}$$は存在しません。数値上は出してくれたりもしますが値が爆発します。
このとき$${X^\top X}$$が正則でないとか特異であるとか言ったりします。説明変数・特徴量の次元pが、データの数・サンプルサイズnより大きいような問題設定を高次元設定といったりします。

似たような話だと、$${X^\top X}$$が正則でないというのは、行列$${X}$$の全要素が1のときに連立方程式$${y=X\beta}$$をみたすような$${\beta}$$は沢山あって解けないということに対応します※2
そういう場合でも$${\beta}$$の中で実は一つの要素以外は全部ゼロだという情報があれば解けることもあります。
この例では、$${\beta}$$の中で実は一つの要素以外は全部ゼロという情報に対応するものがL1正則化項になります。

線形回帰において正則化を考えるモチベーションとしては、過剰適合・過学習への対策がよくいわれることですが、高次元設定でも線形回帰がしたい!というのもあります。
強調しておきたいこととして、サンプルサイズが説明変数より大きい古典的な設定$${(p < n)}$$のとき、通常の線形回帰はほぼ信号の有無を当てられるということです。
$${n=3000,p=100}$$,非ゼロ要素数10、オレンジの+が真の信号(10個以外全部0)と前のケースからちょっと変えて通常の線形回帰を行った図が以下になります。
青い線が通常の線形回帰で求めた解です。

図ではほぼゼロに見えるところは、本当にゼロというわけではないのでスパースとは言えないのですが、この設定では際どくて区別がつかないということもありません。

高次元設定では、候補になる説明変数はたくさんあるわけですが、そういった状況では逆に

  • 少数しか効かないという事前知識がある

  • 資源の制約上少数しか使いたくない

という状況が発生したりします。
Lassoはこのような状況での第一手としては有力だと思います。

ここまで、まるでLassoは高次元設定でスパースな解がほしいときに適しているかのような書き方をしてきました。
が、実際の問題で使おうとするとうまくいかないこともあります。
まず、Lassoのよいところと悪いところを列挙します。後の記事で書くことがなくなってしまうので、ここでは単語の意味は説明しません。

Lassoのよいところ

  1. スパースな解が得られる

  2. 凸問題なので大域的最適解(唯一のベストな解)をもつ

    1. 高速な解法がある

    2. 解が安定している

  3.  理論解析が充実していて知られていることが多い

Lassoの悪いところ

  1. 解が陽に書けない

  2. 解にバイアスがあり、ゼロでない回帰係数は常に真の回帰係数より絶対値が小さい

  3. $${p>>n}$$設定では、$${n}$$個までしか変数を選べない

  4. 説明変数間に強い相関・多重共線性がある場合、そのうちのどれか一つしか選べずその選び方に一貫性がない

  5. (説明や解釈を重視する場合)$${\lambda}$$の決定方法に決定版はない

  6. 理論解析が現実的でない設定なので実問題では使えない知見がままある

悪いところとは言っていますが実用上これらの性質で困るかは問題によります。
よいところの2があまりに強力なので、問題によっては悪いところによって困るとしてもトレードオフを考えるとLassoというのもありうると思います。

本シリーズではLassoの悪いところについて、それをどう克服するかということについて書いていきたいと思います。
次回は、Lassoの悪いところ1.解のバイアスについて書こうと思います。


※1
線形回帰=二乗誤差に限らず、一般の損失関数で定義している場合もあります。ただ、慣習なのか一般化線形モデルの損失関数とかあまり複雑でないときしかLassoとかLasso推定とか何々Lassoと言わない印象です。

※2
ノイズなし圧縮センシングとよばれる問題ではまさにこういう連立方程式を解きます。Candes-Ronberg-Tao (2006)ではこの問題を解いてナイキスト周波数の意味で高速フーリエ変換超えをしています。


最後まで読んでいただき、ありがとうございます。

アポロならではの技術的課題に対する取り組みやプロダクト開発の試行錯誤で得た学びなどを定期的に発信していきます。少しでも業界へ貢献できれば嬉しいです。

今後ともよろしくお願いいたします。

アポロでは、一緒に働く仲間を募集中です。
興味のある方は、ぜひ下記の採用サイトをご覧ください。

この記事が気に入ったらサポートをしてみませんか?