AdaGradとは

アダグラッドAdaGrad (adaptive gradient)別名 Adagrad

1行定義

AdaGradとは、パラメータごとに過去の勾配の二乗を足し合わせ、その値が大きいパラメータほど学習率を小さくして更新する最適化手法のことです。

くわしく

AdaGradは、デュチらが2011年の論文で示した最適化手法です。名前はadaptive gradient(適応的な勾配)に由来します。確率的勾配降下法(SGD)ではすべてのパラメータに同じ学習率を使いますが、AdaGradはパラメータごとに学習率を自動で調整します。

更新のしかた

パラメータごとに、これまでの勾配gの二乗を足し続けた値hを記録し、次のように更新します。

h ← h + g²

θ ← θ − η × g / √h

ηは学習率です。実際には0で割らないよう、分母に小さな値を足します。過去に大きな勾配を何度も受けたパラメータほどhが大きくなり、実質的な学習率η / √hは小さくなります。逆に、勾配がまれにしか生じないパラメータは、学習率が大きめに保たれます。

何がうれしいのか

自然言語処理などで扱う疎なデータでは、多くの特徴量がたまにしか現れません。普通のSGDでは、こうした特徴量の重みはめったに更新されず、学習が進みにくくなります。AdaGradなら、まれな特徴量にも大きめの幅で学習させられます。パラメータごとの学習率を手で調整する手間も減ります。

弱点

hは勾配の二乗を足し続けるだけなので、学習が進むほど大きくなる一方です。そのため、実質的な学習率は小さくなり続け、やがてほとんど0になります。深いニューラルネットワークの学習では、よい解にたどり着く前に更新が止まってしまうことがあります。

後継の手法

この弱点を和らげる改良が続きました。

  • RMSprop:勾配の二乗を単純に足すのではなく、指数移動平均をとって古い勾配の影響を徐々に薄めます。
  • AdaDelta:RMSpropと同じく移動平均を使い、さらに過去の更新量も使うことで、学習率の設定を不要にしました。
  • Adam:RMSpropの考え方に、モーメンタムを組み合わせました。

覚え方

「AdaGradは足すだけで忘れない。だから歩幅が縮み続ける」と覚えます。

G検定での出題

勾配の二乗を累積してパラメータごとに学習率を調整する仕組み、学習が進むと学習率が0に近づいて更新が止まる弱点、それを改良したRMSprop・AdaDelta・Adamとの関係が問われます。

混同しやすい用語

用語意味
RMSprop勾配の2乗の指数移動平均をパラメータごとに記録し、その平方根で勾配を割って更新の大きさを調整する最適化手法

◯×チェック

  1. AdaGradでは、これまでに大きな勾配を何度も受けたパラメータほど、実質的な学習率が小さくなる。

    答えを見る

    答え ◯ 正しい

    学習率を、過去の勾配の二乗の累積の平方根で割るためです。累積が大きいパラメータほど慎重に動かします。

  2. AdaGradは、学習が進むにつれて学習率を自動的に大きくしていくため、学習の終盤ほど重みが大きく動く。

    答えを見る

    答え × 誤り

    逆です。勾配の二乗を足し続けるので分母は大きくなる一方で、実質的な学習率は小さくなり続けます。

  3. AdaGradでは、まれにしか勾配が生じないパラメータの実質的な学習率が相対的に大きく保たれるため、疎なデータの学習に向くとされる。

    答えを見る

    答え ◯ 正しい

    勾配の二乗の累積が小さいままなので、学習率があまり下がりません。めったに現れない特徴量の重みも学習が進みます。

練習問題

AdaGradの問題(3問)
  1. 勾配降下法の改良手法の違い
  2. 適応的手法の改良の系譜
  3. AdaGradの重みごとの更新量

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術16

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習