高度なトピック
\[ \newcommand{\R}{\mathbb{R}} \newcommand{\E}{\mathbb{E}} \newcommand{\x}{\mathbf{x}} \newcommand{\y}{\mathbf{y}} \newcommand{\wv}{\mathbf{w}} \newcommand{\av}{\mathbf{\alpha}} \newcommand{\bv}{\mathbf{b}} \newcommand{\N}{\mathbb{N}} \newcommand{\id}{\mathbf{I}} \newcommand{\ind}{\mathbf{1}} \newcommand{\0}{\mathbf{0}} \newcommand{\unit}{\mathbf{e}} \newcommand{\one}{\mathbf{1}} \newcommand{\zero}{\mathbf{0}} \]
線形法の最適化(開発者向け)
限定メモリBFGS(L-BFGS)
L-BFGSは、$\min_{\wv \in\R^d} \; f(\wv)$
の形式の最適化問題を解くための準ニュートン法ファミリーの最適化アルゴリズムです。L-BFGS法は、目的関数の2次偏導関数を評価してヘッセ行列を構築することなく、目的関数を局所的に2次関数として近似します。ヘッセ行列は、以前の勾配評価によって近似されるため、ニュートン法でヘッセ行列を明示的に計算する場合とは異なり、垂直方向のスケーラビリティの問題(トレーニング特徴の数)はありません。その結果、L-BFGSは他の1次最適化と比較して、より速い収束を達成することがよくあります。
Orthant-Wise Limited-memory Quasi-Newton (OWL-QN)は、L1およびエラスティックネット正則化を効果的に処理できるL-BFGSの拡張です。
L-BFGSは、LinearRegression、LogisticRegression、AFTSurvivalRegression、MultilayerPerceptronClassifierのソルバーとして使用されます。
MLlib L-BFGSソルバーは、breezeの対応する実装を呼び出します。
重み付き最小二乗法の正規方程式ソルバー
MLlibは、重み付き最小二乗法の正規方程式ソルバーをWeightedLeastSquaresによって実装します。
n個の重み付き観測値$(w_i, a_i, b_i)$が与えられた場合
- $w_i$ はi番目の観測値の重み
- $a_i$ はi番目の観測値の特徴ベクトル
- $b_i$ はi番目の観測値のラベル
各観測値の特徴の数は$m$です。次の重み付き最小二乗法を使用します。\[ \min_{\mathbf{x}}\frac{1}{2} \sum_{i=1}^n \frac{w_i(\mathbf{a}_i^T \mathbf{x} -b_i)^2}{\sum_{k=1}^n w_k} + \frac{\lambda}{\delta}\left[\frac{1}{2}(1 - \alpha)\sum_{j=1}^m(\sigma_j x_j)^2 + \alpha\sum_{j=1}^m |\sigma_j x_j|\right] \]
ここで、$\lambda$は正則化パラメータ、$\alpha$はエラスティックネット混合パラメータ、$\delta$はラベルの母集団標準偏差、$\sigma_j$はj番目の特徴列の母集団標準偏差です。
この目的関数は、解くために必要な統計情報を収集するためにデータに対する1回のパスのみを必要とします。$n \times m$のデータ行列の場合、これらの統計情報には$O(m^2)$のストレージしか必要としないため、$m$(特徴の数)が比較的小さい場合は、1台のマシンに保存できます。次に、直接コレスキー分解や反復最適化プログラムのようなローカルメソッドを使用して、1台のマシンで正規方程式を解くことができます。
Spark MLlibは現在、正規方程式に対して2種類のソルバーをサポートしています。コレスキー分解と準ニュートン法(L-BFGS/OWL-QN)です。コレスキー分解は、正定値共分散行列(つまり、データ行列の列が線形独立である必要がある)に依存しており、この条件が満たされない場合は失敗します。準ニュートン法は、共分散行列が正定値でない場合でも、妥当な解を提供できます。したがって、正規方程式ソルバーは、この場合に準ニュートン法にフォールバックすることもできます。このフォールバックは現在、LinearRegression
およびGeneralizedLinearRegression
推定量に対して常に有効になっています。
WeightedLeastSquares
は、L1、L2、およびエラスティックネット正則化をサポートし、正則化と標準化を有効または無効にするオプションを提供します。L1正則化が適用されていない場合(つまり、$\alpha = 0$の場合)、解析解が存在し、コレスキーソルバーまたは準ニュートンソルバーのいずれかを使用できます。$\alpha > 0$の場合、解析解は存在せず、代わりに準ニュートンソルバーを使用して係数を反復的に見つけます。
正規方程式のアプローチを効率的にするために、WeightedLeastSquares
では、特徴の数が4096以下である必要があります。より大きな問題の場合は、代わりにL-BFGSを使用してください。
反復再重み付け最小二乗法(IRLS)
MLlibは、反復再重み付け最小二乗法(IRLS)をIterativelyReweightedLeastSquaresによって実装します。これは、一般化線形モデル(GLM)の最尤推定値を求めたり、ロバスト回帰でM推定量を見つけたり、その他の最適化問題に使用できます。詳細については、Iteratively Reweighted Least Squares for Maximum Likelihood Estimation, and some Robust and Resistant Alternativesを参照してください。
次の手順で特定の最適化問題を反復的に解きます。
- 現在の解で目的関数を線形化し、対応する重みを更新します。
WeightedLeastSquares
によって重み付き最小二乗法(WLS)問題を解きます。- 収束するまで上記の手順を繰り返します。
各反復でWeightedLeastSquares
によって重み付き最小二乗法(WLS)問題を解くため、特徴の数も4096以下である必要があります。現在、IRLSはGeneralizedLinearRegressionのデフォルトソルバーとして使用されています。