要点まとめ・第4章 ディープラーニングの概要
最適化手法(シラバス 技術16)
学習目標
誤差が小さくなる向きに重みを少しずつ動かす勾配降下法の仕組みと、その弱点を補う改良手法を説明し、学習を効率よく進める工夫やハイパーパラメータの決め方を挙げられるようにします。
要点
勾配降下法の基本
誤差関数の値を小さくするため、勾配(誤差を重みで微分した値)と逆の向きに重みを少しずつ動かす方法です。1回にどれだけ動かすかを決める係数を学習率と呼びます。大きすぎると誤差が振動・発散し、小さすぎると学習がなかなか進みません。
更新に使うデータの量
- バッチ学習:学習データ全体で勾配を計算して1回更新します。
- オンライン学習:データを1件ずつ使って更新します。
- ミニバッチ学習:データを小さな塊(ミニバッチ)に分けて塊ごとに更新します。GPUで並列計算しやすく、ディープラーニングで広く使われます。
- 確率的勾配降下法(SGD):無作為に選んだ一部のデータ(1件やミニバッチ)で勾配を計算して更新します。
重みの1回の更新をイテレーション、学習データ全体の1周をエポックと呼びます。1,000件をバッチサイズ100で学習すると、1エポックは10イテレーションです。
勾配降下法の落とし穴
誤差が全体で最も小さい点が大域最適解、周りより小さいだけの谷底が局所最適解です。勾配降下法は手近な谷底で止まることがあります。ある方向では谷底、別の方向では山頂になる鞍点でも勾配がほぼ0になり、学習が停滞しやすくなります。
改良された最適化手法
- モーメンタム:前回までの更新の向きを慣性として加え、振動を抑えます。
- AdaGrad:パラメータごとに、過去の勾配の2乗の合計の平方根で学習率を割ります。合計は増え続けるので、やがて学習が止まりやすくなります。
- RMSprop:勾配の2乗を合計ではなく指数移動平均で扱い、学習率が小さくなりすぎるのを防ぎます。
- AdaDelta:AdaGradの弱点を改善し、学習率の設定も不要にしました。
- Adam:モーメンタム(勾配の移動平均)とRMSprop(勾配の2乗の移動平均)を組み合わせた手法です。
- AdaBound・AMSBound:学習率の上限と下限を学習とともに狭め、序盤はAdamのように、終盤はSGDのように振る舞わせます。AdaBoundはAdamを、AMSBoundはAMSGradをもとにしています。
学習の止めどき
早期終了は、検証用データの誤差が下がらなくなった時点で学習を打ち切り、過学習を防ぐ方法です。ただし、モデルの大きさやエポック数を増やすと、テスト誤差がいったん悪化してから再び下がる二重降下現象も知られています。
ハイパーパラメータの調整
学習率やバッチサイズ、層の数など、学習の前に人が決める設定値をハイパーパラメータと呼びます。グリッドサーチは候補値のすべての組み合わせを試し、ランダムサーチは組み合わせを無作為に選んで試します。効く設定が一部に限られる場合は、同じ試行回数ならランダムサーチのほうが効率よく探せます。
ノーフリーランチの定理は、あらゆる問題で平均すると、どの最適化手法の性能も同じになるという定理です。問題に合わせて手法を選ぶ必要があります。
つまずきやすい点
- エポックは学習データ全体を1周する単位、イテレーションは重みを1回更新する単位で、1エポックのイテレーション数は「データ数 ÷ バッチサイズ」で決まる点
- AdaGradは学習率が小さくなり続けて学習が止まりやすく、RMSpropやAdaDeltaは過去の勾配の2乗を移動平均で扱ってこれを改善した、という系譜の取り違え
- 鞍点は勾配がほぼ0でも最適解ではなく、高次元の問題では局所最適解より鞍点で学習が停滞しやすいと指摘されている点
- ハイパーパラメータは学習で自動的に決まる重みとは別に、学習前に人が決める設定値である点
シラバスのキーワード
シラバス第1.4版に載っている語をすべて並べています。色のついた語は用語集で解説しています。「2問」などの数字は、その語を扱う練習問題の数です。
- AdaBound 練習問題2問
- AdaDelta 練習問題2問
- AdaGrad 練習問題3問
- Adam 練習問題3問
- AMSBound 練習問題1問
- RMSprop 練習問題3問
- 鞍点 練習問題3問
- イテレーション 練習問題2問
- エポック 練習問題4問
- オンライン学習 練習問題4問
- 学習率 練習問題10問
- 確率的勾配降下法(SGD) 練習問題3問
- グリッドサーチ 練習問題1問
- 勾配降下法 練習問題5問
- 局所最適解 練習問題3問
- 早期終了 練習問題1問
- 大域最適解 練習問題2問
- 二重降下現象 練習問題1問
- ノーフリーランチの定理 練習問題1問
- ハイパーパラメータ 練習問題3問
- バッチ学習 練習問題3問
- ミニバッチ学習 練習問題5問
- モーメンタム 練習問題3問
- ランダムサーチ 練習問題1問
練習問題
- #0044 勾配降下法の改良手法の違い 難易度 標準・単一選択 未回答 付箋
- #0045 バッチサイズと更新回数 難易度 標準・単一選択 未回答 付箋
- #0046 ハイパーパラメータの探索方法 難易度 応用・単一選択 未回答 付箋
- #0169 勾配降下法の1回の更新 難易度 基礎・単一選択 未回答 付箋
- #0170 学習率の大小と学習の挙動 難易度 基礎・組合せ 未回答 付箋
- #0171 鞍点と最適解の見分け 難易度 標準・単一選択 未回答 付箋
- #0172 早期終了の判断基準 難易度 標準・単一選択 未回答 付箋
- #0173 二重降下現象の特徴 難易度 応用・単一選択 未回答 付箋
- #0174 ノーフリーランチの定理の含意 難易度 標準・単一選択 未回答 付箋
- #0175 バッチ・オンライン学習の比較 難易度 基礎・単一選択 未回答 付箋
- #0176 適応的手法の改良の系譜 難易度 応用・穴埋め 未回答 付箋
- #0177 モーメンタムの更新計算 難易度 標準・単一選択 未回答 付箋
- #0178 学習の停滞への対処 難易度 標準・単一選択 未回答 付箋
- #0179 学習率を減衰させる理由 難易度 標準・単一選択 未回答 付箋
- #0364 AdaGradの重みごとの更新量 難易度 標準・単一選択 未回答 付箋
- #0365 ハイパーパラメータと重みの区別 難易度 基礎・単一選択 未回答 付箋
- #0366 凸な損失関数と最適解 難易度 標準・単一選択 未回答 付箋
- #0367 オンライン学習の運用と学習率 難易度 標準・単一選択 未回答 付箋
- #0368 ミニバッチの並び順の影響 難易度 基礎・単一選択 未回答 付箋
- #0369 学習率と収束・発散の境目 難易度 応用・組合せ 未回答 付箋
復習の時期が来た問題と、まだ解いていない問題から順に出題します。
混同しやすい用語
この項目を読み終えたら
読んだ項目にチェックをつけると、学習ガイドの目次に記録されます。
前後の項目
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目16 最適化手法)
- Boris T. Polyak, Some methods of speeding up the convergence of iteration methods, USSR Computational Mathematics and Mathematical Physics 4(5), 1–17 (1964)
- John Duchi, Elad Hazan, Yoram Singer, Adaptive Subgradient Methods for Online Learning and Stochastic Optimization, Journal of Machine Learning Research 12, 2121–2159 (2011)
- Geoffrey Hinton, Nitish Srivastava, Kevin Swersky, Neural Networks for Machine Learning, Lecture 6 slides (rmsprop)
- Matthew D. Zeiler, ADADELTA: An Adaptive Learning Rate Method, arXiv:1212.5701 (2012)
- Diederik P. Kingma, Jimmy Ba, Adam: A Method for Stochastic Optimization, arXiv:1412.6980 (2014)
- Sashank J. Reddi, Satyen Kale, Sanjiv Kumar, On the Convergence of Adam and Beyond, arXiv:1904.09237 (ICLR 2018)
- Liangchen Luo, Yuanhao Xiong, Yan Liu, Xu Sun, Adaptive Gradient Methods with Dynamic Bound of Learning Rate, arXiv:1902.09843 (ICLR 2019)
- Yann Dauphin et al., Identifying and attacking the saddle point problem in high-dimensional non-convex optimization, arXiv:1406.2572 (2014)
- Preetum Nakkiran et al., Deep Double Descent: Where Bigger Models and More Data Hurt, arXiv:1912.02292 (2019)
- Mikhail Belkin, Daniel Hsu, Siyuan Ma, Soumik Mandal, Reconciling modern machine-learning practice and the classical bias–variance trade-off, PNAS 116(32), 15849–15854 (2019)
- David H. Wolpert, William G. Macready, No free lunch theorems for optimization, IEEE Transactions on Evolutionary Computation 1(1), 67–82 (1997)
- James Bergstra, Yoshua Bengio, Random Search for Hyper-Parameter Optimization, Journal of Machine Learning Research 13, 281–305 (2012)