G検定 練習問題 #0364・最適化手法

AdaGradの重みごとの更新量

ディープラーニングの概要 › 最適化手法 単一選択 難易度 標準

AdaGradでは、重みごとに勾配の二乗を累積した量hを使い、h←h+g²、w←w−η×g÷√hの式で重みを更新する(gは勾配、ηは学習率、hの初期値は0とし、ゼロ除算を防ぐ微小な値は無視する)。η=0.1で2つの重みw1、w2を学習したところ、1回目と2回目の更新での勾配は、w1が3と4、w2が0.6と0.8であった。2回目の更新でw1とw2が動く量(変化の大きさ)の組み合わせとして、最も適切なものを1つ選べ。

正解と解説を見る

解説

正解 B

この問題の論点:AdaGradの重みごとの更新量

ポイント

AdaGradはこれまでの勾配の二乗和の平方根で学習率を割るため、勾配が大きかった重みほど更新幅が抑えられます。

選択肢ごとの解説

  1. A

    不適切

    学習率×勾配をそのまま使う、通常の勾配降下法の値です(0.1×4=0.4、0.1×0.8=0.08)。AdaGradでは、これを累積した勾配の二乗和の平方根で割るため、値が変わります。

  2. B

    適切 正解

    w1はh=3²+4²=25、√h=5なので0.1×4÷5=0.08です。w2はh=0.6²+0.8²=0.36+0.64=1、√h=1なので0.1×0.8÷1=0.08です。勾配の大きさが5倍違っても、更新量はそろいます。

  3. C

    不適切

    hの平方根ではなく、h自体で割った場合の値です。w1では0.1×4÷25=0.016となります。w2はh=1なので偶然0.08で一致しますが、更新式は√hで割ります。

  4. D

    不適切

    1回目の勾配を累積せず、2回目の勾配の二乗だけをhとした場合の値です(√h=4と0.8で、0.1×4÷4=0.1、0.1×0.8÷0.8=0.1)。AdaGradは1回目の勾配の二乗も足し込むため、√hはw1で5、w2で1になります。

補足

このように、AdaGradは重みごとに実質的な学習率を変えます。勾配がまれにしか生じない重み(出現頻度の低い特徴量に対応する重みなど)は、hが小さいままなので比較的大きく更新されます。一方で、hは学習の間ずっと増え続けるため、どの重みも更新幅がしだいに小さくなり、学習が進まなくなりやすい点が弱点です。RMSpropは、累積の代わりに指数移動平均を使ってこの弱点を緩和します。

試験での狙われ方

更新式に数値を当てはめて追わせる計算や、通常の勾配降下法・RMSpropとの更新幅の違いを比べさせる形が考えられます。

表示設定

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