【DS検定対策】パラメータごとに学習率を自動調整!「AdaGrad」の仕組み
ディープラーニングの学習において、すべてのパラメータに同じ「学習率」を使い続けるのは効率が悪い場合があります。そこで、過去の勾配の大きさに応じて「パラメータごとに個別の学習率を自動で更新・調整する」仕組みを持った最適化手法が「AdaGrad(アダグラッド)」です!
1. 【 問題 】
ニューラルネットワークの最適化アルゴリズムにおいて、これまでの学習で得られた勾配の二乗和を蓄積し、それを利用してパラメータごとに学習率を自動的に小さく調整しながら最適化を行う手法を何と呼ぶでしょうか?
① AdaGrad(Adaptive Gradient Algorithm)
② モーメンタム(Momentum)
③ 確率的勾配降下法(SGD)
④ バッチ正規化(Batch Normalization)
2. 【 解答 】
3. 整理:AdaGradの仕組みと画期的なポイント
通常のSGDでは固定だった「学習率」を、パラメータごとにどう変化させるのかを整理しましょう。
| 項目の特徴 | 内容と動作 |
|---|---|
| 勾配の二乗和の蓄積 | これまでに発生した勾配(の二乗)をすべて足し算して記憶していきます。たくさん大きく動いたパラメータほど、蓄積値が大きくなります。 |
| 学習率の自動調整 (適応的学習率) |
分母に「勾配の二乗和の平方根」を置くことで、大きく激しく動いたパラメータの学習率は自動的に小さく(ブレーキ)なり、あまり動いていないパラメータの学習率は相対的に大きく(アクセル)なります。 |
4. AdaGradのメリットと「致命的な弱点」
・自分で学習率を手動で細かくチューニングしなくても、パラメータごとに最適なペースで効率よく学習が進みます。
【 致命的な弱点(学習の停滞) 】
・過去の勾配の二乗和を「ずっと無限に足し続け」ていくため、学習が進めば進むほど分母(過去の蓄積)がどんどん巨大になります。
・その結果、学習率が実質的にゼロに近づき、途中で学習が完全に止まってしまう(動かなくなる)という弱点があります。(※この弱点を解決したのが RMSprop や Adam です!)
5. DS検定形式:実戦4択クイズ
問:ディープラーニングの最適化アルゴリズムである「AdaGrad」に関する記述として、最も適切なものはどれか。
① 過去のすべての勾配の二乗和を分母に蓄積し、パラメータごとに個別の学習率を自動調整して最適化を行う手法である。
② 物理の慣性(運動量)の概念を取り入れ、前回のパラメータ更新の方向と勢いを次の更新に引き継ぐ手法である。
③ ミニバッチごとにデータの平均と分散を計算し、強制的にデータを標準化して勾配消失を防ぐ手法である。
④ ネットワークの過学習を防止するために、ランダムに一部のニューロンの結合を遮断しながら学習を進める手法である。
【 正解: ① 】
解説: AdaGradの定義と特徴を問う標準問題です。
①が正解です。勾配の二乗和を蓄積し、パラメータごとの学習率を自動調整します。
②は「モーメンタム」の説明です。
③は「バッチ正規化」の説明です。
④は「ドロップアウト」の説明です。
6. まとめ
DS検定や資格試験で「パラメータごとの学習率の自動調整」「過去の勾配の二乗和を蓄積」「学習が途中で止まってしまうリスク」といったキーワードが出たら、正解は「AdaGrad」です! 先ほどのモーメンタム(慣性)とあわせて、最適化アルゴリズムの代表例としてしっかり押さえておきましょう!