勾配消失問題
勾配消失問題 (こうばいしょうしつもんだい、英: vanishing gradient problem)は、機械学習 において、勾配ベースの学習手法 と誤差逆伝播法 を利用してニューラルネットワーク を学習する際に、誤差逆伝播に必要な勾配 が非常に小さくなり、学習が制御できなくなる問題である[ 1] 。
この問題を解決するために、リカレントニューラルネットワーク ではLSTM と呼ばれる構造が導入されたり、深層のネットワークではResNet と呼ばれる構造が導入される。
また、活性化関数 の勾配が非常に大きな値をとり、発散してしまうこともある。このような問題は、勾配爆発問題 (こうばいばくはつもんだい、英: exploding gradient problem)と呼ばれる。
勾配消失問題の発生
誤差逆伝播法 を用いて学習する場合、ニューラルネットワーク上の各ノードの重みは、学習ステップごとに計算される損失関数 を、自身のノードの重みで偏微分 した勾配に比例して更新される。勾配消失問題 は、この勾配が非常に小さくなることで、ニューラルネットワークの重みが更新されにくくなることによって生じる問題である。最悪の場合には、重みの更新が完全に起こらなくなってしまうこともある。この問題が起こる一例として、双曲線正接関数 (sigmoid関数)のような古典的な活性化函数を用いた場合が挙げられる。誤差逆伝播法では連鎖律 を用いて、ニューラルネットワークの出力層から遡って、各ノードの重みによる損失関数の偏微分が計算される。例として挙げたsigmoid関数は、勾配の値域が(0, 1)であるため、このような場合には、出力層から遠い層、すなわち入力層から見て近い層のノードほど指数的に勾配が小さくなり、結果として学習の進む速度が遅くなる。
誤差逆伝播法の開発により、教師あり学習 で深層ニューラルネットワーク を学習させることができるようになったが、当初はあまりうまくいかなかった[ 5] 。こうした学習の失敗について、Hochreiter (英語版 ) が1991年に発表した学位論文で、その原因が勾配消失問題 にあることを特定した[ 7] [ 8] [ 9] 。勾配消失問題は順伝播型 の多層ニューラルネットワークだけでなく[ 10] 、回帰型ニューラルネットワーク においても生じる[ 11] 。回帰型ニューラルネットワークは学習の際、ネットワークに入力される系列データを処理する時間ステップごとにモデルの複製を追加することで[ 12] 、時間方向に展開された非常に深い順伝播のネットワークと見なして逆伝播を適用することができる[ 13] 。このような学習方法は通時的誤差逆伝播法 (英語版 ) (BPTT法とも)と呼ばれている[ 13] 。
解決手法
Multi-level hierarchy
勾配消失問題を解消するため、様々な手法が提案されている。その一つが、1992年にユルゲン・シュミットフーバー (英語版 ) によって提案されたmulti-level hierarchyと呼ばれる方法である。これは本来学習したいモデルを分割して、それぞれを教師なし学習 を用いて別個に事前学習し、最終的にそれらを接続したものに対し、誤差逆伝播を用いたファインチューニング を行う手法である[ 14] 。
部分モデルそれぞれは、前の階層に相当する部分モデルの出力から次の階層に供給すべき入力の圧縮表現を学習する。
関連するアプローチ
類似する考え方として、教師なし の事前学習をニューラルネットワークに対して行い、一般的に有用な特徴検出器 (英語版 ) を学習するというものがある。その後、ラベル付きデータを用いて教師ありの誤差逆伝播法によりモデルをさらに学習する。
深層信念ネットワーク (英語版 ) (Deep Belief Network, 以下DBN)は、2006年にヒントン らが提案したモデルで、二値 もしくは実数値をとる潜在変数の連続した層によって、高度な特徴表現の分布を学習することができる。DBNは、より高度な特徴表現を獲得するために制限付きボルツマンマシン (英語版 ) を多層に積み重ねたものである。全層を同時に学習するのではなく、入力層と直後の隠れ層に関する制限付きボルツマンマシンを学習し、次に隠れ層の1層目と2層目に関する制限付きボルツマンマシンを学習するといったように、層ごとに学習をするネットワークである。各層の制限付きボルツマンマシンは、入力に対する対数尤度 の下界が増加することを保証するため、学習が適切に進めばモデル全体としても性能が向上することになる。
十分に学習された深層信念ネットワークは、隠れ層の最も深い層[ 注釈 1] から入力層に向けて、各層で値を順にサンプリングしていくことにより、最終的にデータを再生成することができるため、生成モデル として利用することができる[ 18] 。ヒントンは、自身の開発した深層信念ネットワークが高次元の構造化されたデータに対して、有用な特徴抽出器であると報告している[ 19] 。
LSTM
回帰型ニューラルネットワーク で用いられる手法として、長期短期記憶ネットワーク が挙げられる。LSTMは、1997年にホッフライター (英語版 ) とシュミットフーバー (英語版 ) によって提案された[ 20] 。RNNは時間方向に展開することで順伝播型のニューラルネットワークと同様に逆伝播を行うことができる[ 13] が、長時間にわたって展開すると層が深くなり、勾配の誤差が積み重なってしまう可能性がある[ 21] 。一方で、LSTMでは過去の入力特徴を保持する機構を持っているため、時系列が増えても情報の伝達がしやすい。
2009年には、筆記体の文字認識 コンペティションにおいて、認識対象となる3つの異なる言語の事前知識なしに学習を行う深層多次元LSTMを用いたモデルが3度優勝し、非線形の層を多数持つ深層学習の性能の高さを示した[ 22] [ 23] 。
残差ネットワーク(ResNet)
ResNetに含まれるスキップ接続を表す模式図。
勾配消失問題への対策として、比較的新しく有用度も高いのが、2015年に提案された残差ネットワーク (ResNet[ 注釈 2] )である[ 24] 。
ResNetは、ニューラルネットワークの一部に層を飛び越えるような接続を含む構造を持つ[ 25] 。
こうしたスキップ接続により、通常は直後の層の入力にのみ用いられる出力が、より深い層の出力に加えられその先の層に入力されるため、情報が層を超えて伝播するようになることが期待される[ 25] 。スキップ接続は、深層ニューラルネットワークをうまく学習するための重要な要素になっている[ 25] 。
ResNetでは、消失した情報を補完するために浅い層の出力をより深い層に対して単に加えるだけで、通常の浅いネットワークよりも学習時の損失と評価時の損失を抑えることができた[ 24] 。
なお、ResNetは比較的浅いネットワークのアンサンブルとして捉えることができるとされており、ネットワーク全体にわたって勾配情報を保持することで勾配消失の問題を解決しているのではなく、むしろ、多数の短いネットワークをアンサンブルさせることで勾配消失問題を回避しているとする説がある[ 26] 。
活性化関数の変更
Growing Cosine Unit(GCU)活性化関数の例。GCUは飽和しない振動する関数で、GCUを用いることにより多くのベンチマークで学習速度が向上している[ 27] 。
正規化線形関数 (ReLU と表記されることもある)は活性化関数の一つで、入力が正の範囲では単調増大するため、勾配消失の影響を受けにくい[ 28] 。2018年現在、深層学習で広く使われている活性化関数である[ 29] [ 30] 。
単調 でない、飽和しない、振動する、といった性質を持つ活性化関数は、勾配消失問題を緩和するとともに、学習時間の削減にも寄与する[ 31] [ 27] 。振動する活性化関数で、勾配をよく伝播し学習速度を向上させるものの例を、右の図に示している。
学習時の重みの初期値の設定
深層学習モデルの重みパラメータの初期値を適切に設定することにより、勾配消失や爆発といった問題を避けられることが知られている[ 32] 。代表的な初期化手法としては、2010年に提案されたXavielの初期値や、2015年に提案されたHeの初期値などがある。この2つのアプローチは、いずれも入出力のノード数をパラメータに用いた正規分布に従って重みを初期化する[ 注釈 3] ものであり、重みの分散を初期化時に制御することで、各層の活性化関数の出力や勾配の分散が増大、あるいは減少しないようにしている[ 32] 。
バッチノーマライゼーション
ニューラルネットワークの学習において、入力データを正規化 することで学習が進みやすくなることが知られている。
バッチノーマライゼーション (英語版 ) は、この考え方を深層学習モデルの層間に拡張した最適化手法で、途中の層でミニバッチごとの入出力を正規化するものである。バッチノーマライゼーションは2015年に提案された手法で、深層学習モデルでは、入力学習データによって隠れ層への入力の分布が偏っているという内部共変量シフト(internal covariate shift)と呼ばれる問題が生じていると仮定し、この入力の分布の偏りを正規化することで防ぐ狙いがある[ 注釈 4] [ 41] 。
バッチノーマライゼーションは深層学習の学習を安定化させることに寄与しており、その効果の一つとして勾配の消失や発散を防ぐことが報告されており、バッチノーマライゼーションを適用することで、層間の活性化関数の勾配が安定するという結果も実験的に得られている。
処理速度の速いハードウェアの活用
1990年代以降のハードウェアの進展により、コンピュータの演算能力、特にGPU に由来する演算能力は100万倍にも向上しており、勾配消失問題の存在が認識されたころと比べると、数段深いネットワークに対しても誤差逆伝播を用いた計算が普通に処理されるようになっている。シュミットハーバーは2015年の論文で、画像認識のコンペティションで高い性能を収めているものは基本的にこうした深層ネットワークだと述べる一方で、勾配消失問題を根本的に克服できたわけではないとしている[ 44] 。
ヒントン らが2006年に勾配消失問題の解決に取り組んだ研究では、GPUではなくCPU を用いて学習されたモデルが利用されている[ 44] 。
その他
ドイツの計算機科学者であるベーンケは、画像の再構成や顔認識 といった問題を解くために[要出典 ] 、勾配の符号のみを用いてNeural Abstraction Pyramid と呼ばれるネットワークを学習した[ 45] 。
ニューラルネットワークは、ニューラルネットワークの重みが取りうる空間全体を探索するアルゴリズムを用いることでも最適化できる。例えばランダムな探索もここに含まれるし、よりシステマチックなアルゴリズムとしては遺伝的アルゴリズム などもある。こうしたアプローチは勾配によらず最適化を行うため、勾配消失問題を避けることができる[ 46] 。
脚注
注釈
^ 各種文献では、最上層という表現が使われることもある[ 17] 。
^ 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 .
^ 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 .
^ 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.
^ 川上玲「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 .
^ 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 .
^ 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 .
関連項目