エラスティックネット

エラスティックネット英語: Elastic net)は、ラッソ回帰リッジ回帰の L1正則化と L2正則化をパラメータを用いてバランスよく線形結合で組み合わせた正則化回帰手法である。統計学での線形回帰ロジスティック回帰モデルの最適化に用いられる。

仕様

エラスティックネットは、ラッソ回帰のペナルティ関数: の特性によって生じる欠点を解消した正則化手法である。

ラッソ回帰のペナルティ関数によって生じる欠点[1]は具体例として、共変量 p と標本数 n のとき、共変量が高次元で標本数の少ないデータの場合、ラッソ回帰では多くとも標本数までしか共変量を選択することができない。また高い相関を持つ共変量の組み合わせのとき、ラッソ回帰内のペナルティ関数が共変量の1つの変数だけに影響され、他の変数が影響しなくなることがある。この欠点を解消するため、エラスティックネットでは、ラッソ回帰の正則化項にリッジ回帰の正則化項のペナルティ関数 ( ) を新たに加えた形式となる。エラスティックネットにおける推定値は次のように定義する:

2次の正則化項の導入により損失関数は強凸性となり、損失関数の最小値は一意に決まる。エラスティックネットでは または、 のとき、それぞれラッソ回帰とリッジ回帰として正則化することができる。一方、パラメータを適切に設定したエラスティックネットでの正規化は を固定してリッジ回帰の正則化項の係数を決定してから、ラッソ回帰の正則化項の係数を決定する2段階の手順で推定量を求める。この推定方法では、推定量が約2倍の速さで収縮するため、バイアスが大きくなり、予測精度が悪くなる。予測精度を向上させるために、論文著者は推定係数を 倍することで、エラスティックネットの係数を再スケーリングしている[1]

エラスティックネットによる正則化が行われている例:

  • サポートベクターマシン[2]
  • 距離学習[3]
  • ポートフォリオ最適化[4]
  • がん予測[5]

サポートベクターマシンでの正則化

2014年後半、エラスティックネットによる正則化で線形サポートベクターマシンの説明変数の削減が可能なことが証明された[6]。2014年内に、ラッソ回帰で同様の削減方法が証明された[7]。論文の著者達はエラスティックネットの各インスタンスについて線形サポートベクターマシン (SVM) の超平面解が(再スケーリング後の)解 と等しくなるような二項分類問題を任意に構築できることを示した。この削減法で、エラスティックネットは高度に最適化された SVM ソルバーを使用することができるようになった。また、大規模な SVM ソルバーでは高速処理を実現する GPU アクセラレーションを利用することも可能である[8]。この削減法は、元のデータと正則化定数の単純な変換:

によって、二項分類問題と SVM 正則化定数を特定する新しいデータインスタンスと正則化定数に変換する:

ここで、 は2値ラベル からなる。 のとき、一般的に線形SVM では主問題で解くと速く、それ以外の場合は双対問題を解く方が速い。論文著者はこの変換をサポートベクトルエラスティックネット (SVEN) と命名し、以下の MATLAB での疑似コードを提供した:

function β=SVEN(X,y,t,λ2); [n,p]=size(X);  X2 = [bsxfun(@minus, X, y./t); bsxfun(@plus, X, y./t)]; Y2=[ones(p,1);-ones(p,1)];if 2p>n then  w = SVMPrimal(X2, Y2, C = 1/(2*λ2)); α = C * max(1-Y2.*(X2*w),0); else α = SVMDual(X2, Y2, C = 1/(2*λ2)); end ifβ = t * (α(1:p) - α(p+1:2p)) / sum(α);

ソフトウェア

  • "Glmnet: Lasso and elastic-net regularized generalized linear models" は Rソースパッケージや MATLAB のツールボックスとして実装されたソフトウェアである[9][10]。これは周期的に正則化パスに沿って計算される座標降下法を用いて、ℓ1(ラッソ回帰)、ℓ2(リッジ回帰)を混合した正則化項(エラスティックネット)による一般化線形モデルの推定を行う高速アルゴリズムが実装されている。
  • JMP (ソフトウェア)英語版は、最適化モデルによる一般化回帰パーソナリティを使用したエラスティックネットを搭載している。
  • "pensim: Simulation of high-dimensional data and parallelized repeated penalized regression" では、ℓ パラメータの並列化 "2D" チューニングを実装し、予測精度の向上させることができる手法としてエラスティックネットが用いられている[11][12]
  • scikit-learn ではエラスティックネットによる線形回帰、ロジスティック回帰、線形サポートベクターマシンの正則化に対応している。
  • SVEN はサポートベクトルエラスティックネットによる正則化を MATLAB 上で実装したソフトウェアである。このソルバーは SVM による二項分類でエラスティックネットの正則化でのインスタンスを削減し、MATLAB の SVM ソルバーを使用して正則化後の解を求める。SVM は容易に並列化できるため、最新のハードウェア上では Glmnet より高速なコードが実現できる[13]
  • SpaSM はMatlab上でエラスティックネット正則化回帰を含むスパース線形回帰、分類、主成分分析を実装している[14]
  • Apache Spark は機械学習ライブラリMLlibでエラスティックネット回帰をサポートしている。この方法は一般化線形回帰クラスのパラメータとして利用することができる[15]
  • SAS (ソフトウェア)英語版 SAS プロシージャーの Glmselect[16]では、モデル選択における正則化でエラスティックネットをサポートしている。

脚注

参考文献

外部リンク