勾配消失問題

勾配消失問題（こうばいしょうしつもんだい、英: vanishing gradient problem）は、機械学習において、勾配ベースの学習手法と誤差逆伝播法を利用してニューラルネットワークを学習する際に、誤差逆伝播に必要な勾配が非常に小さくなり、学習が制御できなくなる問題である。 この問題を解決するために、リカレントニューラルネットワークではLSTMと呼ばれる構造が導入されたり、深層のネットワークではResNetと呼ばれる構造が導入される。 また、活性化関数の勾配が非常に大きな値をとり、発散してしまうこともある。このような問題は、勾配爆発問題（こうばいばくはつもんだい、英: exploding gradient problem）と呼ばれる。 誤差逆伝播法を用いて学習する場合、ニューラルネットワーク上の各ノードの重みは、学習ステップごとに計算される損失関数を、自身のノードの重みで偏微分した勾配に比例して更新される。勾配消失問題は、この勾配が非常に小さくなることで、ニューラルネットワークの重みが更新されにくくなることによって生じる問題である。最悪の場合には、重みの更新が完全に起こらなくなってしまうこともある。この問題が起こる一例として、双曲線正接関数（sigmoid関数）のような古典的な活性化函数を用いた場合が挙げられる。誤差逆伝播法では連鎖律を用いて、ニューラルネットワークの出力層から遡って、各ノードの重みによる損失関数の偏微分が計算される。例として挙げたsigmoid関数は、勾配の値域が(0, 1)であるため、このような場合には、出力層から遠い層、すなわち入力層から見て近い層のノードほど指数的に勾配が小さくなり、結果として学習の進む速度が遅くなる。 誤差逆伝播法の開発により、教師あり学習で深層ニューラルネットワークを学習させることができるようになったが、当初はあまりうまくいかなかった。こうした学習の失敗について、Hochreiter（英語版）が1991年に発表した学位論文で、その原因が勾配消失問題にあることを特定した。勾配消失問題は順伝播型の多層ニューラルネットワークだけでなく、回帰型ニューラルネットワークにおいても生じる。回帰型ニューラルネットワークは学習の際、ネットワークに入力される系列データを処理する時間ステップごとにモデルの複製を追加することで、時間方向に展開された非常に深い順伝播のネットワークと見なして逆伝播を適用することができる。このような学習方法は通時的誤差逆伝播法（英語版）（BPTT法とも）と呼ばれている。 勾配消失問題を解消するため、様々な手法が提案されている。その一つが、1992年にユルゲン・シュミットフーバー（英語版）によって提案されたmulti-level hierarchyと呼ばれる方法である。これは本来学習したいモデルを分割して、それぞれを教師なし学習を用いて別個に事前学習し、最終的にそれらを接続したものに対し、誤差逆伝播を用いたファインチューニングを行う手法である。 部分モデルそれぞれは、前の階層に相当する部分モデルの出力から次の階層に供給すべき入力の圧縮表現を学習する。 類似する考え方として、教師なしの事前学習をニューラルネットワークに対して行い、一般的に有用な特徴検出器（英語版）を学習するというものがある。その後、ラベル付きデータを用いて教師ありの誤差逆伝播法によりモデルをさらに学習する。 深層信念ネットワーク（英語版）（Deep Belief Network, 以下DBN）は、2006年にヒントンらが提案したモデルで、二値もしくは実数値をとる潜在変数の連続した層によって、高度な特徴表現の分布を学習することができる。DBNは、より高度な特徴表現を獲得するために制限付きボルツマンマシン（英語版）を多層に積み重ねたものである。全層を同時に学習するのではなく、入力層と直後の隠れ層に関する制限付きボルツマンマシンを学習し、次に隠れ層の1層目と2層目に関する制限付きボルツマンマシンを学習するといったように、層ごとに学習をするネットワークである。各層の制限付きボルツマンマシンは、入力に対する対数尤度の下界が増加することを保証するため、学習が適切に進めばモデル全体としても性能が向上することになる。 十分に学習された深層信念ネットワークは、隠れ層の最も深い層から入力層に向けて、各層で値を順にサンプリングしていくことにより、最終的にデータを再生成することができるため、生成モデルとして利用することができる。ヒントンは、自身の開発した深層信念ネットワークが高次元の構造化されたデータに対して、有用な特徴抽出器であると報告している。 回帰型ニューラルネットワークで用いられる手法として、長期短期記憶ネットワークが挙げられる。LSTMは、1997年にホッフライター（英語版）とシュミットフーバー（英語版）によって提案された。RNNは時間方向に展開することで順伝播型のニューラルネットワークと同様に逆伝播を行うことができるが、長時間にわたって展開すると層が深くなり、勾配の誤差が積み重なってしまう可能性がある。一方で、LSTMでは過去の入力特徴を保持する機構を持っているため、時系列が増えても情報の伝達がしやすい。 2009年には、筆記体の文字認識コンペティションにおいて、認識対象となる3つの異なる言語の事前知識なしに学習を行う深層多次元LSTMを用いたモデルが3度優勝し、非線形の層を多数持つ深層学習の性能の高さを示した。 勾配消失問題への対策として、比較的新しく有用度も高いのが、2015年に提案された残差ネットワーク（ResNet）である。 ResNetは、ニューラルネットワークの一部に層を飛び越えるような接続を含む構造を持つ。 こうしたスキップ接続により、通常は直後の層の入力にのみ用いられる出力が、より深い層の出力に加えられその先の層に入力されるため、情報が層を超えて伝播するようになることが期待される。スキップ接続は、深層ニューラルネットワークをうまく学習するための重要な要素になっている。 ResNetでは、消失した情報を補完するために浅い層の出力をより深い層に対して単に加えるだけで、通常の浅いネットワークよりも学習時の損失と評価時の損失を抑えることができた。 なお、ResNetは比較的浅いネットワークのアンサンブルとして捉えることができるとされており、ネットワーク全体にわたって勾配情報を保持することで勾配消失の問題を解決しているのではなく、むしろ、多数の短いネットワークをアンサンブルさせることで勾配消失問題を回避しているとする説がある。 正規化線形関数（ReLUと表記されることもある）は活性化関数の一つで、入力が正の範囲では単調増大するため、勾配消失の影響を受けにくい。2018年現在、深層学習で広く使われている活性化関数である。 単調でない、飽和しない、振動する、といった性質を持つ活性化関数は、勾配消失問題を緩和するとともに、学習時間の削減にも寄与する。振動する活性化関数で、勾配をよく伝播し学習速度を向上させるものの例を、右の図に示している。 深層学習モデルの重みパラメータの初期値を適切に設定することにより、勾配消失や爆発といった問題を避けられることが知られている。代表的な初期化手法としては、2010年に提案されたXavielの初期値や、2015年に提案されたHeの初期値などがある。この2つのアプローチは、いずれも入出力のノード数をパラメータに用いた正規分布に従って重みを初期化するものであり、重みの分散を初期化時に制御することで、各層の活性化関数の出力や勾配の分散が増大、あるいは減少しないようにしている。 ニューラルネットワークの学習において、入力データを正規化することで学習が進みやすくなることが知られている。 バッチノーマライゼーション（英語版）は、この考え方を深層学習モデルの層間に拡張した最適化手法で、途中の層でミニバッチごとの入出力を正規化するものである。バッチノーマライゼーションは2015年に提案された手法で、深層学習モデルでは、入力学習データによって隠れ層への入力の分布が偏っているという内部共変量シフト（internal covariate shift）と呼ばれる問題が生じていると仮定し、この入力の分布の偏りを正規化することで防ぐ狙いがある。 バッチノーマライゼーションは深層学習の学習を安定化させることに寄与しており、その効果の一つとして勾配の消失や発散を防ぐことが報告されており、バッチノーマライゼーションを適用することで、層間の活性化関数の勾配が安定するという結果も実験的に得られている。 1990年代以降のハードウェアの進展により、コンピュータの演算能力、特にGPUに由来する演算能力は100万倍にも向上しており、勾配消失問題の存在が認識されたころと比べると、数段深いネットワークに対しても誤差逆伝播を用いた計算が普通に処理されるようになっている。シュミットハーバーは2015年の論文で、画像認識のコンペティションで高い性能を収めているものは基本的にこうした深層ネットワークだと述べる一方で、勾配消失問題を根本的に克服できたわけではないとしている。 ヒントンらが2006年に勾配消失問題の解決に取り組んだ研究では、GPUではなくCPUを用いて学習されたモデルが利用されている。 ドイツの計算機科学者であるベーンケは、画像の再構成や顔認識といった問題を解くために[要出典]、勾配の符号のみを用いてNeural Abstraction Pyramidと呼ばれるネットワークを学習した。 ニューラルネットワークは、ニューラルネットワークの重みが取りうる空間全体を探索するアルゴリズムを用いることでも最適化できる。例えばランダムな探索もここに含まれるし、よりシステマチックなアルゴリズムとしては遺伝的アルゴリズムなどもある。こうしたアプローチは勾配によらず最適化を行うため、勾配消失問題を避けることができる。 ^ 各種文献では、最上層という表現が使われることもある。 ^ Residual neural networkの略であり、頭文字をとるとRNNとなるが、回帰型ニューラルネットワークとは関係がない。 ^ Xavielの初期値は、2010年の提案では一様分布を用いた導出が紹介されているが、2015年のHeらの論文が示しているように、入出力のノード数をパラメータとして用いた正規分布として表すこともできる。 ^ その後の研究で、バッチノーマライゼーションは内部共変量シフトの問題の緩和には寄与していない可能性があるとしているものもある。 ^ Okatani, Takayuki (2015). “On Deep Learning”. Journal of the Robotics Society of Japan 33 (2): 92–96. doi:10.7210/jrsj.33.92. ISSN 0289-1824. https://doi.org/10.7210/jrsj.33.92.  ^ a b Basodi et al. 2020, p. 197. ^ Yang 2020, p. 53-54. ^ a b Yang 2020, p. 54. ^ Schmidhuber, Jürgen (2015-01-01). “Deep learning in neural networks: An overview” (英語). Neural Networks 61: 90-91,93-94. doi:10.1016/j.neunet.2014.09.003. ISSN 0893-6080. https://www.sciencedirect.com/science/article/pii/S0893608014002135.  ^ Deng 2012, p. 2-3,4. ^ Hochreiter, S. (1991). Untersuchungen zu dynamischen neuronalen Netzen (PDF) (Diplom thesis). Institut f. Informatik, Technische Univ. Munich. ^ Hochreiter, S.; Bengio, Y.; Frasconi, P.; Schmidhuber, J. (2001). “Gradient flow in recurrent nets: the difficulty of learning long-term dependencies”. In Kremer, S. C.; Kolen, J. F.. A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press. ISBN 0-7803-5369-2  ^ Schmidhuber, Jürgen (2015-01-01). “Deep learning in neural networks: An overview” (英語). Neural Networks 61: 93-94. doi:10.1016/j.neunet.2014.09.003. ISSN 0893-6080. https://www.sciencedirect.com/science/article/pii/S0893608014002135.  ^ Goh, Garrett B.; Hodas, Nathan O.; Vishnu, Abhinav (2017-06-15). “Deep learning for computational chemistry” (英語). Journal of Computational Chemistry 38 (16): 1291–1307. arXiv:1701.04503. Bibcode: 2017arXiv170104503G. doi:10.1002/jcc.24764. PMID 28272810.  ^ Pascanu, Razvan; Mikolov, Tomas; Bengio, Yoshua (21 November 2012). "On the difficulty of training Recurrent Neural Networks". arXiv:1211.5063 [cs.LG]。 ^ Pascanu, Razvan; Mikolov, Tomas; Bengio, Yoshua (2013-06-16). “On the difficulty of training recurrent neural networks”. Proceedings of the 30th International Conference on International Conference on Machine Learning - Volume 28 (Atlanta, GA, USA: JMLR.org): III–1310–III–1318. doi:10.5555/3042817.3043083. https://dl.acm.org/doi/10.5555/3042817.3043083.  ^ a b c Deng, Li (2014). “A tutorial survey of architectures, algorithms, and applications for deep learning” (英語). APSIPA Transactions on Signal and Information Processing 3 (1): 18. doi:10.1017/atsip.2013.9. ISSN 2048-7703. http://www.nowpublishers.com/article/Details/SIP-014.  ^ J. Schmidhuber., "Learning complex, extended sequences using the principle of history compression," Neural Computation, 4, pp. 234–242, 1992. ^ Deng 2012, p. 3. ^ Deng 2012, p. 4. ^ 川上玲「5分で分かる?!有名論文ナナメ読み」（pdf）『情報処理』第59巻第10号、情報処理学会、2018年10月15日、946頁。  ^ Hinton, G. E.; Osindero, S.; Teh, Y. (2006). “A fast learning algorithm for deep belief nets”. Neural Computation 18 (7): 1527–1554. doi:10.1162/neco.2006.18.7.1527. PMID 16764513. http://www.cs.toronto.edu/~hinton/absps/fastnc.pdf.  ^ Hinton, G. (2009). “Deep belief networks”. Scholarpedia 4 (5): 5947. Bibcode: 2009SchpJ...4.5947H. doi:10.4249/scholarpedia.5947.  ^ Hochreiter, Sepp; Schmidhuber, Jürgen (1997). “Long Short-Term Memory”. Neural Computation 9 (8): 1735–1780. doi:10.1162/neco.1997.9.8.1735. PMID 9377276.  ^ Ribeiro, Antônio H.; Tiels, Koen; Aguirre, Luis A.; Schön, Thomas B. (2020-08-26). “Beyond exploding and vanishing gradients: analysing RNN training using attractors and smoothness” (English). Proceedings of the Twenty Third International Conference on Artificial Intelligence and Statistics, PMLR: 2371. https://research.tue.nl/en/publications/beyond-exploding-and-vanishing-gradients-analysing-rnn-training-u.  ^ Graves, Alex; and Schmidhuber, Jürgen; Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks, in Bengio, Yoshua; Schuurmans, Dale; Lafferty, John; Williams, Chris K. I.; and Culotta, Aron (eds.), Advances in Neural Information Processing Systems 22 (NIPS'22), December 7th–10th, 2009, Vancouver, BC, Neural Information Processing Systems (NIPS) Foundation, 2009, pp. 545–552 ^ Graves, A.; Liwicki, M.; Fernandez, S.; Bertolami, R.; Bunke, H.; Schmidhuber, J. (2009). “A Novel Connectionist System for Improved Unconstrained Handwriting Recognition”. IEEE Transactions on Pattern Analysis and Machine Intelligence 31 (5): 855–868. doi:10.1109/tpami.2008.137. PMID 19299860.  ^ a b He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2016). Deep Residual Learning for Image Recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, NV, USA: IEEE. pp. 770–778. arXiv:1512.03385. doi:10.1109/CVPR.2016.90. ISBN 978-1-4673-8851-1。 ^ a b c Zaeemzadeh, Alireza; Rahnavard, Nazanin; Shah, Mubarak (2021-11-01). “Norm-Preservation: Why Residual Networks Can Become Extremely Deep?”. IEEE Transactions on Pattern Analysis and Machine Intelligence 43 (11): 3980–3990. arXiv:1805.07477. doi:10.1109/TPAMI.2020.2990339. ISSN 0162-8828. https://ieeexplore.ieee.org/document/9079218/.  ^ Veit, Andreas; Wilber, Michael; Belongie, Serge (20 May 2016). "Residual Networks Behave Like Ensembles of Relatively Shallow Networks". arXiv:1605.06431 [cs.CV]。 ^ a b Noel, Mathew Mithra; L, Arunkumar; Trivedi, Advait; Dutta, Praneet (4 September 2021). "Growing Cosine Unit: A Novel Oscillatory Activation Function That Can Speedup Training and Reduce Parameters in Convolutional Neural Networks". arXiv:2108.12943 [cs.LG]。 ^ Glorot, Xavier; Bordes, Antoine; Bengio, Yoshua (2011-06-14). “Deep Sparse Rectifier Neural Networks” (英語). PMLR: 315–323. http://proceedings.mlr.press/v15/glorot11a.html.  ^ LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey (2015). “Deep learning”. Nature 521 (7553): 436–444. Bibcode: 2015Natur.521..436L. doi:10.1038/nature14539. PMID 26017442.  ^ Ramachandran, Prajit; Barret, Zoph; Quoc, V. Le (16 October 2017). "Searching for Activation Functions". arXiv:1710.05941 [cs.NE]。 ^ Noel, Matthew Mithra; Bharadwaj, Shubham; Muthiah-Nakarajan, Venkataraman; Dutta, Praneet; Amali, Geraldine Bessie (7 November 2021). "Biologically Inspired Oscillating Activation Functions Can Bridge the Performance Gap between Biological and Artificial Neurons". arXiv:2111.04020 [cs.NE]。 ^ a b Balduzzi, David; Frean, Marcus; Leary, Lennox; Lewis, J P; Ma, Kurt Wan-Duo; McWilliams, Brian (2017-08-06). “The shattered gradients problem: if resnets are the answer, then what is the question?”. Proceedings of the 34th International Conference on Machine Learning - Volume 70 (Sydney, NSW, Australia: JMLR.org): 344. doi:10.5555/3305381.3305417. https://dl.acm.org/doi/10.5555/3305381.3305417.  ^ Glorot & Bengio 2010. ^ He et al. 2015. ^ Glorot & Bengio 2010, p. 251, 253. ^ He et al. 2015, p. 1030. ^ He et al. 2015, p. 1029, 1030. ^ Bjorck et al. 2018, p. 7705. ^ Bjorck et al. 2018, p. 7705-7706. ^ Santurkar et al. 2018, p. 2488-2489. ^ Ioffe, Sergey; Szegedy, Christian (2015-07-06). “Batch normalization: accelerating deep network training by reducing internal covariate shift”. Proceedings of the 32nd International Conference on International Conference on Machine Learning - Volume 37 (Lille, France: JMLR.org): 449，455. doi:10.5555/3045118.3045167. https://dl.acm.org/doi/10.5555/3045118.3045167.  ^ Santurkar et al. 2018, p. 2492-2493. ^ Bjorck et al. 2018, p. 7709-7710. ^ a b Schmidhuber, Jürgen (2015). “Deep learning in neural networks: An overview”. Neural Networks 61: 85–117. arXiv:1404.7828. doi:10.1016/j.neunet.2014.09.003. PMID 25462637.  ^ Sven Behnke (2003). Hierarchical Neural Networks for Image Interpretation.. Lecture Notes in Computer Science. 2766. Springer. http://www.ais.uni-bonn.de/books/LNCS2766.pdf  ^ “Sepp Hochreiter's Fundamental Deep Learning Problem (1991)”. people.idsia.ch. 2017年1月7日閲覧。 Basodi, Sunitha; Ji, Chunyan; Zhang, Haiping; Pan, Yi (2020-09). “Gradient amplification: An efficient way to train deep neural networks”. Big Data Mining and Analytics 3 (3): 196–207. doi:10.26599/BDMA.2020.9020004. ISSN 2096-0654. https://ieeexplore.ieee.org/document/9142152/.  Bjorck, Johan; Gomes, Carla; Selman, Bart; Weinberger, Kilian Q. (2018-12-03). “Understanding batch normalization”. Proceedings of the 32nd International Conference on Neural Information Processing Systems (Red Hook, NY, USA: Curran Associates Inc.): 7705–7716. doi:10.5555/3327757.3327868. https://dl.acm.org/doi/10.5555/3327757.3327868.  Deng, Li (2012-01-01). “Three Classes of Deep Learning Architectures and Their Applications: A Tutorial Survey” (英語). APSIPA Transactions on Signal and Information Processing: 1-28. https://www.microsoft.com/en-us/research/publication/three-classes-of-deep-learning-architectures-and-their-applications-a-tutorial-survey/.  Glorot, Xavier; Bengio, Yoshua (2010-03-31). “Understanding the difficulty of training deep feedforward neural networks” (英語). Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics (JMLR Workshop and Conference Proceedings): 249–256. https://proceedings.mlr.press/v9/glorot10a.html.  He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2015). Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification. pp. 1026–1034. https://openaccess.thecvf.com/content_iccv_2015/html/He_Delving_Deep_into_ICCV_2015_paper.html.  Santurkar, Shibani; Tsipras, Dimitris; Ilyas, Andrew; Mądry, Aleksander (2018-12-03). “How does batch normalization help optimization?”. Proceedings of the 32nd International Conference on Neural Information Processing Systems (Red Hook, NY, USA: Curran Associates Inc.): 2488–2498. doi:10.5555/3327144.3327174. https://dl.acm.org/doi/10.5555/3327144.3327174.  Yang, Lexuan (2020-06-26). “Improvements on Activation Functions in ANN: An Overview” (英語). Management Science and Engineering 14 (1): 53–58. doi:10.3968/11667. ISSN 1913-035X. http://cscanada.net/index.php/mse/article/view/11667.  勾配降下法 深層学習