私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
確率的最適化は機械学習の重要なコンポーネントであり、その中核となるのは確率的勾配降下アルゴリズム (SGD) です。この手法は、60 年以上前に初めて提案されて以来、広く使用されてきました。過去 8 年間にわたり、私たちは確率的最適化手法の分散削減技術という刺激的な新しい発展を目の当たりにしてきました。これらの分散削減手法 (VR 手法) は、トレーニング データの複数回の反復が可能なシナリオで良好に機能し、理論上も実際上も SGD よりも速い収束を示します。この速度の向上は、VR 手法への関心の高まりと、この分野での研究成果の急速な蓄積を浮き彫りにしています。この記事では、専門家以外の読者に情報を提供することを目的として、限られたデータセットの最適化のための VR 手法における重要な原則と大きな進歩について概説します。私たちは主に凸最適化環境に焦点を当てており、非凸関数の最小化の拡張に興味のある読者にリファレンスを提供します。
キーワード | 機械学習の最適化;
機械学習研究の分野では、モデルを巨大なデータセットにどのように適応させるかが基本的かつ重要な問題となります。たとえば、線形最小二乗モデルの典型的なケースを考えることができます。
x ∗ ∈ arg min x ∈ R d 1 n ∑ i = 1 n ( ai T x − bi ) 2 x^* in argmin_{x in mathbb{R}^d} frac{1}{n} sum_{i=1}^{n} (a_i^T x - b_i)^2バツ∗∈arグバツ∈Rd分ん1私=1∑ん(1つの私Tバツ−b私)2
このモデルでは、 ddd ベクトルで表されるパラメータ x ∈ R dx は mathbb{R}^d で表されます。バツ∈Rd 与えられた。その間、私たちは手元に んんん データポイント(特徴ベクトルを含む) ai ∈ R d a_i は mathbb{R}^d で表されます。1つの私∈Rd と目標値 bi ∈ R b_i は mathbb{R} で表されます。b私∈R 。モデルの適応プロセスでは、モデルの予測出力が適切になるようにこれらのパラメーターを調整します。 aiT x a_i^T x1つの私Tバツ 平均して目標値にできるだけ近づける ビビb私。
より広く言えば、損失関数を使用することもできます。 fi ( x ) f_i(x)ふ私(バツ) モデルの予測と ii私 データ ポイントがどの程度近いか:
x ∗ ∈ arg min x ∈ R df ( x ) : = 1 n ∑ i = 1 nfi ( x ) x^* in argmin_{x in mathbb{R}^d} f(x) := frac{1}{n} sum_{i=1}^{n} f_i(x)バツ∗∈arグバツ∈Rd分ふ(バツ):=ん1私=1∑んふ私(バツ)
損失関数 fi ( x ) f_i(x)ふ私(バツ) これが大きい場合は、モデルの予測がデータから大きく外れていることを示します。 fi ( x ) f_i(x)ふ私(バツ) ゼロに等しい場合、モデルはデータ ポイントに完全に適合します。関数 関数 f(x)ふ(バツ) データセット全体にわたるモデルの平均損失を反映します。
上記の形式 (2) のような問題は、線形最小二乗問題だけでなく、機械学習で研究される他の多くのモデルにも当てはまります。たとえば、ロジスティック回帰モデルでは次のことを解決します。
x ∗ ∈ arg min x ∈ R d 1 n ∑ i = 1 n log ( 1 + e − biai T x ) + λ 2 ‖ x ‖ 2 2 x^* in argmin_{x in mathbb{R}^d} frac{1}{n} sum_{i=1}^{n} log(1 + e^{-b_i a_i^T x}) + frac{lambda}{2} |x|_2^2バツ∗∈arグバツ∈Rd分ん1私=1∑ん見よグ(1+e−b私1つの私Tバツ)+2λ∥バツ∥22
ここで扱っているのは、 bi ∈ { − 1 , + 1 } b_i は {-1, +1} の範囲内にあるb私∈{−1,+1} バイナリ分類問題の場合、予測は以下に基づいて行われます。 aiT x a_i^T x1つの私Tバツ シンボル。正規化項も式に導入されています λ 2 ‖ x ‖ 2 2 frac{lambda}{2} |x|_2^22λ∥バツ∥22 データの過剰適合を避けるため、 ∠x ∠2 2 |x|_2^2∥バツ∥22 急行 xxバツ のユークリッドノルムの二乗。
ほとんどの教師あり学習モデルでは、トレーニング プロセスは、L1 正則化最小二乗法、サポート ベクター マシン (SVM)、主成分分析、条件付きランダム フィールド、ディープ ニューラル ネットワークなどを含む形式 (2) で表現できます。
現代の問題における主な課題は、データ ポイントの数です。 んんん おそらく非常に大きいでしょう。私たちはテラバイトの範囲をはるかに超えたデータセットを扱うことが多く、そのソースはインターネット、衛星、リモートセンサー、金融市場、科学実験など多岐にわたります。このような大規模なデータ セットを処理するための一般的なアプローチは、各反復でランダムに選択された少数のデータ ポイントのみを使用する確率的勾配降下法 (SGD) アルゴリズムを使用することです。さらに、最近では、従来の確率勾配法よりも収束速度が速い分散低減 (VR) 確率勾配法への関心が急激に高まっています。
図 1. マッシュルーム データセット [7]、勾配降下法 (GD)、加速勾配降下法 (AGD、[50] の加速 GD)、確率的勾配降下法 (SGD) および ADAM [30] 法に基づくロジスティック回帰問題について分散削減 (VR) 手法である SAG および SVRG との比較 (n = 8124、d = 112)。
勾配降下法 (GD) は、上記の問題 (2) を解決するために使用される古典的なアルゴリズムであり、その反復更新式は次のとおりです。
xk + 1 = xk − γ 1 n ∑ i = 1 n ∇ fi ( xk ) x_{k+1} = x_k - gamma frac{1}{n} sum_{i=1}^{n} nabla f_i(x_k)バツけ+1=バツけ−γん1私=1∑ん∇ふ私(バツけ)
ここ、 γガンマγ ゼロより大きい固定ステップ値です。GD アルゴリズムの各反復中に、各データ ポイントは次のようにする必要があります。 ii私 勾配を計算する ∇ fi ( xk ) は f_i(x_k) に等しい∇ふ私(バツけ)、つまり、GD にはすべてが必要です。 んんん データポイントの完全な走査を実行します。データセットのサイズが んんん 非常に大きくなると、GD アルゴリズムの各反復のコストが非常に高くなり、その適用が制限されます。
代わりに、Robbins と Monro によって最初に提案された確率的勾配降下法 (SGD) 法を考慮することができます。その反復更新式は次のとおりです。
xk + 1 = xk − γ ∇ fik ( xk ) x_{k+1} = x_k - γ となり、 f_{i_k}(x_k) となる。バツけ+1=バツけ−γ∇ふ私け(バツけ)
SGD アルゴリズムは、各反復でランダムに選択された 1 つのデータ ポイントの勾配のみを使用して機能します。 ∇ fik ( xk ) は f_{i_k}(x_k) となる。∇ふ私け(バツけ) 各反復のコストを削減します。図 1 では、最適化プロセスの初期段階で、SGD が GD (加速された GD メソッドを含む) よりも大幅な進歩を遂げていることがわかります。グラフは、最適化の進行状況をエポック単位で示します。エポックは、すべての要素の計算として定義されます。 んんん トレーニング サンプルの勾配の数。 GD アルゴリズムは各ラウンドで 1 回の反復を実行しますが、SGD アルゴリズムは各ラウンドで 1 回の反復を実行します。 んんん 繰り返し。SGD と GD を比較するための基礎としてラウンドを使用します。 んんん 非常に大きなケースでは、両方の方法の主なコストは勾配に集中します。 ∇ fi ( xk ) は f_i(x_k) に等しい∇ふ私(バツけ) 計算。
ランダムなインデックス付けを考えてみましょう いいね私け コレクションから { 1 , … , n } {1, ldots, n}{1,…,ん} 一様ランダム選択の場合、これは、すべての ii私、選ぶ ik = i i_k = i私け=私 確率 P [ ik = i ] P[i_k = i]ポ[私け=私] 等しい 1 n フラクタル{1}{n}ん1 。この場合、 ∇ fik ( xk ) は f_{i_k}(x_k) となる。∇ふ私け(バツけ) として ∇ f ( xk ) は f(x_k) に等しくなります。∇ふ(バツけ) 期待値の定義により、次のとおりであるため、 の推定量は不偏です。
E [ ∇ fik ( xk ) ∣ xk ] = 1 n ∑ i = 1 n ∇ fi ( xk ) = ∇ f ( xk ) ( 6 ) E[nabla f_{i_k}(x_k) | x_k] = frac{1}{n} sum_{i=1}^{n} ナブラ f_i(x_k) = ナブラ f(x_k) 四重極 (6)え[∇ふ私け(バツけ)∣バツけ]=ん1私=1∑ん∇ふ私(バツけ)=∇ふ(バツけ)(6)
SGD (確率的勾配降下法) 法は各反復での機能を保証するものではありませんが、 ffふ の値は減少しますが、平均して、下方向を表す負の完全な勾配に向かって移動します。
ただし、不偏勾配推定器があるだけでは、SGD 反復の収束を保証するには十分ではありません。この点を説明するために、図 2 (左) は、LIBSVM [7] によって提供される 4 つのカテゴリのデータセットに一定のステップ サイズを使用してロジスティック回帰関数を適用したときの SGD の反復軌跡を示しています。図中の同心円状の楕円は関数の輪郭、つまり関数値を表しています。 f ( x ) = cf( x ) = c である。ふ(バツ)=c 対応点 xxバツ 集める、 ccc は実数のセット内の特定の定数です。異なる定数値 ccc さまざまな楕円に対応します。
SGD の反復軌跡は最適解 (図の緑色のアスタリスクで示されている) には収束せず、最適解の周囲に点群を形成します。対照的に、図 2 に、後で紹介する同じ一定のステップ サイズを使用した、分散低減 (VR) 手法である確率的平均勾配 (SAG) の反復軌跡を示します。 この例で SGD が収束しない理由は、確率的勾配自体が 0 に収束しないためであり、したがって、一定ステップ SGD 法 (5) が停止することはありません。これは、自然に停止する勾配降下法 (GD) 法とは大きく対照的です。 xk x_kバツけ アプローチ x ∗ x^*バツ∗、勾配 ∇ f ( xk ) は f(x_k) に等しくなります。∇ふ(バツけ) ゼロになる傾向があります。
図 2. 固定ステップ SGD (左) および SAG (右) 反復法を使用した 2 次元ロジスティック回帰のレベル セット プロット。緑色のアスタリスクは x を示しますほどく。
による処理 ∇ fi ( xk ) は f_i(x_k) に等しい∇ふ私(バツけ) 値の分散によって引き起こされる非収束問題に対する古典的な手法がいくつかあります。たとえば、Robbins と Monro [64] は一連の減少ステップを使用します。 γk ガンマkγけ 分散問題を解決し、製品が γ k ∇ fik ( xk ) gamma_k は f_{i_k}(x_k) と等しい。γけ∇ふ私け(バツけ) ゼロに収束する可能性があります。ただし、アルゴリズムの停止が早すぎたり遅すぎたりしないように、この一連の減少ステップを調整するのは難しい問題です。
分散を減らすためのもう 1 つの古典的な手法は、複数の変数を使用することです。 ∇ fi ( xk ) は f_i(x_k) に等しい∇ふ私(バツけ) 平均して完全な勾配を取得する ∇ f ( x ) ナブラ f(x)∇ふ(バツ) より正確な見積もり。このアプローチはミニバッチと呼ばれ、複数の勾配を並行して評価できる場合に特に便利です。これにより、次の形式の反復が行われます。
xk + 1 = xk − γ 1 ∣ B k ∣ ∑ i ∈ B k ∇ fi ( xk ) ( 7 ) x_{k+1} = x_k - gamma frac{1}{|B_k|} sum_{i in B_k} nabla f_i(x_k) quad (7)バツけ+1=バツけ−γ∣Bけ∣1私∈Bけ∑∇ふ私(バツけ)(7)
で BkB_kBけ はランダムなインデックスセットであり、 ∣ B k ∣ |B_k|∣Bけ∣ 急行 BkB_kBけ サイズ。もし BkB_kBけ 置換を伴う均一なサンプリングの場合、この勾配推定値の分散は「バッチ サイズ」に関連します。 ∣ B k ∣ |B_k|∣Bけ∣ は反比例するため、バッチサイズを増やすことで分散を小さくできます。
ただし、このような反復のコストはバッチ サイズに比例するため、この形式の分散削減には計算コストの増加が伴います。
分散を削減し、SGD の経験的パフォーマンスを向上させるためのもう 1 つの一般的な戦略は、過去のステップで使用された方向に基づく追加の用語である「モメンタム」を追加することです。特に勢いのあるSGDの形は以下の通りです。
xk + 1 = xk − γ mk ( 9 ) x_{k+1} = x_k - ガンマ m_k 四重極 (9)バツけ+1=バツけ−γメートルけ(9)
ここで、運動量パラメータは βベータβ (0, 1) の範囲内にあります。最初の勢いなら m0 = 0 m_0 = 0メートル0=0、(8) で展開します。 えむえむメートルけ 更新情報については、 えむえむメートルけ は前の勾配の加重平均です。
mk = ∑ t = 0 k β k − t ∇ fit ( xt ) ( 10 ) m_k = sum_{t=0}^{k} beta^{kt} nabla f_{i_t}(x_t) quad (10)メートルけ=t=0∑けβけ−t∇ふ私t(バツt)(10)
したがって、 えむえむメートルけ 確率的勾配の加重和です。なぜなら ∑ t = 0 k β k − t = 1 − β k + 1 1 − β sum_{t=0}^{k} beta^{kt} = frac{1 - beta^{k+1}}{1 - beta}∑t=0けβけ−t=1−β1−βけ+1、変換できます 1 − β 1 − β kmk frac{1 - ベータ}{1 - ベータ^k} m_k1−βけ1−βメートルけ 確率的勾配の加重平均として考慮されます。これを完全な勾配の式と比較すると、 ∇ f ( xk ) = 1 n ∑ i = 1 n ∇ fi ( xk ) ナブラ f(x_k) = frac{1}{n} sum_{i=1}^{n} ナブラ f_i(x_k)∇ふ(バツけ)=ん1∑私=1ん∇ふ私(バツけ) 比較するには、 1 − β 1 − β kmk frac{1 - ベータ}{1 - ベータ^k} m_k1−βけ1−βメートルけ(同様に えむえむメートルけ ) は完全な勾配の推定値として解釈されます。この加重合計により分散は減少しますが、重要な問題も生じます。加重合計 (10) は最近サンプリングされた勾配により多くの重みを与えるため、完全な勾配には収束しません。 ∇ f ( xk ) は f(x_k) に等しくなります。∇ふ(バツけ) 、後者は単純な平均です。セクション II-A で説明する最初の分散削減方法は、加重平均の代わりに単純な平均を使用することでこの問題を解決します。
古典的な方法とは異なり、1 つまたは複数の方法を直接使用します。 ∇ fi ( xk ) は f_i(x_k) に等しい∇ふ私(バツけ) として ∇ f ( xk ) は f(x_k) に等しくなります。∇ふ(バツけ) 近似として、最新の分散削減 (VR) 手法では異なる戦略が採用されています。これらのメソッドでは、 ∇ fi ( xk ) は f_i(x_k) に等しい∇ふ私(バツけ) 勾配推定値を更新するには グクグクグけを作るのが目標です。 グクグクグけ アプローチ ∇ f ( xk ) は f(x_k) に等しくなります。∇ふ(バツけ) 。具体的には、 グクグクグけ 満足できる gk ≈ ∇ f ( xk ) g_k は f(x_k) に近似するグけ≈∇ふ(バツけ) 。このような勾配推定に基づいて、次の形式の近似勾配ステップを実行します。
xk + 1 = xk − γ gk ( 11 ) x_{k+1} = x_k - ガンマ g_k 四重項 (11)バツけ+1=バツけ−γグけ(11)
ここ γ > 0 ガンマ > 0γ>0 はステップ サイズ パラメータです。
一定のステップ サイズが使用されるようにするには γガンマγ 反復 (11) が収束できる場合、勾配推定値が次の値であることを確認する必要があります。 グクグクグけ 分散はゼロになる傾向があります。数学的には、これは次のように表現できます。
E [ ∇ gk − ∇ f ( xk ) ∇ 2 ] → 0 として k → ∞ ( 12 ) Eleft[ | g_k - nabla f(x_k) |^2 right] rightarrow 0 quad text{as } k rightarrow infty quad (12)え[∥グけ−∇ふ(バツけ)∥2]→0としてけ→∞(12)
ここでの期待 EEえ までのアルゴリズムに基づいています。 えーっけ すべての確率変数は反復計算されます。特性 (12) により、最適解に到達したときに VR メソッドを停止できることが保証されます。私たちはこのプロパティを VR アプローチの特徴的な機能とみなしているため、これを VR プロパティと呼びます。実際には分散はゼロになる傾向があるため、分散が「減少した」という表現は誤解を招く可能性があることに注意してください。特性 (12) は、理論 (適切な仮定の下) および実際 (図 1 に示すように) において VR 手法がより高速な収束を達成できるようにする重要な要素です。
簡単な改善方法では、ステップ サイズを減らすことなく SGD 再帰式 (5) を収束させることができます。具体的な方法は、減算です。 ∇ fi ( x ∗ ) は f_i(x^*) に等しい∇ふ私(バツ∗)、このメソッドは次のように定義されます。
xk + 1 = xk − γ ( ∇ fik ( xk ) − ∇ fik ( x ∗ ) ) ( 13 ) x_{k+1} = x_k - ガンマ (ナブラ f_{i_k}(x_k) - ナブラ f_{i_k}(x^*)) 四重項 (13)バツけ+1=バツけ−γ(∇ふ私け(バツけ)−∇ふ私け(バツ∗))(13)
この方法は SGD² と呼ばれます [22]。通常、すべてを確実に知ることはできませんが、 ∇ fi ( x ∗ ) は f_i(x^*) に等しい∇ふ私(バツ∗) , しかし、例として SGD² は、分散削減法の基本的な特性をよく示しています。さらに、多くの分散削減手法は SGD² 手法の近似形式とみなすことができます。これらの手法は既知の手法に依存しません。 ∇ fi ( x ∗ ) は f_i(x^*) に等しい∇ふ私(バツ∗)ですが、代わりに近似できる方法を使用します。 ∇ fi ( x ∗ ) は f_i(x^*) に等しい∇ふ私(バツ∗) 推定値。
SGD² は完全な勾配の不偏推定値を使用することに注意してください。なぜなら ∇ f ( x ∗ ) = 0 ナブラ f(x^*) = 0∇ふ(バツ∗)=0、F:
E [ ∇ fik ( xk ) − ∇ fik ( x ∗ ) ] = ∇ f ( xk ) − ∇ f ( x ∗ ) = ∇ f ( xk ) E[nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*)] = nabla f(x_k) - nabla f(x^*) = nabla f(x_k)え[∇ふ私け(バツけ)−∇ふ私け(バツ∗)]=∇ふ(バツけ)−∇ふ(バツ∗)=∇ふ(バツけ)
さらに、SGD² が最適解に達すると、自然に停止します。 ii私、持っている:
( ∇ fi ( x ) − ∇ fi ( x ∗ ) ) ∣ x = x ∗ = 0 (ナブラ f_i(x) - ナブラ f_i(x^*)) bigg|_{x=x^*} = 0(∇ふ私(バツ)−∇ふ私(バツ∗))
バツ=バツ∗=0
さらに観察すると、 xk x_kバツけ 近く x ∗ x^*バツ∗(連続の場合 ∇ fi nabla f_i∇ふ私)、SGD² は次の理由により分散削減特性 (12) を満たします。
E [ ∇ f ( xk ) ∇ 2 ] = E [ ∇ fik ( xk ) − ∇ fik ( x ∗ ) − ∇ f ( xk ) ∇ 2 ] ≤ E [ ∇ fik ( xk ) − ∇ fik ( x ∗ ) ∇ 2 ] Eleft[ | g_k - nabla f(x_k) |^2 right] = \Eleft[ | nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*) - nabla f(x_k) |^2 right] leq Eleft[ | nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*) |^2 right]え[∥グけ−∇ふ(バツけ)∥2]=え[∥∇ふ私け(バツけ)−∇ふ私け(バツ∗)−∇ふ(バツけ)∥2]≤え[∥∇ふ私け(バツけ)−∇ふ私け(バツ∗)∥2]
ここで補題 2 を使用します。 X = ∇ fik ( xk ) − ∇ fik ( x ∗ ) X = ナブラ f_{i_k}(x_k) - ナブラ f_{i_k}(x^*)バツ=∇ふ私け(バツけ)−∇ふ私け(バツ∗)を利用し、 E [ ∇ fik ( xk ) − ∇ fik ( x ∗ ) ] = ∇ f ( xk ) E[nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*)] = nabla f(x_k)え[∇ふ私け(バツけ)−∇ふ私け(バツ∗)]=∇ふ(バツけ) 自然。このプロパティは、SGD² が従来の SGD 手法よりも収束速度が速いことを示しています。これについては付録 B で説明します。
このセクションでは、分散削減 (VR) 法の分析に使用される 2 つの標準的な仮定を紹介し、これらの仮定の下で達成できる加速効果について、従来の SGD 法と比較して説明します。まず、勾配にはリプシッツ連続性があると仮定します。これは、勾配の変化率が有限であることを意味します。
関数は次のように仮定します。 ffふ微分可能であり、 LLら- スムーズに、すべての人に xxバツ そして ええええ そして誰か 0 < L < ∞ 0 < L < 無限大0<ら<∞,以下の条件があります。
∇ f ( x ) − ∇ f ( y ) ∇ ≤ L ∇ x − y ∇ ( 14 ) |ナブラ f(x) - ナブラ f(y)| leq L|x - y| quad (14)∥∇ふ(バツ)−∇ふ(ええ)∥≤ら∥バツ−ええ∥(14)
これは、すべての fi : R d → R fi: mathbb{R}^d 右矢印 mathbb{R}ふ私:Rd→R 微分可能です、 リー・リーら私- スムーズ、私たちは定義します L 最大 L_{テキスト{最大}}ら最大 のために 最大 {L 1 、 . 。 。 , L n } max{L_1, . 。 。 、L_n}最大{ら1,...,らん}。
これは一般に弱い仮定であると考えられていますが、後続の章では、滑らかでない問題に適した VR 手法について説明します。 2 回微分可能な一変量関数の場合、 LLら-滑らかさは次のように直感的に理解できます: 二次導関数が次のように仮定されることと等価です。 LLら 上限、つまり ∣ f ′ ′ ( x ) ∣ ≤ L |f''(x)| leq L∣ふ′′(バツ)∣≤ら すべてのために x ∈ R dx は mathbb{R}^d で表されます。バツ∈Rd 。複数の変数の 2 回微分可能な関数の場合、ヘッセ行列を仮定するのと同じです。 ∇ 2 f ( x ) ナブラ^2 f(x)∇2ふ(バツ) の特異値 LLら 上限。
私たちが考える 2 番目の仮説は、関数 (f) は次のとおりであるということです。 ミューμ- 凸が強い、つまり特定の場合に μ > 0 ミュー > 0μ>0、関数 x ↦ f ( x ) − μ 2 ∈ x ∈ 2 x は f(x) - frac{mu}{2}|x|^2 にマップされます。バツ↦ふ(バツ)−2μ∥バツ∥2 凸ですよ。さらに、それぞれについて、 i = 1 、 . 。 。 , ni = 1, . 。 。 、n私=1,...,ん, fi : R d → R fi: mathbb{R}^d 右矢印 mathbb{R}ふ私:Rd→R 凸ですよ。
これは強い仮定です。最小二乗問題では、各 (fi$ は凸ですが、全体の関数 (f) は計画行列内にのみ存在します) A : = [ a 1 , . . . , an ] A := [a_1, . . . , a_n]あ:=[1つの1,...,1つのん] 列ランクが完璧な場合のみ強凸です。 L2 正則化ロジスティック回帰問題は、正則化項の存在によりこの仮定を満たします。 μ ≥ λ ミュー geq ラムダμ≥λ。
これらの前提を満たす重要な問題のクラスは、次の形式の最適化問題です。
x ∗ ∈ arg min x ∈ R df ( x ) = 1 n ∑ i = 1 n ℓ i ( ai T x ) + λ 2 ∑ x ∈ 2 ( 15 ) x^* in argmin_{x in mathbb{R}^d} f(x) = frac{1}{n} sum_{i=1}^{n} ell_i(a_i^Tx) + frac{lambda}{2}|x|^2 quad (15)バツ∗∈arグバツ∈Rd分ふ(バツ)=ん1私=1∑んℓ私(1つの私Tバツ)+2λ∥バツ∥2(15)
それぞれの「損失」が関数になるところ ℓ i : R → R ell_i: mathbb{R} 右矢印 mathbb{R}ℓ私:R→R は 2 回微分可能であり、その 2 階導関数は ℓ i ′ ′ ell_i''ℓ私′′ 0 と何らかの上限に制限されます んんま 間。これには、最小二乗法、ロジスティック回帰、プロビット回帰、フーバーロバスト回帰など、機械学習における L2 正則化を使用したさまざまな損失関数が含まれます。この場合、全員にとって、 ii私、我々は持っています L i ≤ M ∈ ai ∈ 2 + λ L_i leq M|a_i|^2 + ラムダら私≤ま∥1つの私∥2+λ そして μ ≥ λ ミュー geq ラムダμ≥λ。
これらの仮定の下で、勾配降下法 (GD) 法の収束率は条件数によって決まります。 κ : = L / μ カッパ := L/μκ:=ら/μ 決める。条件番号は常に 1 以上であり、条件番号が 1 より大幅に大きい場合、関数の輪郭が非常に楕円になり、GD メソッドの反復が振動する原因になります。逆に、こんなときは κ カッパκ 1 に近い場合、GD 法の収束が速くなります。
仮定 1 および 2 の下では、VR 法は線形速度で収束します。ランダムメソッド ({f(x_k)}) の関数値は次のように与えられると言います。 0 < ρ ≤ 1 0 < rho leq 10<ρ≤1 定数が存在する場合の線形収束率 (予想内) 0 0 0C>0 作るもの:
E [ f ( xk ) ] − f ( x ∗ ) ≤ ( 1 − ρ ) k C = O ( exp ( − k ρ ) ) ∀ k ( 16 ) E[f(x_k)] - f(x^*) leq (1 - rho)^k C = O(exp(-krho)) quad 全ての k quad (16)え[ふ(バツけ)]−ふ(バツ∗)≤(1−ρ)けC=お(経験(−けρ))∀け(16)
これは、各反復での勾配の不偏推定値のみに依存する古典的な SGD 手法とは対照的であり、次の仮定の下で準線形レートのみを取得します。
E [ f ( xk ) ] − f ( x ∗ ) ≤ O ( 1 / k ) E[f(x_k)] - f(x^*) leq O(1/k)え[ふ(バツけ)]−ふ(バツ∗)≤お(1/け)
この不等式を満たす最小値 えーっけ これは、アルゴリズムの反復複雑度と呼ばれます。以下は、GD、SGD、および VR メソッドの基本的なバリアントの反復の複雑さと 1 回の反復のコストです。
アルゴリズム | 反復回数 | 反復のコスト |
---|---|---|
グッドデイ | O ( κ log ( 1 / ϵ ) ) O(カッパ log(1/イプシロン))お(κ見よグ(1/ϵ)) | O(n) は、お(ん) |
シンガポールドル | O ( κ 最大 最大 ( 1 / ϵ ) ) O(kappa_{text{max}} 最大(1/イプシロン))お(κ最大最大(1/ϵ)) | オー(1)オー(1)お(1) |
バーチャルリアリティ | O ( ( κ 最大 + n ) log ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))お((κ最大+ん)見よグ(1/ϵ)) | オー(1)オー(1)お(1) |
アルゴリズムの合計実行時間は、反復の複雑さと反復の実行時間の積によって決まります。ここで使われている κ 最大 : = 最大 i L i / μ kappa_{text{max}} := max_i L_i/muκ最大:=最大私ら私/μ 。知らせ κ max ≥ κ kappa_{text{max}} geq kappaκ最大≥κ; したがって、GD の反復の複雑さは VR 法の反復の複雑さよりも小さくなります。
ただし、GD の反復あたりのコストは VR 法のコストであるため、 んんん 合計実行時間の点では VR 方式の方が優れています。
古典的な SGD 手法の利点は、実行時間と収束率が依存しないことです。 んんん、しかし許容範囲はあります ϵ イプシロンϵ の依存性はさらに悪化しており、これが許容値が小さい場合の SGD のパフォーマンスの低下を説明しています。
付録 B では、SGD² メソッドの反復複雑さが VR メソッドと同じであることを示す簡単な証明を提供します。
分散低減 (VR) 手法の開発はいくつかの段階を経て、最初のバッチの手法では収束率が大幅に向上しました。この一連の手法の始まりは SAG アルゴリズムです。その後、確率的双対座標上昇 (SDCA) アルゴリズム、MISO アルゴリズム、確率的分散減少勾配 (SVRG/S2GD) アルゴリズム、SAGA (「改良された」SAG の意味) アルゴリズムが次々と登場しました。
この章では、これらの先駆的な VR 手法について詳しく説明します。第 4 章では、特定のアプリケーション シナリオでこれらの基本的な方法と比較して優れた特性を示すいくつかの新しい方法を検討します。
最初の分散低減 (VR) 法の探索は、完全な勾配構造の模倣から始まります。完全な勾配なので ∇ f ( x ) ナブラ f(x)∇ふ(バツ) すべてであります ∇ fi ( x ) は f_i(x) となる∇ふ私(バツ) 勾配の単純な平均、その後の完全な勾配の推定値 グクグクグけ これは、これらの勾配推定値の平均でもあります。このアイデアから、最初の VR 手法である確率的平均勾配 (SAG) 手法が生まれました。
SAG 法 [37]、[65] は、初期増分集約勾配 (IAG) 法 [4] のランダム化バージョンです。 SAG の中心的な考え方は、各データ ポイントに対して ii私 見積もりを維持する vik ≈ ∇ fi ( xk ) v_{ik} は f_i(x_k) に近似するヴいいね≈∇ふ私(バツけ) 。次に、これらを使用します ヴィック v_{ik}ヴいいね 値の平均は、完全な勾配の推定値として使用されます。つまり、次のようになります。
g ˉ k = 1 n ∑ j = 1 nvjk ≈ 1 n ∑ j = 1 n ∇ fj ( xk ) = ∇ f ( xk ) ( 18 ) bar{g}_k = frac{1}{n} sum_{j=1}^{n} v_{jk} approx frac{1}{n} sum_{j=1}^{n} nabla f_j(x_k) = nabla f(x_k) quad (18)グˉけ=ん1じゅう=1∑んヴ冗談≈ん1じゅう=1∑ん∇ふじゅう(バツけ)=∇ふ(バツけ)(18)
SAG の各反復で、セットから { 1 , … , n } {1, ldots, n}{1,…,ん} からインデックスを抽出します いいね私け、次のルールに従って更新されます vjk v_{jk}ヴ冗談:
vjkk + 1 = { ∇ fik ( xk ) 、 j = ikvjkk 、 j ≠ ik の場合 ( 19 ) v_{jk}^{k+1} ={∇ふ私け(バツけ),もしじゅう=私けヴけじゅうけ,もしじゅう≠私け クワッド (19)ヴ冗談け+1={∇ふ私け(バツけ),ヴ冗談け,もしじゅう=私けもしじゅう=私け(19)
その中でもそれぞれ、 v 0 i v_{0i}ヴ0私 ゼロまたは ∇ fi ( x 0 ) は f_i(x_0) に等しくなります。∇ふ私(バツ0) おおよその値。解決策を使って x ∗ x^*バツ∗ それぞれの近似値 ヴィック v_{ik}ヴいいね 徐々に~に収束していきます ∇ fi ( x ∗ ) は f_i(x^*) に等しい∇ふ私(バツ∗)、それによりVR特性(12)を満たす。
SAG を効率的に実装するには、計算に注意を払う必要があります。 g ˉ k バー{g}_kグˉけ 毎回合計を最初から始めるのを避けるため んんん ベクトル、これは んんん 大きいと値段も高くなります。幸いなことに、各反復には 1 つしかないため、 ヴィック v_{ik}ヴいいね 条件は変更されるため、毎回合計額を再計算する必要はありません。具体的には、反復中に次のように仮定します。 えーっけ から抽出されたインデックス いいね私け、すると次のようになります。
g ˉ k = 1 n ∑ j = 1 j ≠ iknvjk + 1 nvikk = g ˉ k − 1 − 1 nvikk − 1 + 1 nvikk ( 20 ) bar{g}_k = frac{1}{n} sum_{substack{j=1 \ j neq i_k}}^{n} v_{jk} + frac{1}{n} v_{i_k}^k = bar{g}_{k-1} - frac{1}{n} v_{i_k}^{k-1} + frac{1}{n} v_{i_k}^k quad (20)グˉけ=ん1じゅう=1じゅう=私け∑んヴ冗談+ん1ヴ私けけ=グˉけ−1−ん1ヴ私けけ−1+ん1ヴ私けけ(20)
それに加えて ヴィク v_{i_k}ヴ私け 以外のすべて vjk v_{jk}ヴ冗談 値はすべて同じままで、それぞれを保存するだけです じゅうじゅう に対応するベクトル vj v_jヴじゅう 。アルゴリズム 1 は、SAG メソッドの具体的な実装を示しています。
SAG は線形収束を達成する最初の確率的手法であり、その反復複雑さは次のとおりです。 O ( ( κ 最大 + n ) log ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))お((κ最大+ん)見よグ(1/ϵ))、ステップ サイズを使用して γ = O ( 1 / L 最大 ) ガンマ = O(1/L_{text{max}})γ=お(1/ら最大) 。この線形収束は図 1 で観察できます。注目に値するのは、 L 最大 L_{テキスト{最大}}ら最大-あらゆる用途に対応したスムーズな機能 L ′ ≥ L 最大 L' が L_{text{max}} であるら′≥ら最大 あまりにも L ′ L'ら′- スムーズな SAG メソッドは、実際には調整が難しい一連のステップ サイズの減少でのみ線形未満の収束速度を達成する古典的な SGD メソッドとは対照的に、十分に小さいステップ サイズで線形収束速度を達成します。
当時、SAG の線形収束は、各反復で確率的勾配を 1 つだけ計算する (単一のデータ ポイントを処理する) だけであったため、大きな進歩でした。ただし、Schmidt et al. [65] によって提供された収束証明は非常に複雑で、コンピューターで検証された手順に依存しています。 SAG の分析が難しい主な理由は次のとおりです。 グクグクグけ は勾配の偏った推定値です。
次に、共変量の概念を利用して、同様のパフォーマンスを持ちながら分析が容易な SAG 法の偏りのないバリアントを作成する SAG のバリアントである SAGA メソッドを紹介します。
アルゴリズム 1: SAG 法
減少した基本的な不偏勾配推定値 ∇ fik ( xk ) は f_{i_k}(x_k) となる。∇ふ私け(バツけ) 分散アプローチは、いわゆる共変量、または制御変数を使用します。のために i = 1、…、ni = 1、ldots、n私=1,…,ん、設定 vi ∈ R d v_i は mathbb{R}^d で表されます。ヴ私∈Rd ベクトルです。これらのベクトルを使用して、完全な勾配を変換できます。 ∇ f ( x ) ナブラ f(x)∇ふ(バツ) 次のように書き換えられます。
∇ f ( x ) = 1 n ∑ i = 1 n ( ∇ fi ( x ) − vi + vi ) = 1 n ∑ i = 1 n ∇ fi ( x ) − vi + 1 n ∑ j = 1 nvj ナブラ f(x) = frac{1}{n} sum_{i=1}^{n}(ナブラ f_i(x) - v_i + v_i) = frac{1}{n} sum_{i=1}^{n} ナブラ f_i(x) - v_i + frac{1}{n} sum_{j=1}^{n} v_j∇ふ(バツ)=ん1私=1∑ん(∇ふ私(バツ)−ヴ私+ヴ私)=ん1私=1∑ん∇ふ私(バツ)−ヴ私+ん1じゅう=1∑んヴじゅう
: = 1 n ∑ i = 1 n ∇ fi ( x , v ) ( 21 ) := frac{1}{n} sum_{i=1}^{n} nabla f_i(x, v) quad (21):=ん1私=1∑ん∇ふ私(バツ,ヴ)(21)
定義するもの ∇ fi ( x , v ) : = ∇ fi ( x ) − vi + 1 n ∑ j = 1 nvj nabla f_i(x, v) := nabla f_i(x) - v_i + frac{1}{n} sum_{j=1}^{n} v_j∇ふ私(バツ,ヴ):=∇ふ私(バツ)−ヴ私+ん1∑じゅう=1んヴじゅう 。これで、ランダムにサンプリングできるようになりました。 ∇ fi ( x , v ) は f_i(x, v) となる。∇ふ私(バツ,ヴ) 完全なグラデーションを構築するには ∇ f ( x ) ナブラ f(x)∇ふ(バツ) ~の不偏推定値 i ∈ { 1 , … , n } i は {1, ldots, n} の範囲内である私∈{1,…,ん}、SGD メソッドを適用し、勾配推定を使用できます。
gk = ∇ fik ( xk , v ) = ∇ fik ( xk ) − vik + 1 n ∑ j = 1 nvj ( 22 ) g_k = nabla f_{i_k}(x_k, v) = nabla f_{i_k}(x_k) - v_{i_k} + frac{1}{n} sum_{j=1}^{n} v_j quad (22)グけ=∇ふ私け(バツけ,ヴ)=∇ふ私け(バツけ)−ヴ私け+ん1じゅう=1∑んヴじゅう(22)
観察用 ヴィ ヴィヴ私 選択ペアの違い グクグクグけ 影響を与えることができます gk = ∇ fik ( xk , v ) g_k = ナブラ f_{i_k}(x_k, v)グけ=∇ふ私け(バツけ,ヴ) 代用して使用してください E i ∼ 1 n [ vi ] = 1 n ∑ j = 1 nvj E_i sim frac{1}{n}[v_i] = frac{1}{n} sum_{j=1}^{n} v_jえ私∼ん1[ヴ私]=ん1∑じゅう=1んヴじゅう 期待値を計算すると、次のようになります。
E [ ∇ fi ( xk ) − vi + E i ∼ 1 n [ vi − ∇ fi ( xk ) ] ∇ 2 ] ≤ E [ ∇ fi ( xk ) − vi ∇ 2 ] ( 23 ) E left[ |nabla f_i(x_k) - v_i + E_i sim frac{1}{n}[v_i - nabla f_i(x_k)]|^2 right] leq E left[ |nabla f_i(x_k) - v_i|^2 right] quad (23)え[∥∇ふ私(バツけ)−ヴ私+え私∼ん1[ヴ私−∇ふ私(バツけ)]∥2]≤え[∥∇ふ私(バツけ)−ヴ私∥2](23)
ここでは補助定理 2 が使用されます。 X = ∇ fi ( xk ) − vi X = ナブラ f_i(x_k) - v_iバツ=∇ふ私(バツけ)−ヴ私 。この境界 (23) は、次のことを示しています。 ヴィ ヴィヴ私 とともに えーっけ 増加は近いです ∇ fi ( xk ) は f_i(x_k) に等しい∇ふ私(バツけ) 、VR 属性 (12) を取得できます。だからこそ私たちはそう呼んでいます ヴィ ヴィヴ私 は共変量であり、分散を減らすためにそれらを選択できます。
たとえば、このアプローチは SGD² メソッド (13) によっても実装されます。 vi = ∇ fi ( x ∗ ) v_i = ナブラ f_i(x^*)ヴ私=∇ふ私(バツ∗) 。ただし、これは実際にはよくわからないため、実際にはあまり使用されません。 ∇ fi ( x ∗ ) は f_i(x^*) に等しい∇ふ私(バツ∗) 。より現実的なオプションは、 ヴィ ヴィヴ私 みなさんご存じのとおり x ˉ i ∈ R d bar{x}_i は mathbb{R}^d に含まれるバツˉ私∈Rd 近くの勾配 ∇ fi ( x ˉ i ) は f_i(bar{x}_i) に等しくなります。∇ふ私(バツˉ私) 。 機能ごとのSAGA フィ フィふ私 基準点を使用する x ˉ i ∈ R d bar{x}_i は mathbb{R}^d に含まれるバツˉ私∈Rd、共変量を使用します vi = ∇ fi ( x ˉ i ) v_i = ナブラ f_i(bar{x}_i)ヴ私=∇ふ私(バツˉ私)、それぞれ x ˉ i バー{x}_iバツˉ私 私たちの最後の評価になります フィ フィふ私 ポイント。これらの共変量を使用すると、(22) に従って勾配推定値を構築でき、次のようになります。
gk = ∇ fik ( xk ) − ∇ fik ( xˉ ik ) + 1 n ∑ j = 1 n ∇ fj ( xˉ j ) ( 24 ) g_k = nabla f_{i_k}(x_k) - nabla f_{i_k}(bar{x}_{i_k}) + frac{1}{n} sum_{j=1}^{n} nabla f_j(bar{x}_j) quad (24)グけ=∇ふ私け(バツけ)−∇ふ私け(バツˉ私け)+ん1じゅう=1∑ん∇ふじゅう(バツˉじゅう)(24)
SAGA を実装するには、勾配を保存できます。 ∇ fi ( x ˉ i ) は f_i(bar{x}_i) に等しくなります。∇ふ私(バツˉ私) の代わりに んんん 基準点 x ˉ i バー{x}_iバツˉ私 。つまり、次のように仮定します vj = ∇ fj ( x ˉ j ) v_j = ナブラ f_j(bar{x}_j)ヴじゅう=∇ふじゅう(バツˉじゅう) のために j ∈ { 1 , … , n } j は {1, ldots, n} に属するじゅう∈{1,…,ん}、各反復で、SAG のような確率的勾配を更新します。 vj v_jヴじゅう。
アルゴリズム 2 サーガ
SAGA メソッドの反復複雑さは SAG と同じです O ( ( κ 最大 + n ) log ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))お((κ最大+ん)見よグ(1/ϵ))、ステップ サイズを使用して γ = O ( 1 / L 最大 ) ガンマ = O(1/L_{text{max}})γ=お(1/ら最大) 、しかし証明はもっと簡単です。ただし、SAG と同様に、SAGA メソッドにはストレージが必要です んんん 補助ベクトル vi ∈ R d v_i は mathbb{R}^d で表されます。ヴ私∈Rd のために i = 1、…、ni = 1、ldots、n私=1,…,ん、つまり必要性を意味します O ( nd ) O(nd)お(んd) 収納スペースの。いつ ddd そして んんん 両方が大きい場合、これは実現できない可能性があります。次のセクションでは、正則化線形モデルなどの一般的なモデルでこのメモリ要件を削減する方法について詳しく説明します。
できるとき んんん 2 つの補助ベクトルがメモリに格納されている場合、SAG と SAGA は同様に動作する傾向があります。このメモリ要件が高すぎる場合は、次のセクションで説明する SVRG 方式が良い代替手段となります。 SVRG 手法は同じ収束率を達成し、多くの場合、実際にはほぼ同じ速度ですが、必要なのは O ( d ) O(d)お(d) 一般的な問題については、メモリの不足。
SAGA メソッドが出現する前、初期の研究の一部では、SAG メソッドに必要な高メモリ問題を解決するために初めて共変量が導入されました。これらの研究は固定された基準点に基づいて行われます x ˉ ∈ R d bar{x} は mathbb{R}^d に含まれるバツˉ∈Rd 共変量、その時点での完全な勾配を計算しました ∇ f ( x ˉ ) ナブラ f(bar{x})∇ふ(バツˉ) 。基準点を保存することにより x ˉ バー{x}バツˉ および対応する完全な勾配 ∇ f ( x ˉ ) ナブラ f(bar{x})∇ふ(バツˉ)、それぞれを保存せずにこれを行うことができます ∇ fj ( x ˉ ) は f_j(bar{x}) に等しくなります。∇ふじゅう(バツˉ) 場合に備えて、使用してください x ˉ j = x ˉ バー{x}_j = バー{x}バツˉじゅう=バツˉ みんなに じゅうじゅう update(24)を実装します。具体的には、これらのベクトルを保存する代わりに、各反復で保存された参照点を利用します。 x ˉ バー{x}バツˉ 計算する ∇ fik ( x ˉ ) は f_{i_k}(bar{x}) に反比例する。∇ふ私け(バツˉ) 。この手法は当初、異なる著者によって異なる名前で提案されましたが、後に [28] および [84] の命名法に従って SVRG 手法として統一されました。
アルゴリズム 3 で SVRG メソッドを形式化します。
(23) を使用して、勾配推定値を導き出すことができます。 グクグクグけ の分散には限界があります。
E [ ∇ f ( xk ) ∇ 2 ] ≤ E [ ∇ fi ( xk ) − ∇ fi ( xˉ ) ∇ 2 ] ≤ L max 2 ∇ xk − xˉ ∇ 2 Eleft[ | g_k - nabla f(x_k) |^2 right] leq Eleft[ | nabla f_i(x_k) - nabla f_i(bar{x}) |^2 right] leq L_{text{max}}^2 | x_k - bar{x} |^2え[∥グけ−∇ふ(バツけ)∥2]≤え[∥∇ふ私(バツけ)−∇ふ私(バツˉ)∥2]≤ら最大2∥バツけ−バツˉ∥2
ここで、2 番目の不等式はそれぞれを使用します。 フィ フィふ私 の リー・リーら私-滑らかさ。
注目すべき基準点は、 x ˉ バー{x}バツˉ 現在地に近づくほど xk x_kバツけ、勾配推定の分散が小さくなります。
SVRG 手法を効果的にするには、参照点を頻繁に更新する必要があります。 x ˉ バー{x}バツˉ (したがって、完全な勾配の計算が必要になります) は、分散の減少による利点と比較検討されます。このため、私たち一人ひとりが、 ttt 反復ごとに基準点を更新して、基準点を次の値に近づけます。 xk x_kバツけ (アルゴリズム II-C の 11 行目を参照)。つまり、SVRG メソッドには 2 つのループが含まれています。 sss、参照勾配が計算されます。 ∇ f ( x ˉ s − 1 ) ナブラ f(bar{x}_{s-1})∇ふ(バツˉs−1)(行 4)、および参照点が固定され、内部反復が確率的勾配ステップに基づいて更新される内部ループ (22) xk x_kバツけ(10行目)。
SAG や SAGA とは異なり、SVRG に必要なのは O ( d ) O(d)お(d) 記憶の。 SVRG の欠点は次のとおりです。 1) 追加のパラメーターがあります。 ttt、つまり、内側のループの長さを調整する必要があります。 2) 反復ごとに 2 つの勾配を計算する必要があり、基準点が変更されるたびに完全な勾配を計算する必要があります。
Johnson と Zhang [28] は、SVRG には反復的な複雑性があることを示しました。 O ( ( κ 最大 + n ) log ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))お((κ最大+ん)見よグ(1/ϵ)) 、SAG と SAGA に似ています。これは仮説内のループの数です。 ttt コレクションから { 1 , … , m } {1, ldots, m}{1,…,メートル} 均一サンプリングの条件で得られます。 L 最大 L_{テキスト{最大}}ら最大, ミューμ、 刻み幅 γガンマγ そして ttt それらの間で特定の依存関係を満たす必要があります。実際に使用すると、 γ = O ( 1 / L 最大 ) ガンマ = O(1/L_{text{max}})γ=お(1/ら最大) と内側のループの長さ t = nt = nt=ん, SVRG はパフォーマンスが良い傾向にあり、これはまさに図 1 で使用した設定です。
現在、元の SVRG メソッドには多くのバリエーションがあります。たとえば、いくつかのバリエーションでは、 ttt 代替ディストリビューション [32]、いくつかのバリアントでは次の形式が可能です O ( 1 / L 最大 ) O(1/L_{text{max}})お(1/ら最大) ステップサイズ[27]、[33]、[35]。を使用したいくつかのバリエーションもあります ∇ f ( x ˉ ) ナブラ f(bar{x})∇ふ(バツˉ) ミニバッチ近似を使用して、これらの完全な勾配評価のコストを削減し、ミニバッチ サイズを増やして VR プロパティを維持します。[54] に従って、内側のループで更新が繰り返されるバリアントもいくつかあります。 グクグクグけ:
[ g_k = ナブラ f_{i_k}(x_k) - ナブラ f_{i_k}(x_{k-1}) + g_{k-1} 四辺形 (25) ]
これにより、より局所的な近似が得られます。セクション IV で簡単に説明するように、この連続更新バリアント (25) を使用すると、非凸関数を最小限に抑える上で独自の利点が得られます。最後に、SVRG は次のことを利用できることに注意してください。 ∇ f ( x ˉ s ) ナブラ f(bar{x}_s)∇ふ(バツˉs) アルゴリズムをいつ終了するかを決定するのに役立つ値。
アルゴリズム3 SVRG法
SAG 手法と SVRG 手法の欠点の 1 つは、それらのステップ サイズが、問題によっては未知の可能性がある未知の値に依存していることです。 L 最大 L_{テキスト{最大}}ら最大 。 SVRG が登場する前、初期の VR 手法の 1 つである SDCA 手法 [70] は、座標降下法の研究を有限和問題に拡張しました。 SDCA とその変形の背後にある考え方は、勾配の座標が自然な分散を低減する勾配推定値を提供するというものです。具体的に考えてみると、 j ∈ { 1 , … , d } j は {1, ldots, d} の範囲内にあるじゅう∈{1,…,d}、定義します ∇ jf ( x ) : = ( ∂ f ( x ) ∂ xj ) ej nabla_j f(x) := left( frac{partial f(x)}{partial x_j} right) e_j∇じゅうふ(バツ):=(∂バツじゅう∂ふ(バツ))eじゅう (f(x)) の 3 番目です じゅうじゅう 座標方向の導関数、ここで ej ∈ R d e_j は mathbb{R}^d で表されます。eじゅう∈Rd それは最初です じゅうじゅう 単位ベクトル。座標導関数の重要な特性は次のとおりです。 ∇ jf ( x ∗ ) = 0 nabla_j f(x^*) = 0∇じゅうふ(バツ∗)=0、私たちは知っているので ∇ f ( x ∗ ) = 0 ナブラ f(x^*) = 0∇ふ(バツ∗)=0 。各データポイントでのこれの導関数 ∇ fj ナブラ f_j∇ふじゅう 違います、後者は x ∗ x^*バツ∗ ゼロではないかもしれない。したがって、次のようになります。
∇ f ( x ) − ∇ jf ( x ) ∇ 2 → 0 当 x → x ∗ ( 26 ) | nabla f(x) - nabla_j f(x) |^2 rightarrow 0 quad text{当} quad x rightarrow x^* quad (26)∥∇ふ(バツ)−∇じゅうふ(バツ)∥2→0いつバツ→バツ∗(26)
これは、座標導関数が分散低減特性 (12) を満たすことを意味します。さらに、次のこともできます。 ∇ jf ( x ) ナブラ_j f(x)∇じゅうふ(バツ) 構築する ∇ f ( x ) ナブラ f(x)∇ふ(バツ) の不偏推定値。たとえば、次のように仮定します。 じゅうじゅう コレクションからです { 1 、 … 、 d } {1、 ldots、 d}{1,…,d} で一様にランダムに選択されたインデックス。したがって、どのような場合でも、 i ∈ { 1 , … , d } i は {1, ldots, d} の範囲内である私∈{1,…,d}、我々は持っています P [ j = i ] = 1 d P[j = i] = frac{1}{d}ポ[じゅう=私]=d1 。したがって、 d × ∇ jf ( x ) d倍nabla_j f(x)d×∇じゅうふ(バツ) はい ∇ f ( x ) ナブラ f(x)∇ふ(バツ) 以下の理由による不偏推定:
E [ d ∇ jf ( x ) ] = d ∑ i = 1 d P [ j = i ] ∂ f ( x ) ∂ xiei = ∑ i = 1 d ∂ f ( x ) ∂ xiei = ∇ f ( x ) Eleft[ d nabla_j f(x) right] = d sum_{i=1}^{d} P[j = i] frac{partial f(x)}{partial x_i} e_i = sum_{i=1}^{d} frac{partial f(x)}{partial x_i} e_i = nabla f(x)え[d∇じゅうふ(バツ)]=d私=1∑dポ[じゅう=私]∂バツ私∂ふ(バツ)e私=私=1∑d∂バツ私∂ふ(バツ)e私=∇ふ(バツ)
したがって、 ∇ jf ( x ) ナブラ_j f(x)∇じゅうふ(バツ) 共変量を使用する必要がなく、完全な勾配を推定する VR に期待される理想的な特性をすべて備えています。この座標勾配を使用する場合の 1 つの欠点は、和の問題 (2) の計算コストが高くつくことです。これは計算だからです ∇ jf ( x ) ナブラ_j f(x)∇じゅうふ(バツ) データセット全体を走査する必要があるため、 ∇ jf ( x ) = 1 n ∑ i = 1 n ∇ jfi ( x ) nabla_j f(x) = frac{1}{n} sum_{i=1}^{n} nabla_j f_i(x)∇じゅうふ(バツ)=ん1∑私=1ん∇じゅうふ私(バツ) 。したがって、座標導関数の使用は、和の問題の構造と互換性がないように見えます。ただし、多くの場合、元の問題 (2) をいわゆる双対定式化に書き直すことができ、座標導関数が固有の構造を利用できます。
たとえば、L2 正則化線形モデル (15) の双対公式は次のとおりです。
v ∗ ∈ arg max v ∈ R n 1 n ∑ i = 1 n − ℓ i ∗ ( − vi ) − λ 2 ∑ i = 1 nviai ∑ ( 27 ) v^* in argmax_{v in mathbb{R}^n} frac{1}{n} sum_{i=1}^{n} -ell_i^*(-v_i) - frac{lambda}{2} left| frac{1}{lambda} sum_{i=1}^{n} v_i a_i right|^2 quad (27)ヴ∗∈arグヴ∈Rん最大ん1私=1∑ん−ℓ私∗(−ヴ私)−2λ
λ1私=1∑んヴ私1つの私
2(27)
で ℓ i ∗ ( v ) ell_i^*(v)ℓ私∗(ヴ) はい ℓ i ell_iℓ私 凸共役。マッピングを使用できます x = 1 λ ∑ i = 1 nviaix = frac{1}{lambda} sum_{i=1}^{n} v_i a_iバツ=λ1∑私=1んヴ私1つの私 元の問題を復元する (15) xxバツ 変数。解決します v∗v^*ヴ∗ 上記のマッピングの右側に代入すると、(15) の解が得られます。 x ∗ x^*バツ∗。
この二重問題には次の点があることに注意してください。 んんん 実数変数 vi ∈ R v_i は mathbb{R} で表されます。ヴ私∈R 、トレーニング サンプルごとに 1 つに対応します。さらに、それぞれの二重損失関数 ℓ i ∗ ell_i^*ℓ私∗ のみ ヴィ ヴィヴ私 関数。つまり、損失関数の最初の項は座標的に分離可能です。この座標の分離可能性と第 2 項の単純な形式を組み合わせることで、座標上昇法を効率的に実装することができます。実際、Shalev-Shwartz と Zhang は、この問題の座標上昇には SAG、SAGA、SVRG と同様の反復的な複雑さがあることを示しました。 O ( ( κ 最大 + n ) log ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))お((κ最大+ん)見よグ(1/ϵ))。
反復コストとアルゴリズム構造も非常に似ています: 追跡による合計 ∑ i = 1 nviai 合計_{i=1}^{n} v_i a_i∑私=1んヴ私1つの私 (27) の第 2 項を処理するには、各二重座標上昇反復では 1 つのトレーニング サンプルのみを考慮する必要があり、各反復のコストは次と同じです。 んんん 何もすることはありません。さらに、1D ライン検索を使用して、次のように最大化するステップ サイズを効率的に計算できます。 ヴィ ヴィヴ私 機能の二重の目的。これは、たとえそうでなくても、 L 最大 L_{テキスト{最大}}ら最大 または、関連する量の知識があれば、VR メソッドの最悪の場合の実行時間を短縮することも可能です。
基本的な分散削減 (VR) メソッドを実装し、適切なパフォーマンスを達成するには、いくつかの実装上の問題に対処する必要があります。このセクションでは、上記で説明されていないいくつかの問題について説明します。
最適化アルゴリズムの分野、特に確率的平均勾配 (SAG)、確率的平均勾配アルゴリズム (SAGA)、確率的勾配 (SVRG) などの変動低減手法では、ステップ サイズの設定が重要な問題です。確率的双対座標上昇 (SDCA) 法の場合、二重目的を使用してステップ サイズを決定できますが、SAG、SAGA、および SVRG の元の変数法の理論的根拠は、ステップ サイズは次のとおりである必要があるということです。 γ = O ( 1 L 最大 ) ガンマ = O左(frac{1}{L_{text{max}}}右)γ=お(ら最大1) 形状。しかし、実際のアプリケーションでは、わからないことがよくあります。 L 最大 L_{テキスト{最大}}ら最大 正確な値を使用し、他のステップ サイズを使用するとパフォーマンスが向上する可能性があります。
完全勾配降下法 (フル GD) 法でステップ サイズを設定するための古典的な戦略は、Armijo ライン探索です。与えられた現在点 xk x_kバツけ そして検索方向 グクグクグけ、アルミホライン検索で γk ガンマkγけ は次のように定義されるライン上で実行されます。 γ k ∈ {γ:xk + γgk} gamma_k において {gamma:x_k + gammag_k}γけ∈{γ:バツけ+γグけ}、関数は十分に削減される必要があります。つまり、次のとおりです。
f ( xk + γ kgk ) < f ( xk ) − c γ k ∇ f ( xk ) ∇ 2 f(x_k + gamma_k g_k) < f(x_k) - c gamma_k |ナブラ f(x_k)|^2ふ(バツけ+γけグけ)<ふ(バツけ)−cγけ∥∇ふ(バツけ)∥2
ただし、このアプローチには複数の候補ステップが必要です γk ガンマkγけ 計算 f ( xk + γ kgk ) f(x_k + gamma_k g_k)ふ(バツけ+γけグけ)、評価します 関数 f(x)ふ(バツ) データセット全体を走査するとなると、法外なコストがかかります。
この問題を解決するには、ランダム変動法を使用して、次の条件を満たすものを見つけることができます。 γk ガンマkγけ:
fik ( xk + γ kgk ) < fik ( xk ) − c γ k ∇ fik ( xk ) ∇ 2 f_{ik}(x_k + gamma_k g_k) < f_{ik}(x_k) - c gamma_k | となり、f_{ik}(x_k)|^2 となる。ふいいね(バツけ+γけグけ)<ふいいね(バツけ)−cγけ∥∇ふいいね(バツけ)∥2
このアプローチは通常、特に次のような場合に実際にうまく機能します。 ∇ fik ( xk ) ∇ | ナブラ f_{ik}(x_k)|∥∇ふいいね(バツけ)∥ ゼロに近いわけではありませんが、現時点ではこのアプローチをサポートする理論はありません。
さらに、Mairal は実際にステップ サイズを設定するための「Bottou テクニック」を提案しました。このメソッドは、データ セットのごく一部 (例: 5%) を取得して二分探索を実行し、このサンプルの 1 回のパスで最適なステップ サイズを見つけようとします。 Armijo ライン検索と同様に、この方法も実際にはうまく機能することがよくありますが、やはり理論的基盤が不足しています。
上記の内容は、数式と変数を表すためにマークダウン形式を使用して、原文を再記述したものであることに注意してください。
ただし、SDCA 方式にはいくつかの欠点もあります。まず、凸共役を計算する必要があります。 ℓ i ∗ ell_i^*ℓ私∗ 単純なグラデーションではなく。凸共役に相当する自動微分関数がないため、実装の労力が増加する可能性があります。最近の研究では、共役を必要とせず、代わりに勾配を直接使用する「デュアルフリー」SDCA 方法が提案されています。ただし、これらの方法では、デュアル ターゲットを追跡してステップ サイズを設定することはできなくなります。第二に、SDCA が必要とするのは O ( n + d ) O(n + d)お(ん+d) (15) の問題を解決するにはメモリが必要ですが、この問題カテゴリの場合、SAG/SAGA に必要なのは O ( n + d ) O(n + d)お(ん+d) メモリの容量(セクション 3 を参照)。SAG/SAGA に関するより一般的な問題に適した SDCA のバリアント O ( nd ) O(nd)お(んd) 記憶があるから ヴィ ヴィヴ私 持つようになる ddd 要素のベクトル。 SDCA の最後の微妙な欠点は、暗黙的に強い凸定数を仮定していることです。 ミューμ 等しい λ ラムダλ 。のために ミューμ 以上 λ ラムダλ 問題は、元の VR メソッドは通常、SDCA よりも大幅に優れたパフォーマンスを発揮します。
アルゴリズム最適化の分野では、アルゴリズムが特定の精度を達成するために必要な最悪の場合の反復回数を予測するために、反復の複雑さの理論的結果に頼ることがよくあります。ただし、これらの理論的限界は、予測できないいくつかの定数に依存することが多く、実際のアプリケーションでは、アルゴリズムは多くの場合、より少ない反復で期待される精度を達成できます。したがって、アルゴリズムをいつ終了するかを決定するために、いくつかのテスト基準を設定する必要があります。
従来の完全勾配降下法 (フル GD) 法では、通常、勾配のノルムを使用します。 ∇ f ( xk ) ∇ | ナブラ f(x_k) |∥∇ふ(バツけ)∥ または、反復をいつ停止するかを決定するために、これに関連する他の数量。SVRG メソッドの場合も同じ基準を採用できますが、次を使用します。 ∇ f ( x ˉ s ) ∇ | ナブラ f(bar{x}_s) |∥∇ふ(バツˉs)∥ 判断材料として。SAG/SAGA 法の場合、完全な勾配を明示的に計算するわけではありませんが、量 $ g_{bar{k}} $ は徐々に近似します。 ∇ f ( xk ) は f(x_k) に等しくなります。∇ふ(バツけ)したがって、使用します ∠gk ˉ ∠| g_{bar{k}} |∥グけˉ∥ 停止条件は合理的なヒューリスティックであるためです。
SDCA 法では、追加の記録作業を行うことで、漸近コストを追加することなく二重目的の勾配を追跡できます。さらに、より体系的なアプローチは、二重ギャップを追跡することですが、これにより、 O(n) は、お(ん) コストはかかりますが、デュアルギャッププルーフによる終端条件を提供できます。さらに、強く凸のターゲットの最適性条件に基づいて、MISO 方法は二次下限に基づく原則的な方法を採用しています [41]。
以下は、マークダウン形式で表現された数式と変数です。
上記の内容は、数式と変数を表すためにマークダウン形式を使用して、原文を再記述したものであることに注意してください。
確率的変分勾配低減 (SVRG) アルゴリズムは、以前の変分低減法のメモリ要件を排除しますが、実際のアプリケーションでは、SAG (確率的平均勾配降下法) および SAGA (勾配累積を伴う確率的平均勾配降下法) アルゴリズムが多くの問題で使用されます。 SVRG アルゴリズムよりも必要な反復回数が少なくなる傾向があります。これをきっかけに次のような考えが生まれました。SAG/SAGA が O ( nd ) O(nd)お(んd) メモリ要件は以下のように実装されます。このセクションでは、メモリ要件を大幅に削減できる線形モデルのクラスについて説明します。
各関数が次のような線形モデルであると考えます。 fi ( x ) f_i(x)ふ私(バツ) それは次のように表現できます ξ i ( ai ⊤ x ) xi_i(mathbf{a}_i^top x)ξ私(1つの私⊤バツ) 。右 xxバツ 微分すると勾配の形が得られます。
∇ fi ( x ) = ξ ′ ( ai ⊤ x ) ai nabla f_i(x) = xi'(mathbf{a}_i^top x) mathbf{a}_i∇ふ私(バツ)=ξ′(1つの私⊤バツ)1つの私
ここ、 ξ ′ xi'ξ′ 急行 ξ xiξ の派生語。固有ベクトルに直接アクセスできると仮定すると、 ai 数学bf{a}_i1つの私の場合、SAG/SAGA メソッドを実装するには、スカラーを保存するだけで済みます。 ξ ( ai ⊤ x ) xi(mathbf{a}_i^top x)ξ(1つの私⊤バツ) 。このように、メモリ要件は次のように異なります。 O ( nd ) O(nd)お(んd) に減少 O(n) は、お(ん) 。 SVRG アルゴリズムは、この勾配構造を利用することもできます。 んんん スカラーの場合、このクラスの問題では、SVRG の「内部」反復ごとに必要な勾配評価の数を 1 に減らすことができます。
確率的グラフィカル モデルなど、メモリ要件を削減できる可能性を提供する他のタイプの問題もあります [66]。特定のデータ構造とアルゴリズムの最適化により、実行時にアルゴリズムが必要とするメモリ リソースをさらに削減できます。
以下は、マークダウン形式で表現された数式と変数です。
一部の問題では、勾配 ∇ fi ( x ) は f_i(x) となる∇ふ私(バツ) まばらな特徴を持つ線形モデルなど、多数のゼロ値が含まれる可能性があります。この場合、従来の確率的勾配降下法 (SGD) アルゴリズムを効率的に実装でき、計算量は勾配内の非ゼロ要素の数に比例し、通常は問題の次元よりもはるかに小さくなります。 ddd 。ただし、標準的な変分リダクション (VR) 方法では、この利点は活用されません。幸いなことに、これを改善する既知の方法が 2 つあります。
最初の改良点は Schmidt らによって提案されたもので、更新プロセスの単純さを利用し、各反復のコストが非ゼロの数に比例するように「オンザフライ」計算の変形を実装します。要素。SAG を例にとると (ただし、このアプローチはすべてのバリアントに機能します)、これは各反復後に完全なベクトルを保存しないことで行われます。 ヴィック v_{ik}ヴいいねただし、ゼロ以外の要素に対応する要素のみを計算します。 ヴィクジ v_{ik_j}ヴ私けじゅう、要素が最後にゼロ以外であったときから各変数を更新することによって ヴィクジ v_{ik_j}ヴ私けじゅう。
2 番目の改善方法は、SAGA に対して Leblond らによって提案されたもので、式を更新します。 xk + 1 = xk − γ ( ∇ fik ( xk ) − ∇ fik ( xˉ ik ) + gˉ k ) x_{k+1} = x_k - gamma(nabla f_{ik}(x_k) - nabla f_{ik}(bar{x}_{ik}) + bar{g}_k)バツけ+1=バツけ−γ(∇ふいいね(バツけ)−∇ふいいね(バツˉいいね)+グˉけ) 追加のランダム性が導入されます。ここ、 ∇ fik ( xk ) は f_{ik}(x_k) である。∇ふいいね(バツけ) そして ∇ fik ( x ˉ ik ) は f_{ik}(bar{x}_{ik}) に反比例する。∇ふいいね(バツˉいいね) まばらであり、 g ˉ k バー{g}_kグˉけ 濃いです。この方法では、密な項は ( g ˉ k ) j (バー{g}_k)_j(グˉけ)じゅう の各コンポーネントは次のように置き換えられます。 wj ( g ˉ k ) j w_j (bar{g}_k)_jわじゅう(グˉけ)じゅう、で w ∈ R dw は mathbb{R}^d で表されます。わ∈Rd サポート セットが含まれるランダムなスパース ベクトルです。 ∇ fik ( xk ) は f_{ik}(x_k) である。∇ふいいね(バツけ) 、すべての要素が 1 に等しい定数ベクトルであることが期待されます。このようにして、更新プロセスは偏りのない状態を維持し (現在はまばらになっていますが)、分散の増加はアルゴリズムの収束率に影響を与えません。 詳細については、Leblond et al. が提供しています。
以下は、マークダウン形式で表現された数式と変数です。