こんにちは。
Lassoでスパース、スパースと言ってましたが実際はスパース推定という言葉がよく使われます。これについての説明を軽くしてからGroup lassoの紹介をします。
スパース推定とは
スパースは”疎”を意味します。スパース推定とはどのパラメータが0になるかを推定すること。つまり、データの本質がわかります。直感的には次の図から
![](https://research.miidas.jp/wp-content/uploads/2019/02/Screen-Shot-2019-02-21-at-14.22.29.png)
もう少し実用的な例は?
![](https://research.miidas.jp/wp-content/uploads/2019/02/Screen-Shot-2019-02-21-at-13.51.31.png)
右の入力から左の出力を考えるLassoモデルを考えると
![](https://research.miidas.jp/wp-content/uploads/2019/02/Screen-Shot-2019-02-21-at-13.58.17.png)
のようにアレルゲン反応のスパース推定ができます。
つまり、スパース推定により
関与しないパラメータがわかります。
Group Lassoとは
グループラッソとは
「潰れる変数がグループになったLassoモデル」
先ほどのアレルゲンを例にとると例えば、ヒノキなどの個体単位ではなく「花粉」というグループ単位でスパース性が検証できるモデルのことです。Lassoはの正規化項は次のものでした。
![Rendered by QuickLaTeX.com \[\Omega_{Lasso}(\beta) = \sum_{i=1}^{n} |\beta_i|\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-3bda9999a35499c95d281fdd0f00c5ea_l3.png)
Group Lassoの正規化項は次で定義されます
![Rendered by QuickLaTeX.com \[\Omega_{Group}(\beta) = \sum_{g=1}^{G} \sqrt[]{p_g} |\beta_{g}|_2\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-48a2a72b579a16e703348b2c6b486fec_l3.png)
ここで
![Rendered by QuickLaTeX.com g](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-d208fd391fa57c168dc0f151de829fee_l3.png)
はg番目のグループを表すindex。(ただし、
![Rendered by QuickLaTeX.com g = 1,\cdots, G](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-84b414913ab1e78e878d4bc26c39b816_l3.png)
、
![Rendered by QuickLaTeX.com p_g](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-5fd69f4fbee38b223bc1cbf61f28a22d_l3.png)
はグループgの大きさ)
前述通りGroup Lassoでは
特徴をグループ化します。よって、事前に類似の傾向がありそうな特徴の情報を考慮します。
なるほど、と思った方と、ん?、と思った方がいると思います。
グループ単位で本当に潰れるのか?
仮にそうならどうやって変数を扱うのか?
これは図を用いてチェックしましょう。
Group Lassoの解
まず
![Rendered by QuickLaTeX.com J](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-ad28cd88e33b638907ffae49cfe60953_l3.png)
個の変数からなるもっとも一般的な回帰問題を考えます
![Rendered by QuickLaTeX.com \[Y = \sum_{j=1}^{J} X_j \beta_j + \epsilon\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-9a0f2a014cb0cd4ea12cf9e631ce0c56_l3.png)
Yは
![Rendered by QuickLaTeX.com n\times 1](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-154ce6c55ecbdb4c13a9bc56cffebdc7_l3.png)
ベクトル、
![Rendered by QuickLaTeX.com \epsilon \sim \mathcal{N}(0, \sigma^2I)](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-407f5c512872afc2ff6f32d8c357227f_l3.png)
、
![Rendered by QuickLaTeX.com X_j](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-7bf3b88c1697cfce46b4312aba73541a_l3.png)
は
![Rendered by QuickLaTeX.com j](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-43c82d5bb00a7568d935a12e3bd969dd_l3.png)
番目のデータに対応した
![Rendered by QuickLaTeX.com n\times p_j](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-cedbe2ff7f855bc7e33621b745315bfd_l3.png)
行列で
![Rendered by QuickLaTeX.com \beta_j](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-c7b9ff31f3b4a1701cf1073c59582745_l3.png)
はサイズ
![Rendered by QuickLaTeX.com p_j \times 1: j=1,\cdots,J](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-0671abc56c7eb1276ae9de92965e4c7b_l3.png)
の係数からなるベクトルとする。さらに各
![Rendered by QuickLaTeX.com X_j](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-7bf3b88c1697cfce46b4312aba73541a_l3.png)
は直交行列であると仮定する。
すなはち
![Rendered by QuickLaTeX.com X_j^t X_j = I_{p_j}; j=1,\cdots ,J](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-5354728468c6cdd523d9929c01c116f4_l3.png)
とする。さらに、
![Rendered by QuickLaTeX.com X = (X_1, X_2, \cdots, X_J)](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-6c7709c9cd2b08b60a4e170f03f7ea66_l3.png)
、
![Rendered by QuickLaTeX.com \beta = (\beta_1^t, \beta_2^t, \cdots, \beta_J^t)^t](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-0cbf34a21de6ef32a5ef8c764bfbbcaa_l3.png)
とすると上式は
![Rendered by QuickLaTeX.com Y=X\beta + \epsilon](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-08da6400b48c9af31b45613ca0b2cc03_l3.png)
かける。
長ったらしく書きましたが要は「グループの大きさが各
![Rendered by QuickLaTeX.com p_i](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-878b81bde68f1b5b0ae4a5d2bae13014_l3.png)
のサイズ」です。なので
![Rendered by QuickLaTeX.com p_1 = p_2 = \cdots = p_J = 1](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-d96bdb560dad03087303f9559e778616_l3.png)
を考えるとこれはLassoそのものとなります。
![Rendered by QuickLaTeX.com \eta \in \mathbb{R}^d, d \geq 1](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-121bd05202e0c4eed1865e36ca27c9b0_l3.png)
と
![Rendered by QuickLaTeX.com d \times d](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-168ed3e810d3bffdd15780d3a619ab0e_l3.png)
の正定値対称行列
![Rendered by QuickLaTeX.com K](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-ea9c87a513e4a72624155d392fae86e2_l3.png)
に対して次を定める。
![Rendered by QuickLaTeX.com \[|\eta|_K = (\eta^t K \eta)^{1/2}\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-22df4e9c696c54e2869464d074bbb7e8_l3.png)
ただし、
![Rendered by QuickLaTeX.com |\eta| = |\eta|_{I_d}](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-f89cd28b607d422ea1fce25817f16433_l3.png)
とする。正定値行列
![Rendered by QuickLaTeX.com K_1,\cdots,K_J](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-d4a6d53313b26f95d0e337ca71545c52_l3.png)
が与えられた時、Group Lasso回帰では次の解を考える。ただし
![Rendered by QuickLaTeX.com \[\frac{1}{2} | Y - \sum_{j=1}^{J} X_j \beta_j |^2 + \lambda \sum_{j=1}^{J} |\beta_j|_{K_j}\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-1f499999d9d45540e107fa4b726d20bb_l3.png)
Bakin(1999)はこれをグループ変数によるLassoの拡張版として提案しました。
ここも特に気にする必要はなく、大切なのは正定値対称行列
![Rendered by QuickLaTeX.com K](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-ea9c87a513e4a72624155d392fae86e2_l3.png)
により変数に
「重み」が掛かっているところです。機械学習ではこのように変数に重みを加える動作をよくします。一例として
–
マハラノビス距離(Mahalanobis distance)
があります。僕たちが無意識に距離として使っているものはユークリッドノルムで
![Rendered by QuickLaTeX.com K=I](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-fdd777e913d5b290f2a7d88391a9e5a2_l3.png)
、つまり単位行列の時です。
では先ほどの
「どうやってグループ単位で変数が潰れるのか?」
をみましょう。
下の図はグループが2つ(各係数はベクトルとスカラー)、つまり
![Rendered by QuickLaTeX.com \beta_1 =(\beta_{11}, \beta_{12})^t, \beta_2](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-0cdfda1239779f5d1e67c501bc80f595_l3.png)
の場合を考え、
![Rendered by QuickLaTeX.com K_j](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-4ce0e5686a21b275455f34575a5d48dd_l3.png)
が単位行列の場合の正規化項を表しています(ラッソはダイヤ、リッジは円だったやつの三次元バージョン)
![](https://research.miidas.jp/wp-content/uploads/2019/02/Screen-Shot-2019-02-21-at-15.01.41.png)
つまり、
- Figure(a)は
![Rendered by QuickLaTeX.com ||(\beta_1^t,\beta_2) ||_1^1 = 1](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-043118f8f3164a7e700331f1bbfc47f6_l3.png)
- Figure(e)は
![Rendered by QuickLaTeX.com ||\beta_1||_K + ||\beta_2||_1^1 = 1](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-ee756e08ce1014e670e41c95da7b9fd1_l3.png)
- Figure(i)は
![Rendered by QuickLaTeX.com ||(\beta_1^t,\beta_2) ||_2^2 = 1](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-cc8e7567aca0556010d85624c672f6ef_l3.png)
もっと噛み砕くと
- Figure(a)は Lassoの
-norm
- Figure(e)は GroupLassoのnorm
- Figure(i)は Ridgeの
-norm
です。Figure(e)において
![Rendered by QuickLaTeX.com \beta_{11}- \beta_{12}](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-a24778d7d790603d8e29bc0b3563df21_l3.png)
平面を見ると
![Rendered by QuickLaTeX.com \beta_1](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-002f618dd2d52e6ce129e66c06d48c36_l3.png)
というグループ単位でゼロに潰れることがわかります。
だからGroup Lassoはグループ単位ででスパース性を与えているんです。
でわ。
READMORE