エラスティックネット

エラスティックネット（英語: Elastic net）は、ラッソ回帰とリッジ回帰の L1正則化と L2正則化をパラメータを用いてバランスよく線形結合で組み合わせた正則化回帰手法である。統計学での線形回帰やロジスティック回帰モデルの最適化に用いられる。 エラスティックネットは、ラッソ回帰のペナルティ関数: ‖ β ‖ 1 = ∑ j = 1 p | β j | {\displaystyle \|\beta \|_{1}=\textstyle \sum _{j=1}^{p}|\beta _{j}|} の特性によって生じる欠点を解消した正則化手法である。 ラッソ回帰のペナルティ関数によって生じる欠点は具体例として、共変量 p と標本数 n のとき、共変量が高次元で標本数の少ないデータの場合、ラッソ回帰では多くとも標本数までしか共変量を選択することができない。また高い相関を持つ共変量の組み合わせのとき、ラッソ回帰内のペナルティ関数が共変量の1つの変数だけに影響され、他の変数が影響しなくなることがある。この欠点を解消するため、エラスティックネットでは、ラッソ回帰の正則化項にリッジ回帰の正則化項のペナルティ関数 ( ‖ β ‖ 2 {\displaystyle \|\beta \|^{2}} ) を新たに加えた形式となる。エラスティックネットにおける推定値は次のように定義する: β ^ ≡ argmin β ( ‖ y − X β ‖ 2 + λ 2 ‖ β ‖ 2 + λ 1 ‖ β ‖ 1 ) {\displaystyle {\hat {\beta }}\equiv {\underset {\beta }{\operatorname {argmin} }}(\|y-X\beta \|^{2}+\lambda _{2}\|\beta \|^{2}+\lambda _{1}\|\beta \|_{1})} 。 2次の正則化項の導入により損失関数は強凸性となり、損失関数の最小値は一意に決まる。エラスティックネットでは λ 1 = λ , λ 2 = 0 {\displaystyle \lambda _{1}=\lambda ,\lambda _{2}=0} または、 λ 1 = 0 , λ 2 = λ {\displaystyle \lambda _{1}=0,\lambda _{2}=\lambda } のとき、それぞれラッソ回帰とリッジ回帰として正則化することができる。一方、パラメータを適切に設定したエラスティックネットでの正規化は λ 2 {\displaystyle \lambda _{2}} を固定してリッジ回帰の正則化項の係数を決定してから、ラッソ回帰の正則化項の係数を決定する2段階の手順で推定量を求める。この推定方法では、推定量が約2倍の速さで収縮するため、バイアスが大きくなり、予測精度が悪くなる。予測精度を向上させるために、論文著者は推定係数を ( 1 + λ 2 ) {\displaystyle (1+\lambda _{2})} 倍することで、エラスティックネットの係数を再スケーリングしている。 エラスティックネットによる正則化が行われている例: サポートベクターマシン 距離学習 ポートフォリオ最適化 がん予測 2014年後半、エラスティックネットによる正則化で線形サポートベクターマシンの説明変数の削減が可能なことが証明された。 2014年内に、ラッソ回帰で同様の削減方法が証明された。 論文の著者達はエラスティックネットの各インスタンスについて線形サポートベクターマシン (SVM) の超平面解が（再スケーリング後の）解 β {\displaystyle \beta } と等しくなるような二項分類問題を任意に構築できることを示した。この削減法で、エラスティックネットは高度に最適化された SVM ソルバーを使用することができるようになった。また、大規模な SVM ソルバーでは高速処理を実現する GPU アクセラレーションを利用することも可能である。この削減法は、元のデータと正則化定数の単純な変換: X ∈ R n × p , y ∈ R n , λ 1 ≥ 0 , λ 2 ≥ 0 {\displaystyle X\in {\mathbb {R} }^{n\times p},y\in {\mathbb {R} }^{n},\lambda _{1}\geq 0,\lambda _{2}\geq 0} によって、二項分類問題と SVM 正則化定数を特定する新しいデータインスタンスと正則化定数に変換する: X 2 ∈ R 2 p × n , y 2 ∈ { − 1 , 1 } 2 p , C ≥ 0 {\displaystyle X_{2}\in {\mathbb {R} }^{2p\times n},y_{2}\in \{-1,1\}^{2p},C\geq 0} 。 ここで、 y 2 {\displaystyle y_{2}} は2値ラベル − 1 , 1 {\displaystyle {-1,1}} からなる。 2 p > n {\displaystyle 2p>n} のとき、一般的に線形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 のツールボックスとして実装されたソフトウェアである。これは周期的に正則化パスに沿って計算される座標降下法を用いて、ℓ1（ラッソ回帰）、ℓ2（リッジ回帰）を混合した正則化項（エラスティックネット）による一般化線形モデルの推定を行う高速アルゴリズムが実装されている。 JMP (ソフトウェア)（英語版）は、最適化モデルによる一般化回帰パーソナリティを使用したエラスティックネットを搭載している。 "pensim: Simulation of high-dimensional data and parallelized repeated penalized regression" では、ℓ パラメータの並列化 "2D" チューニングを実装し、予測精度の向上させることができる手法としてエラスティックネットが用いられている。 scikit-learn ではエラスティックネットによる線形回帰、ロジスティック回帰、線形サポートベクターマシンの正則化に対応している。 SVEN はサポートベクトルエラスティックネットによる正則化を MATLAB 上で実装したソフトウェアである。このソルバーは SVM による二項分類でエラスティックネットの正則化でのインスタンスを削減し、MATLAB の SVM ソルバーを使用して正則化後の解を求める。SVM は容易に並列化できるため、最新のハードウェア上では Glmnet より高速なコードが実現できる。 SpaSM はMatlab上でエラスティックネット正則化回帰を含むスパース線形回帰、分類、主成分分析を実装している。 Apache Spark は機械学習ライブラリMLlibでエラスティックネット回帰をサポートしている。この方法は一般化線形回帰クラスのパラメータとして利用することができる。 SAS (ソフトウェア)（英語版） SAS プロシージャーの Glmselectでは、モデル選択における正則化でエラスティックネットをサポートしている。 [脚注の使い方] ^ a b Zou, Hui; Hastie, Trevor (2005). “Regularization and Variable Selection via the Elastic Net”. Journal of the Royal Statistical Society, Series B 67 (2): 301–320. doi:10.1111/j.1467-9868.2005.00503.x.  ^ Wang, Li; Zhu, Ji; Zou, Hui (2006). “The doubly regularized support vector machine”. Statistica Sinica 16: 589–615. http://www.stat.lsa.umich.edu/~jizhu/pubs/Wang-Sinica06.pdf.  ^ Liu, Meizhu; Vemuri, Baba (2012). “A robust and efficient doubly regularized metric learning approach”. Proceedings of the 12th European Conference on Computer Vision. Lecture Notes in Computer Science Part IV: 646–659. doi:10.1007/978-3-642-33765-9_46. ISBN 978-3-642-33764-2. PMC 3761969. PMID 24013160. http://dl.acm.org/citation.cfm?id=2404791.  ^ Shen, Weiwei; Wang, Jun; Ma, Shiqian (2014). “Doubly Regularized Portfolio with Risk Minimization”. Proceedings of the Twenty-Eighth AAAI Conference on Artificial Intelligence: 1286–1292.  ^ Milanez-Almeida, Pedro; Martins, Andrew J.; Germain, Ronald N.; Tsang, John S. (2020-02-10). “Cancer prognosis with shallow tumor RNA sequencing” (英語). Nature Medicine 26 (2): 188–192. doi:10.1038/s41591-019-0729-3. ISSN 1546-170X. PMID 32042193. https://www.nature.com/articles/s41591-019-0729-3.  ^ Zhou, Quan; Chen, Wenlin; Song, Shiji; Gardner, Jacob; Weinberger, Kilian; Chen, Yixin. A Reduction of the Elastic Net to Support Vector Machines with an Application to GPU Computing. アメリカ人工知能学会. ^ Jaggi, Martin (2014). An Equivalence between the Lasso and Support Vector Machines. Chapman and Hall/CRC. arXiv:1303.1152  ^ “GTSVM”. uchicago.edu. 13 June 2022閲覧。 ^ Friedman, Jerome; Trevor Hastie; Rob Tibshirani (2010). “Regularization Paths for Generalized Linear Models via Coordinate Descent”. Journal of Statistical Software 33 (1): 1–22. doi:10.18637/jss.v033.i01. PMC 2929880. PMID 20808728. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2929880/.  ^ “CRAN - Package glmnet”. r-project.org. 13 June 2022閲覧。 ^ Waldron, L.; Pintilie, M.; Tsao, M. -S.; Shepherd, F. A.; Huttenhower, C.; Jurisica, I. (2011). “Optimized application of penalized regression methods to diverse genomic data”. Bioinformatics 27 (24): 3399–3406. doi:10.1093/bioinformatics/btr591. PMC 3232376. PMID 22156367. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3232376/.  ^ “CRAN - Package pensim”. r-project.org. 2022年6月13日閲覧。 ^ “mlcircus / SVEN — Bitbucket”. bitbucket.org. 13 June 2022閲覧。 ^ Sjöstrand, Karl; Clemmensen, Line; Einarsson, Gudmundur; Larsen, Rasmus; Ersbøll, Bjarne (2 February 2016). “SpaSM: A Matlab Toolbox for Sparse Statistical Modeling”. Journal of Statistical Software. http://www.imm.dtu.dk/projects/spasm/references/spasm.pdf.  ^ “pyspark.ml package — PySpark 1.6.1 documentation”. spark.apache.org. 2019年4月17日閲覧。 ^ “Proc Glmselect”. 2019年5月9日閲覧。 ヘイスティ, トレバー; ティブシラニ, ロバート; フリードマン, ジェローム (2017). “Shrinkage Methods”. 統計学習入門: データマイニング、推論と予測 (2nd ed.). ニューヨーク: シュプリンガー. pp. 61–79. ISBN 978-0-387-84857-0. https://web.stanford.edu/~hastie/Papers/ESLII.pdf#page=80  Regularization and Variable Selection via the Elastic Net (プレゼンテーション)