AdaGrad(Adaptive Gradient Algorithm)は、機械学習の学習において勾配の大きさに応じて学習率を自動調整する最適化アルゴリズムです。過去の勾配の蓄積を利用するため、出現頻度の低い特徴量に対して大きな学習率を割り当て、効率的な学習を可能にします。
アダグラッドとは
一言でいうとAdaGradとは、過去に更新された勾配の履歴を記録し、パラメータごとに最適な学習率を自動で調整してくれる勾配降下法の拡張アルゴリズムです。
詳しく解説
AdaGradの最大の特徴は、パラメータごとに異なる学習率を設定する点にあります。通常の勾配降下法では、すべてのパラメータに対して手動で統一された学習率を設定しますが、ディープラーニングやスパースなデータセットでは、頻繁に出現する特徴量と稀にしか出現しない特徴量が混在します。AdaGradは、過去の勾配の二乗和を計算し、その平方根の逆数に比例して学習率をスケーリングします。これにより、頻出するパラメータの学習率は小さく、稀なパラメータの学習率は大きくなるため、スパースなデータに対して高い効果を発揮します。
具体例・使われ方
自然言語処理における単語の出現頻度分析や、レコメンデーションシステムにおけるスパースなユーザー行動データの学習など、出現頻度に偏りがあるデータを扱う機械学習モデルの訓練で広く利用されてきました。
似た用語との違い
標準的な勾配降下法やSGD(確率的勾配降下法)が固定の学習率を用いるのに対し、AdaGradは過去の勾配の蓄積に基づいて学習率を自動調整する点が異なります。また、後継であるRMSpropやAdamとは異なり、AdaGradは過去のすべての勾配の二乗を単純に累積するため、学習が進むにつれて学習率が急速にゼロに近づき、学習が事実上停止してしまうという特性があります。
注意点
学習が進むにつれて過去の勾配の累積値が増加し続け、学習率が極端に小さくなってしまうため、訓練の後半で新しい情報を学習できなくなるという重大な限界があります。そのため、現在のディープラーニングの訓練では、この問題を改善したRMSpropやAdamなどの最適化アルゴリズムが選択されることが多くなっています。