確率的勾配降下法

確率的勾配降下法#

  • 読み: かくりつてきこうばいこうかほう

  • 英名: Stochastic Gradient Descent

確率的勾配降下法(Stochastic Gradient Descent,以下 SGD)は, 確率密度関数 \(p(z)\) に対して目的関数が期待値で表された以下のような最適化問題に対して有効なアルゴリズムである.

(29)#\[\min L(w) = \displaystyle\int{l(w,z)p(z)dz}.\]

上式における \(l,w,z\) をそれぞれ損失関数,モデルパラメータ,データに対応する確率変数の実現値とすれば, 上記問題は機械学習における期待損失(汎化誤差)の最小化問題に他ならない. そこで,関数 \(L(w)\)期待損失 と呼ぶことにする.

SGD#

期待損失の値やその勾配 \(\nabla L(w)\) はいくつかの理由により計算困難である場合が多い. 例えば分布 \(p(z)\) が未知,\(p(z)\) が既知であっても期待値計算が困難, あるいは母集団が有限集合であっても濃度が大きく和演算が高コストといった場合である.

そこで勾配 \(\nabla L(w)\) の代わりに, その不偏推定量である 確率的勾配 (stochastic gradient) \(\nabla l(w,z)\) を用いた次の勾配法が SGD である.

(30)#\[w_{t+1}=w_t-\eta_t\nabla l(w,z_t).\]

ここで \(z_t\)\(t\) 反復時点での \(z\) の実現値である. \(\eta_t\) はパラメータの更新幅を制御するハイパーパラメータであり, 機械学習の分野においては 学習率 と呼ばれている.

SGD の速度・安定性を向上させるためにパラメータの重み付き平均で予測をする Averaged SGD も提案されている. 滑らかさ・凸性等の目的関数の性質及び,学習率・パラメータの平均の取り方等のアルゴリズムの性質に応じて,その収束性は様々である. これら手法の収束性について詳しくは [1, 2, 3, 4, 5, 6, 7, 8, 9] を参照されたい.

上述の通り SGD は期待損失の最小化を目的とするが, 実際には期待損失では無く有限個の訓練データ \(z_1,\ldots,z_n\) に対して定まる(正則化付き)経験損失の最小化問題を解く場合が多い.

(31)#\[\min L_n(w)=\frac{1}{n}\sum_{i=1}^n{l(w,z_i)+\lambda h(w)}.\]

\(h\) にはサンプルデータへの過剰適合 (Overfitting) を防ぐ役割があり,正則化項 と呼ばれる.

\(h\) は一般に滑らかとは限らず, 経験損失最小化問題に SGD あるいは GD 1確率的でない厳密な勾配を用いる勾配法,Gradient Descent を適用する場合は, \(h\) については劣勾配で近似する事になる.

目的関数が滑らかでない場合,解の近傍においても劣勾配のノルムが大きくなる可能性に起因し, SGD/GD の収束速度の低下が起こる. しかし,\(h\)\(L_1\)正則化あるいは \(L_2\) 正則化のような比較的単純な関数であれば, 関数を(劣)勾配で近似すること無く反復を行う近接勾配法を適用することで, この様な収束速度の低下を抑制することができる [10]

以降は,損失関数と正則化項を区別せず \(g_i(w)=l(w,z_i)+\lambda h(w)\) と置き, \(g_i\)\(L\)-smooth(微分可能かつ勾配がリプシッツ連続 i.e. \(\|\nabla g_i(x) - \nabla g_i(y) \| \le L\|x-y\|\))とする. 経験損失最小化問題は単に滑らかな関数の有限和に対する最小化問題となる.

(32)#\[\min g(w)=\frac{1}{n}\sum_{i=1}^{n}{g_i(w)}.\]

この問題に SGD を適用する場合は,各反復においてランダムに一つの関数 \(g_i\) を選択し, その関数の勾配を \(g\) の確率的勾配として用いる. また,一つの関数でなく少数の関数(ミニバッチ)をランダムに抽出し,その平均を採用する場合もある.

アルゴリズムの収束は関数の滑らかさだけでなく,凸性にも影響を受ける. ここでは \(g\)\(\mu\)-strongly convex(\(\mu\)-強凸)とする. \(L\)\(\mu\) の比 \(\kappa\)条件数 (condition number) と呼ばれる.

関数が二階微分可能である場合は,そのヘッセ行列の最大固有値と最小固有値の比に相当し, この値が大きい程,勾配の変化の仕方が方向に依り大きく変わり得ることを意味している. そのため,条件数の大きさは GD/SGD のような一次の勾配を用いるアルゴリズムの収束に強く影響を及ぼす. 経験損失最小化問題において SGD と GD は収束率 2一度の反復で解へ接近する度合 と一反復あたりの計算量の観点でトレードオフの関係にある.

GD は SGD に比べて優れた収束率,具体的には線形収束 3線形収束とは \(\epsilon\) 精度の解を求めるのに必要な反復数が \(O(\log(1/\epsilon))\) であるという事である. を達成するが, 一度のパラメータの更新に \(O(n)\) の計算量を要する. 一方,SGD は \(O(1/\epsilon)\) の反復を要する代わりに一反復あたりの計算量は \(O(1)\) というようにデータサイズの影響を受けない.

以上から,\(\epsilon\) 精度の解を得るのに掛かる総計算量は GD の場合は \(O(n\log(1/\epsilon))\), SGD の場合 \(O(1/\epsilon)\) となる. データサイズが大きい程,SGD が有利な状況になり, 機械学習で大規模データを扱うようになった近年において SGD が重宝される理由である.

収束率は \(\kappa,L,\mu\) にも依存しているが,データサイズおよび求解精度の関係に着目するため, ここでは省略したことを注意しておく. またパラメータの次元についても, データのスパース性を無視すれば GD と SGD で同程度の依存度であるため省いている.

本稿では焦点からは外しているニュートン法や準ニュートン法等のアルゴリズムと比較する場合はパラメータの次元も含めて比較すべきである. (準)ニュートン法の計算量はパラメータ次元に大きく依存する代わりに, 各反復においてヘッセ行列が単位行列と見なせるような空間で更新を行うため条件数からの影響が弱く, 線形収束より速い二次収束あるいは超一次収束を達成する.

SGD の改良#

ここまでで,大規模データを対象とした経験損失最小化問題における SGD の優位性を確認した. しかし,\(\epsilon\) については依然 GD に分がある. SGD が線形収束しない原因は確率的勾配の分散の影響を軽減するために, 学習率を \(0\) に収束させる必要があることである. 一方で,GD は学習率を定数に保つことが可能であり,これにより一度の反復で十分な目的関数の減少が得られる.

そこで,SGD のように一反復毎の計算量を小さく保ちつつも確率的勾配の分散を小さくする方法が 2012 年辺りから研究されだし, GD と同じく線形収束を達成する以下のアルゴリズム等が提案された.

  • Stochastic Average Gradient (SAG) [11]

  • Stochastic Dual Coordinate Ascent (SDCA) [12]

  • Stochastic Variance Reduction Gradient (SVRG) [13], SAGA [14]

SGD は本来,期待損失最小化問題を対象としているため,各反復で選択するデータは一時的なものとして扱われるが, 経験損失最小化問題に適用する場合は,有限個の固定のデータを何周もすることになるので,データ毎に情報を保持することができる. この観点に着目し,データ毎に最後に更新した確率的勾配を保持する方法が SAG である.

SDCA は正則化項付き経験損失最小化問題の Fenchel 双対問題に対して Coordinate Ascent を適用するアルゴリズムであり, データ毎に双対変数を保持する.

SVRG は定期的に \(O(n)\) のコストを消費し厳密な勾配を計算する方法で, \(O(n)\) のメモリ領域を必要としない点に特徴がある.

SAGA は SAG と SVRG の中間的なアルゴリズムで, SAG の更新ステップを勾配の不偏推定量に修正している(SAG は不偏推定量ではない).

これらはいずれも確率的勾配の分散の減少を実現している. SAG, SVRG, SAGA の反復では次で定義されるステップを勾配の推定量とする [14]

SAG: (biased)

(33)#\[\frac{1}{n} \left( \nabla g_{i_k}(x_k) - \nabla g_{i_k}(\phi_{i_k}^k) \right) + \frac{1}{n} \sum_{i=1}^n{\nabla g_i(\phi_i^k)},\]

SAGA: (unbiased)

(34)#\[\nabla g_{i_k}(x_k) - \nabla g_{i_k}(\phi_{i_k}^k) + \frac{1}{n}\sum_{i=1}^n{\nabla g_i(\phi_i^k)},\]

SVRG: (unbiased)

(35)#\[\nabla g_{i_k}(x_k) - \nabla g_{i_k}(\tilde{x}) + \frac{1}{n}\sum_{i=1}^n{\nabla g_i(\tilde{x})}.\]

ここで \(i_k \in \{1,\ldots,n\}\)\(k\) 反復目にランダムに選択した関数に対応する添字, \(\phi_i^k\) は現在の反復までに最後に \(i\) が選択された際の反復点, 即ち \(\phi_i^{k+1} = x_k \ (i=i_k)\)\(\phi_i^k(i \ne i_k)\) であり, \(\tilde{x}\) は SVRG で定期的に更新されるベースポイントである.

これら 3 つのアルゴリズムはいずれも確率変数 \(X \colon \Omega \to \mathbb{R}^d\) の平均 \(\mathrm{E}X\) を推定する際に \(X\) そのものでなく, 別の確率変数 \(Y \colon \Omega \to \mathbb{R}^d\) を用いて \(\theta_{\alpha} = \alpha(X-Y) + \mathrm{E}Y\)\(\alpha \in [0,1]\) で推定していると捉えられる [14]. この時,\(\theta_{\alpha}\) の平均と分散は \(\mathrm{E}\theta_{\alpha} = \alpha \mathrm{E}X + (1-\alpha) \mathrm{E}Y\)\(\mathrm{Var}(\theta_{\alpha}) = \alpha^2 \left( \mathrm{Var}(X) + \mathrm{Var}(Y) - 2\mathrm{Cov}(X,Y) \right)\) となる.

\(\alpha=1\) の場合,\(\theta_{\alpha}\)\(\mathrm{E}X\) の不偏推定量であるが, \(\mathrm{E}X \ne \mathrm{E}Y\)\(\alpha < 1\) の時には,不偏推定量にはならない. 一方で推定量の分散は \(\alpha\)\(0\) に近い程,小さいというトレードオフがあり, SAG, SVRG, SAGA の関係を表している. いずれにせよ,\(\mathrm{Cov}(X,Y)\) の寄与で確率的勾配の分散の軽減に成功している.

SDCA についても,反復を主変数で記述すれば,このような分散の軽減をしていると [13] で言及している. これらのアルゴリズムは線形収束を実現し, \(\epsilon\) 精度の解を得るための総計算量は \(O \left( (n+\kappa)\log(1/\epsilon) \right)\) に抑えられている.

GD の総計算量は \(O \left( n\kappa\log(1/\epsilon) \right)\) である 4前述の GD のオーダーでは条件数 \(\kappa\) を省略していた事に注意されたい. ので, SGD と違い GD の総計算量を真に改善していることが確認できる.

その他,関連するアルゴリズムとして [15, 16, 17, 18] を参照されたい. GD の条件数 \(\kappa\) への依存を軽減させることに成功した Nesterov の加速法 [19] のアイディアを取り入れることで, SDCA 及び SVRG を加速させるアルゴリズムも提案されている [20, 21]

Deep Learning との関連#

この様な研究が活発になった背景として,近年のコンピュータの計算力の向上に伴い, 大規模データに対しての機械学習が可能になっただけでなく, データの傾向をより良く捉えるためのパワフルなモデルが使われるようになった事が考えられる. Deep Learning がその代表例である.

Deep Learning で用いられるモデルは表現力が高い一方でパラメータ空間の次元が高く,その振る舞いも複雑である. 例えば局所解や鞍点,関数表現の冗長性に依存したパラメータの変化に対してモデルの感度が低い領域の存在,等の問題がある. 従って,大規模データに対応しつつも,関数の複雑さに影響されにくい高速なアルゴリズムの研究が必要である.

一つの方向性として,ここで紹介した確率的な最適化方法に対して準ニュートン法, 自然勾配法 [22] で使われるような関数やパラメータ空間から定まる計量を効率良く導入する方法が研究 [23, 24, 25, 26, 27] されていて, 今後の更なる発展が期待される.

関連

参考文献

[1]

B. T. Polyak and A. B. Juditsky. Acceleration of Stochastic Approximation by Averaging. SIAM Journal on Control and Optimization, 30(4):838–855, jul 1992. URL: http://epubs.siam.org/doi/10.1137/0330046, doi:10.1137/0330046.

[2]

Léon Bottou. On-line Learning and Stochastic Approximations. In On-Line Learning in Neural Networks, pages 9–42. Cambridge University Press, jan 1999. URL: https://www.cambridge.org/core/product/identifier/CBO9780511569920A009/type/book_part, doi:10.1017/CBO9780511569920.003.

[3]

Léon Bottou and Yann Le Cun. Large scale online learning. In Advances in Neural Information Processing Systems 16 - Proceedings of the 2003 Conference, NIPS 2003, Advances in Neural Information Processing Systems. Neural information processing systems foundation, 2004.

[4]

Léon Bottou and Olivier Bousquet. The Tradeoffs of Large Scale Learning. In J Platt, D Koller, Y Singer, and S Roweis, editors, Advances in Neural Information Processing Systems, volume 20. Curran Associates, Inc., 2007. URL: https://proceedings.neurips.cc/paper_files/paper/2007/file/0d3180d672e08b4c5312dcdafdf6ef36-Paper.pdf.

[5]

Eric Moulines and Francis Bach. Non-Asymptotic Analysis of Stochastic Approximation Algorithms for Machine Learning. In J Shawe-Taylor, R Zemel, P Bartlett, F Pereira, and K Q Weinberger, editors, Advances in Neural Information Processing Systems, volume 24. Curran Associates, Inc., 2011. URL: https://proceedings.neurips.cc/paper_files/paper/2011/file/40008b9a5380fcacce3976bf7c08af5b-Paper.pdf.

[6]

Alexander Rakhlin, Ohad Shamir, and Karthik Sridharan. Making gradient descent optimal for strongly convex stochastic optimization. In Proceedings of the 29th International Coference on International Conference on Machine Learning, ICML'12, 1571–1578. Madison, WI, USA, 2012. Omnipress.

[7]

Simon Lacoste-Julien, Mark Schmidt, and Francis Bach. A simpler approach to obtaining an O(1/t) convergence rate for the projected stochastic subgradient method. arXiv, dec 2012. URL: http://arxiv.org/abs/1212.2002, arXiv:1212.2002.

[8]

Francis R Bach and Éric Moulines. Non-strongly-convex smooth stochastic approximation with convergence rate O(1/n). In Neural Information Processing Systems. 2013. URL: https://api.semanticscholar.org/CorpusID:8156448.

[9]

Ohad Shamir and Tong Zhang. Stochastic gradient descent for non-smooth optimization: convergence results and optimal averaging schemes. In Proceedings of the 30th International Conference on International Conference on Machine Learning - Volume 28, ICML'13, I–71–I–79. JMLR.org, 2013.

[10]

Neal Parikh and Stephen Boyd. Proximal Algorithms. Found. Trends Optim., 1(3):127–239, 2014. URL: https://doi.org/10.1561/2400000003, doi:10.1561/2400000003.

[11]

Nicolas Le Roux, Mark Schmidt, and Francis Bach. A stochastic gradient method with an exponential convergence rate for finite training sets. In Proceedings of the 25th International Conference on Neural Information Processing Systems - Volume 2, NIPS'12, 2663–2671. Red Hook, NY, USA, 2012. Curran Associates Inc.

[12]

Shai Shalev-Shwartz and Tong Zhang. Proximal Stochastic Dual Coordinate Ascent. ArXiv, 2012. URL: https://api.semanticscholar.org/CorpusID:17372776.

[13] (1,2)

Rie Johnson and Tong Zhang. Accelerating Stochastic Gradient Descent using Predictive Variance Reduction. In C J Burges, L Bottou, M Welling, Z Ghahramani, and K Q Weinberger, editors, Advances in Neural Information Processing Systems, volume 26. Curran Associates, Inc., 2013. URL: https://proceedings.neurips.cc/paper_files/paper/2013/file/ac1dd209cbcc5e5d1c6e28598e8cbbe8-Paper.pdf.

[14] (1,2,3)

Aaron Defazio, Francis Bach, and Simon Lacoste-Julien. SAGA: A Fast Incremental Gradient Method With Support for Non-Strongly Convex Composite Objectives. In Z Ghahramani, M Welling, C Cortes, N Lawrence, and K Q Weinberger, editors, Advances in Neural Information Processing Systems, volume 27. Curran Associates, Inc., 2014. URL: https://proceedings.neurips.cc/paper_files/paper/2014/file/ede7e2b6d13a41ddf9f4bdef84fdc737-Paper.pdf.

[15]

Lin Xiao and Tong Zhang. A Proximal Stochastic Gradient Method with Progressive Variance Reduction. SIAM Journal on Optimization, 24(4):2057–2075, jan 2014. URL: http://epubs.siam.org/doi/10.1137/140961791, doi:10.1137/140961791.

[16]

Shai Shalev-Shwartz and Tong Zhang. Accelerated mini-batch stochastic dual coordinate ascent. Advances in Neural Information Processing Systems, 2013.

[17]

Jakub Konečný and Peter Richtárik. Semi-Stochastic Gradient Descent Methods. Frontiers in Applied Mathematics and Statistics, may 2017. URL: http://journal.frontiersin.org/article/10.3389/fams.2017.00009/full, doi:10.3389/fams.2017.00009.

[18]

Taiji Suzuki. Stochastic Dual Coordinate Ascent with Alternating Direction Method of Multipliers. In Eric P Xing and Tony Jebara, editors, Proceedings of the 31st International Conference on Machine Learning, volume 32 of Proceedings of Machine Learning Research, 736–744. Bejing, China, 2014. PMLR. URL: https://proceedings.mlr.press/v32/suzuki14.html.

[19]

Yurii Nesterov. Introductory Lectures on Convex Optimization. Volume 87 of Applied Optimization. Springer US, Boston, MA, 2004. ISBN 978-1-4613-4691-3. URL: http://link.springer.com/10.1007/978-1-4419-8853-9, doi:10.1007/978-1-4419-8853-9.

[20]

Shai Shalev-Shwartz and Tong Zhang. Accelerated proximal stochastic dual coordinate ascent for regularized loss minimization. In Proceedings of the 31st International Conference on International Conference on Machine Learning - Volume 32, ICML'14, I–64–I–72. JMLR.org, 2014.

[21]

Atsushi Nitanda. Stochastic Proximal Gradient Descent with Acceleration Techniques. In Z Ghahramani, M Welling, C Cortes, N Lawrence, and K Q Weinberger, editors, Advances in Neural Information Processing Systems, volume 27. Curran Associates, Inc., 2014. URL: https://proceedings.neurips.cc/paper_files/paper/2014/file/d554f7bb7be44a7267068a7df88ddd20-Paper.pdf.

[22]

Shun-ichi Amari. Natural Gradient Works Efficiently in Learning. Neural Computation, 10(2):251–276, feb 1998. URL: https://direct.mit.edu/neco/article/10/2/251-276/6143, doi:10.1162/089976698300017746.

[23]

James Martens. Deep learning via Hessian-free optimization. In Proceedings of the 27th International Conference on International Conference on Machine Learning, ICML'10, 735–742. Madison, WI, USA, 2010. Omnipress.

[24]

Richard H. Byrd, Gillian M. Chin, Jorge Nocedal, and Yuchen Wu. Sample size selection in optimization methods for machine learning. Mathematical Programming, 134(1):127–155, aug 2012. URL: http://link.springer.com/10.1007/s10107-012-0572-5, doi:10.1007/s10107-012-0572-5.

[25]

Richard H. Byrd, Gillian M. Chin, Will Neveitt, and Jorge Nocedal. On the Use of Stochastic Hessian Information in Optimization Methods for Machine Learning. SIAM Journal on Optimization, 21(3):977–995, jul 2011. URL: http://epubs.siam.org/doi/10.1137/10079923X, doi:10.1137/10079923X.

[26]

Yann N Dauphin, Razvan Pascanu, Caglar Gulcehre, Kyunghyun Cho, Surya Ganguli, and Yoshua Bengio. Identifying and attacking the saddle point problem in high-dimensional non-convex optimization. In Proceedings of the 27th International Conference on Neural Information Processing Systems - Volume 2, NIPS'14, 2933–2941. Cambridge, MA, USA, 2014. MIT Press.

[27]

Razvan Pascanu, Yann Dauphin, Surya Ganguli, and Yoshua Bengio. On the saddle point problem for non-convex optimization. ArXiv, 2014. URL: https://api.semanticscholar.org/CorpusID:11856692.