ISLR: Chapter 6 Linear Model Selection and Regularization
回帰において標準的な線形モデルは以下のように書かれる. この線形モデルに,最小二乗法よりも良い予測の正確さ(Prediction Accuracy)とモデルの解釈性(Model Interpretability)を持つフィッティングの方法を適用したい.
Prediction Accuracy: 説明変数と目的変数の関係がほぼ線形だとする.この時,,つまり,説明変数の数に対して観測の数が十分に大きいなら最小二乗法で推定されたパラメタはバイアスが低いので,テストデータに対してもうまく機能することが期待できる.しかし,が十分に大きくなかったらうまく機能しないだろう.また,なら分散が無限大になるので,最小二乗法は有効ではない.そこで,推定されたパラメタを縮小することで,バイアスをほんの少し増加させる代わりに分散を小さくし,性能を上げることができる.
Model Interpretability: 多変量回帰では,全ての説明変数が目的変数に貢献しているわけではない.そういった変数は無駄に解釈を難しくしているので,それらの説明変数に対する係数を0にして,解釈しやすいモデルを獲得したい.
6.1 Subset Selection
Subset Selectionは,個の説明変数のうち,目的変数をよく説明しているいくつかの説明変数を選び出す.
6.1.1 Best Subset Selection
以下のアルゴリズムの通り.
をnull modelとする.はそれぞれの観測について標本平均を予測する.
について,
(a) 個のモデルをフィットさせる.
(b) 個のモデルの中で最も良いモデルをとする.良さはやで決める.
の中から,AIC, BIC, adjusted , cross-validated prediction errorなどを用いて,一番良いモデルを選ぶ.
Step 2によって,個のモデルのうち1つを選ぶ問題から,個のモデルのうち1つを選ぶ問題に置き換わっている.
ただ,何も考えずにの値の最小/最大だけで決めてはいけない.というのも,説明変数の数を増やせばは単調減少,は単調増加するから.この低いや高いはtraining errorが低いことを意味するが,我々が欲しいのはlow test error.ゆえに,Step 3でcross-validated prediction errorやAIC, BIC, adjusted を使ってモデルを選択している.
最小二乗法に対してBest Subset Selectionする方法を示したが,基本的に他の手法に対しても同じように適用可能.ただ,ロジスティック回帰の場合はの代わりに,最大対数尤度に-2をかけた逸脱度()を用いる.このは低いほどうまくフィットしていることを表す.
Best Subset Selectionの欠点としては,が大きいときに計算が大変という点が挙げられる.
6.1.2 Stepwise Selection
Best Subset Selectionがが大きい時に計算量が多いという問題に加え,探索空間が巨大になるので過学習やパラメタ推定の分散が大きいという問題も起こり得る.以下の方法は探索空間がBest Subset Selectionより小さい.
Forward Stepwise Selection
以下のアルゴリズムの通り.
をnull modelとする.はそれぞれの観測について標本平均を予測する.
について,
(a) に説明変数を1つ加えた,個のモデルを考える.
(b) 個のモデルの中で最も良いものを選択し,それをとする.良さの尺度は.
の中から,AIC, BIC, adjusted , cross-validated prediction errorなどを用いて,一番良いモデルを選ぶ.
Best Subset Selectionが個のモデルを検討するのに対し,Forward Stepwise Selectionは個のモデルを検討する.ただし,Forward Stepwise Selectionによって得られるモデルは個のモデルの中でのベストとは限らない(最初に得たベストのモデルに変数を1つずつ加えていくので,例えばがを含んでいた場合,から成る2変数のモデルを検討することはできない).
Forward Stepwise Selectionはの時でも使えるが,この場合は個のモデルしか作れない(の時は一意の解を得られらないという性質を持つ最小二乗法で各サブモデルをフィッティングしてるため).
Backward Stepwise Selection
Forward Stepwise Selectionの逆で,1つずつ変数を落としていく.以下のアルゴリズムの通り.
を全ての説明変数を含んだfull modelとする.
について,
(a) から説明変数を1つ落とした,個のモデルを考える.
(b) 個のモデルの中で最も良いものを選択し,それをとする.良さの尺度は.
の中から,AIC, BIC, adjusted , cross-validated prediction errorなどを用いて,一番良いモデルを選ぶ.
Forward Stepwise Selectionと同様に,探索する範囲は個のモデルで,が巨大でも適用可能.ただし,Backward Stepwise Selectionではであることがマスト(じゃないとそもそもfull modelを作ることができない).つまり,の時は使えない.
Hybrid Approaches
Forward Stepwise SelectionとBackward Stepwise Selectionのハイブリッド.Forward~のように変数を1つずつ追加していくが,その度にモデルの性能改善に貢献してない変数を落としていく.Forward~/Backward~の計算量を維持しつつ,得られたモデルはBest Subset Selectionによる結果に近い.
6.1.3 Choosing the Optimal Model
サブモデルを作ったはいいが,その中からtest errorが最小のモデルをどのように選ぶのか.training errorが必ずしもtest errorをpoor estimateしてるとは限らないので,training errorに関連している以外の尺度が必要.よく使われるのは,(1) 過学習によるバイアスを考慮した補正をtraining errorにかけることで間接的にtest errorを推定,(2) 5章で説明したvalidation setやcross-validation approachを使って直接的にtest errorを推定,という2つのアプローチ.
, AIC, BIC, and Adjusted
一般に,training set はtest set よりも小さくなる.なぜならテストデータではなく訓練データを用いて最小二乗法でを最小化しているから. そういうわけではモデル選択には有効ではない.そこで,モデル選択に有効な4つの指標,赤池情報量規準(AIC),ベイズ情報量規準(BIC),adjusted を示す.
最小二乗法でフィットされたモデルが個の説明変数を含んでいる時,test error MSEのは以下のように書ける. ここで,は式の誤差項の分散の推定量である.式の解釈としては,training errorがtest errorを過小評価する傾向にあるのを考慮してにペナルティを加えている.説明変数が増えれば増えるほどばらつきも増えるので,説明変数を増やした際にが減少するのを補正している.また,もしがの不偏推定量だった場合,はtest MSEの不偏推定量になる.は小さい値ほどよいモデルであることを表す.
で与えられるMarrow’s もあるが,これを用いると,は次のようにも書ける. 結局,Marrow’s の最小化との最小化は同じ話.
次に,AIC.AICは最尤推定で定義される.がガウスノイズの場合の線形モデル(式)についてのAICは下式で与えられる. 本来は定数項も存在するが,記述の簡略化のため除去している.最小二乗法でフィットされた線形モデルの場合は,とAICは比例関係にある.したがって,AICでモデル選択する場合もAICが最小となるモデルを選ぶ.
BICはベイジアンの視点で導出される.個の説明変数を持つ最小二乗モデルの場合のBICは下式. BICでモデル選択する場合もBICが最小となるモデルを選ぶ.ペナルティ項がやAICのからに変わっている点に注意.任意のについてなので,BICは変数が多いモデルに強いペナルティを課す.ゆえによりも説明変数の少ないモデルが選ばれやすい.
最後にadjusted .調整前のはで定義される.adjusted は以下のように定義される. adjusted {tex:R^{2}]の場合は,値が最大のモデルを選択する.adjusted {tex:R^{2}]の最大化はの最小化と等価.は単調減少だが,分母に組み込んだ説明変数の個数があるので,はに応じて増加または減少する.直感的には,理想のモデル選択を行った場合,そこに更に変数を追加してもはほぼ減らないが,が増加しているので,は増加する.ゆえにadjusted は減少する.本書で述べられているように,やAICで選ばれたモデルとは異なるモデルが選択される場合もある.
もちろん最小二乗モデル以外のモデルにも適用可能.
Validation and Cross-Validation
validation set approachやcross-validationで直接的にtest errorを推定する方法.test errorを直接推定している点や真のモデルへの仮定が少ない点で上述の規準よりも優れている.モデルの自由度(説明変数の個数)を正確に求めたり,の分散を推定するのが困難な場合は,上述の規準よりこちらの方が良い.
ただし,バリデーションやクロスバリデーションは分割の仕方に依存するので,分割を変える度に選択されるモデルが変わる.これを解決する方法として,one-standard-error-ruleがある.まず,各モデルについてtest errorの推定量の標準誤差を求める.次に,誤差曲線が最小の値を示す点から標準誤差内に収まっているモデルのうち,最小のtest errorを示すモデルを選択する.
6.2 Shrinkage Methods
係数を0に近づけて分散を小さくすると同時に,説明変数の数を減らし,フィットを改善する.
6.2.1 Ridge Regression
3章では,実際の観測と線形モデルによる予測値との二乗の差を最小化してパラメタを求めた. リッジ回帰も線形回帰の最小二乗法によるフィッティングと似ている.リッジ回帰におけるパラメタの推定量は下式を最小化することで求める. ここでは,フィッティングとは別に決定されるチューニングパラメタ.最小二乗法同様にリッジ回帰もを小さくする方向でのフィットを試みるが,罰則項や正則化項と呼ばれる第2項はが0に近いほど小さくなる.つまり,正則化項にはを0に近づける効果がある.は回帰式全体における正則化項の影響力の大きさということになり,なら最小二乗法による学習と同じ結果を得る.逆にを大きくするとパラメタを0に近づける方向でフィットさせる.我々が行いたいのは説明変数に対する係数を0に近づけるなので,上式を見てわかるように,正則化項は切片には適用されない.は単なるレスポンスの平均の指標に過ぎない.例えば,各説明変数の平均が0になるように調整されていたらになる.
最小二乗法による線形回帰ではパラメタは一意に定まったが,リッジ回帰ではの値によってパラメタが変わる.つまり,本質的に重要なのはの選択.あとでクロスバリデーションでを選択する方法を示す.
An Application to the Credit Data
最小二乗法では説明変数を定数倍してもの値は変わらないが,リッジ回帰ではに罰則項が加わっているため,スケールによっての値が変わる.このため,回帰する前に全ての説明変数を下式で標準化しておくべき. 上式で分母は番目の説明変数の標準偏差の推定値を表している.
Why Does Ridge Regression Improve Over Least Squares?
最小二乗法と比べた時,リッジ回帰の利点はバイアス・バリアンスのトレードオフにある.を大きくするとリッジ回帰の表現力は減少し,その結果,分散が小さくなり,代わりにバイアスが大きくなる.を0にすると,分散が大きくなり,代わりにバイアスが0になる.一般に,説明変数と目的変数が線形関係にある時,最小二乗法による線形回帰は分散が小さく,バイアスが大きい.特に,とが同じ位の時はものすごくばらつく.また,の時は最小二乗法では一意に定まらないが,リッジ回帰はほんの少しのバイアスを増加させることで分散を小さくできるのでうまくいく.そういうわけでリッジ回帰が最も効くのは最小二乗法の分散が大きい時.
6.2.2 The Lasso
Ridgeの正則化項がノルムの2乗だったが,Lassoの正則化項はノルム.
Ridgeは説明変数全体について係数を0に近づけるだけ,つまり,の値を大きくしようと説明変数の個数は減らない.ゆえにモデルの解釈性に難あり.だが,Lassoならを調整することで係数を0に近づけることができる.Fig. 6.6にあるようにの値を大きくするとどんどんと説明変数に対応した係数が0になっていく.Lassoのように,ある説明変数の係数を0にすることで説明変数の個数を減らされたモデルはスパースモデルというらしい.
Another Formulation for Ridge Regression and the Lasso
Ridge回帰(式)とLasso(式)は,それぞれ以下の形に書き直せる. こう書き直すと,正則化項が以下という制約の下で最小二乗法していることになる.が大きければただの最小二乗法になるし,小さければ,Ridgeならあらゆる説明変数に対する係数が0に近づき,Lassoなら説明変数それぞれの係数が0に近づき,変数が減っていく.
ここで,Best Subset Selectionの定式化は以下のようになる. ここでは,の時に1,そうでない時に0を取る指示関数(Indicator Variable).式は式とよく似てる.もちろん,ノルムのLassoのほうがBest Subset Selectionに近い.
The Variable Selection Property of the Lasso
ノルムの描く軌跡は正方形を45度回転させた形,ノルムの描く軌跡は円.この正則化項の領域と,の描く等高線との接点が,最小化によって求まるパラメタ.そう考えると,ノルムよりノルムのほうが接点は軸に近くなるので,変数選択の効果があるねという話.
Comparing the Lasso and Ridge Regression
LassoはRidgeと比べて変数選択によるモデルの解釈のしやすさという利点がある.が,予測性能はどうだろうか?そんなものは問題設定による.レスポンスにあまり貢献しない説明変数が多ければLassoの方が良いし,そうでないならRidgeの方が良い.
A Simple Special Case for Ridge Regression and the Lasso
RidgeとLassoのパラメタの動きの違いを理解するために,入力を単位行列とした場合,パラメタはそれぞれ以下の通り. Ridgeは同じ比率で係数を潰していくのに対し,Lassoはが以下の場合0にする.グラフにすると一目瞭然なのでFig. 6.10を見てもらいたい.簡単のために単位行列を用いたが,一般の入力データについても,係数の潰れ方は同じような感覚でいいみたい.
Bayesian Interpretation for Ridge Regression and the Lasso
ベイジアン的な視点からRidgeとLassoを見る.パラメタは,を何かしらの密度関数として,事前分布を持っていることを仮定する.そうすると,観測が与えられた時のパラメタの事後分布は,尤度をとすると, と書ける.前半はベイズの定理による変形.後半の等式は,観測が与えられている前提なので,は固定されているため変形できている.
そうすると,Ridgeによって得られる解は,が平均0,標準偏差がの関数の正規分布だった場合,は事後確率の平均値(事後モード?と言うらしい?)になる.
また,Lassoによって得られる解は,が平均0でパラメタを持つラプラス分布の場合,も事後確率の平均に相当するらしい.が,実際には,Lasso解は事後確率の平均ではない.というのも事後確率の平均はスパースベクトルじゃないので.
Fig. 6.11を見ると,Lassoは0の周りで尖ってるので,多くの説明変数は0だと仮定していることになる.逆にRidgeは係数が0の周りでランダムに散らばってると仮定している.
6.2.3 Selecting the Tuning Parameter
クロスバリデーションしてcross-validation errorが最小となるを選ぶだけ.
6.3 Dimension Reduction Methods
Ridge, Lassoは個の説明変数で予測してたけど,説明変数を個に減らしてから予測したい.とりあえず,以下のようなを考える. ここでは何かの定数とする.これらを使って最小二乗法でフィッティングしたい. ちなみに,変数の個数減らしてもやってる事自体は,とすると,同じであることが以下の式変形でわかる. 個の説明変数で最小二乗法するより,個の説明変数で最小二乗法したほうがいい結果が出るかもしれない.なぜかというと,例えばの時,説明変数を個にすることで推定されたパラメタの分散が小さくなることが期待できる.
というわけで,をどうやって決めるかという話になる.
6.3.1 Principal Components Regression
An Overview of Principal Components Analysis
説明変数を主成分分析(Principal Component Analysis, PCA)で次元縮小してから回帰.PCA自体はChapter 10で詳しく話す. PCAは,まず,データのばらつきが最大になるように(第一主成分に射影した時の分散が最大になるように)第一主成分を決める.別の見方をすると,第一主成分は元のデータをできるだけ再現するように決まる.元のデータを第一主成分に射影した時の距離を最小にする.そういう意味で,なるべく元のデータを保存できるように第一主成分が決定される.第一成分が決まったら,第二成分は第一成分と相関がないという条件の下で分散が最大になるように決定される.第三成分以降も,既存の軸と相関を持たないようにしつつ,分散最大になるように決定される.
The Principal Components Regression Approach
PCRは単に個より少ない個の変数で回帰してるだけなので,変数選択ではない.本書の例ではAdとpopulationが混ざったような形になってる.
PCAは分散が最大になるように軸を決めるので,適用する前にスケールの標準化を行わなければならない.そうしないと分散が以上に大きい説明変数の影響を強く受けてしまう.
6.3.2 Partial Least Squares
PCAで分散最大の軸を探す仮定でレスポンスは使ってない.つまり,これって一種の教師なし学習だよね.だからこそ,PCAには「分散最大の軸を見つけ,それに従って軸を回転させるけど,それが予測する上で最適な軸とは限らない」という問題がある.
そこでPLSを考える.PLSは,大雑把にまとめると,データの表現をできるだけ保つ軸を探しつつとの関連性も見る教師あり学習.実際には,まず標準化する.その後,式のをとの相関係数に比例するようにする.そうすると,に最も関連するに一番重い重みが与えられることになる.これでが求まる.次に,それぞれの変数でを回帰して残差を取り,各変数をについて補正する.この残差はで表現しきれなかった情報として解釈できる.その上で先程と同様にの最小化を行い,また同様に補正をかけて…という具合に繰り返していく.
パラメタ選択はクロスバリデーション.
ただし,実用上はPCAやRidgeより性能がでないらしい.理由は,PLSはバイアスは減るが,代わりに分散が大きくなりやすいから.
6.4 Considerations in High Dimensions
6.4.1 High-Dimensional Data
もしくはとがほぼ同じ時,教師あり学習する時に気をつけること.
6.4.2 What Goes Wrong in High Dimensions
最小二乗法はじゃないとダメ.理由は,説明変数とレスポンスの数がほぼ同じだったりすると,残差0でフィット,つまり過学習してしまうから.別の言い方をすると,もしくはとがほぼ同じ時,最小二乗法は表現力が高すぎる. また,教師あり学習ではとTraining MSEだけで判断してはいけない.は変数の数を増やせば増える(つまり,とを近くする)し,そうすろと過学習になるのでTraining MSEはどんどん減っていく.そうならないために変数選択として, AIC, BICを扱ったが,高次元(ではない)の時はのため,それらは有効ではない.同様の理由でAdjusted も簡単に1になるのでダメ.何か別の方法がいる.
6.4.3 Regression in High Dimensions
forward stepwise selection, Ridge, Lasso, PCAは,最小二乗法よりも表現力の低い手法なので,結果的に過学習を回避することができ,高次元の問題設定では有効. 大事なポイントは,(1) regularization/shrinkageが高次元の問題設定では重要,(2) パラメタチューニング大事,(3) 出力と関係ない変数を突っ込むと精度はどんどん悪化していく(次元の呪い),の3点.
6.4.4 Interpreting Results in High Dimensions
高次元の問題に対してLassoやRidgeを使うのはいいけど,それで全てが解決するわけではない.高次元だと共線性が発生しやすいという問題がある. また,変数選択とかでいくつか変数を減らしたモデルを得ることができたとしても,それは単に考え得る無数のモデルから1つを獲得しただけということは念頭に置いておく必要がある. さらに,高次元()の時はSSE (Sum of Squared Errors), 値,などの統計量を用いてモデルを評価してはいけない.例えばになったりしやすいので.そういう場合は独立にテストデータを用意するかクロスバリデーションを行う.もちろんその中でのテストデータに対して統計量を用いるのは良いが,訓練データについて算出した統計量は有効ではない.