G検定 › Web参考書 › 第4章

最適化手法(勾配降下法、SGD、モーメンタム、Adam、学習率、ハイパーパラメータ調整)

第4章 ディープラーニングの概要 / 節 6

シラバスのキーワード: 勾配降下法確率的勾配降下法 (SGD)バッチ学習ミニバッチ学習オンライン学習学習率局所最適解大域最適解鞍点モーメンタムAdaGradRMSpropAdamAdaDeltaAdaBoundAMSBoundエポックイテレーションハイパーパラメータグリッドサーチランダムサーチ早期終了二重降下現象ノーフリーランチの定理

本文を読んだあと、覚えているか確認してください。

勾配降下法

誤差関数の勾配(微分)と逆の方向にパラメータを少しずつ動かして誤差を減らす方法です。1回の更新に使うデータ量で3つに分かれます。

方式 1回の更新に使うデータ 特徴
バッチ学習 全データ 安定するが計算が重い
ミニバッチ学習 数十〜数百件 実務の標準。GPUと相性が良い
オンライン学習(確率的勾配降下法 SGD) 1件 速いが更新が不安定

訓練データ全体を1回使い切る単位がエポック、ミニバッチ1つで1回更新する単位がイテレーションです。10,000件をバッチサイズ100で学習すると、1エポックは100イテレーションです。

学習率と問題点

学習率は1回の更新幅を決めるハイパーパラメータです。大きすぎると振動や発散、小さすぎると収束が遅く、局所最適解(付近では最小だが全体では最小でない点)や鞍点(ある方向には極小、別の方向には極大で勾配がほぼ0の点)に留まりやすくなります。高次元では局所最適解より鞍点の方が学習を停滞させる主因とされます。

改良手法

ハイパーパラメータの調整

学習率、バッチサイズ、層の数、正則化の強さなど人が設定する値がハイパーパラメータです。候補値の全組み合わせを試すグリッドサーチは種類が増えると試行回数が指数的に増えるため、ランダムに組み合わせを試すランダムサーチの方が効率的な場合が多くあります。

その他の重要概念

試験で問われる観点

この節の練習問題(13問)

答えを見る前に選んでから開いてください。同じ問題は章別演習でランダム出題されます。

  1. 問1
    勾配降下法において、パラメータを1回更新するのに用いるデータの量による分類の組み合わせとして正しいものを選びなさい。
    1. 1全データ: オンライン学習、1件ずつ: バッチ学習(確率的勾配降下法)、少数のまとまり: ミニバッチ学習
    2. 2全データ: ミニバッチ学習、1件ずつ: オンライン学習(最急降下法)、少数のまとまり: バッチ学習
    3. 3全データ: バッチ学習、1件ずつ: オンライン学習(確率的勾配降下法)、少数のまとまり: ミニバッチ学習
    4. 4全データ: バッチ学習、1件ずつ: ミニバッチ学習(確率的勾配降下法)、少数のまとまり: オンライン学習
    答えと解説

    正解: 3

    バッチ学習は全訓練データの勾配を平均して1回更新するため安定しますが計算が重く、大規模データでは現実的ではありません。オンライン学習はデータ1件ごとに更新する確率的勾配降下法(SGD)で、計算は軽いものの更新がばらつきます。両者の中間として、数十〜数百件のミニバッチごとに更新するミニバッチ学習が実務の標準です。全データを1周することをエポック、更新1回をイテレーションと呼びます。

  2. 問2
    勾配降下法が抱える問題と、それに対する工夫の説明として最も適切なものを選びなさい。
    1. 1誤差関数が凸でない場合でも、勾配降下法は勾配の符号を追うだけで大域最適解に到達できる。モーメンタムは直前の更新方向を打ち消す方向に補正を加えることで、大域最適解の周辺で更新が振動するのを抑えるために用いられる
    2. 2局所最適解は大域最適解よりも誤差が小さい点であり、勾配降下法はこの局所最適解を目指して更新を進める。鞍点は誤差が最大になる点であるため、勾配が0になっても更新が止まることはなく、モーメンタムのような工夫は不要である
    3. 3誤差関数の形によっては、真の最小値である大域最適解ではなく、局所的なくぼみである局所最適解や、勾配がほぼ0になる鞍点で更新が止まってしまうことがある。学習率を大きくするほどこの停滞は起こらなくなるため、学習率は最初に大きな値に固定しておくのがよい
    4. 4誤差関数の形によっては、真の最小値である大域最適解ではなく、局所的なくぼみである局所最適解や、勾配がほぼ0になる鞍点で更新が止まってしまうことがある。モーメンタムは直前の更新方向を慣性として加えることで、こうした停滞を抜けやすくする
    答えと解説

    正解: 4

    ディープラーニングの誤差関数は複雑な形をしており、勾配が0になる点は最小値(大域最適解)とは限らず、局所最適解や、ある方向には極小・別の方向には極大となる鞍点で学習が停滞することがあります。モーメンタムは過去の勾配の方向を蓄積して更新に加える手法で、谷底での振動を抑え、平坦な領域や鞍点を抜けやすくします。勾配降下法が必ず大域最適解に着く保証はなく、局所最適解が常に良いわけでも、鞍点が最大点でもありません。

  3. 問3
    パラメータごとに学習率を自動調整する最適化手法に関する記述として、最も適切なものを選びなさい。
    1. 1AdaGradは過去の勾配の二乗和で学習率を割るため更新が進むと学習率が小さくなりすぎる問題があり、RMSpropは指数移動平均で最近の勾配を重視して改善した。Adamはこれにモーメンタムを組み合わせた手法で広く使われる
    2. 2RMSpropは過去の勾配の二乗和で学習率を割るため更新が進むと学習率が小さくなりすぎる問題があり、AdaGradは指数移動平均で最近の勾配を重視して改善した。Adamはこれにドロップアウトを組み合わせた手法で広く使われる
    3. 3AdaGradは過去の勾配の二乗和で学習率を割るため更新が進むと学習率が大きくなりすぎて発散する問題があり、RMSpropは学習率を固定して安定させた。Adamはモーメンタムを使わずに学習率を一定に保つ手法である
    4. 4AdaGradはパラメータごとに学習率を固定するためすべてのパラメータが同じ速さで更新され、RMSpropはバッチサイズを自動調整して改善した。Adamは決定木の分岐条件を最適化する手法でニューラルネットワークには使われない
    答えと解説

    正解: 1

    AdaGradはパラメータごとに過去の勾配の二乗和を蓄積し、その平方根で学習率を割ることで、よく更新されるパラメータの学習率を下げます。ただし蓄積が増え続けて学習率がほぼ0になる弱点があり、RMSpropやAdaDeltaは二乗和を指数移動平均に置き換えて改善しました。AdamはRMSpropの適応的学習率にモーメンタムを組み合わせた手法で、現在最も広く使われています。AdaBoundやAMSBoundはAdamの学習率の暴れを抑える改良版です。いずれもニューラルネットワークの勾配降下法の手法です。

  4. 問4
    ハイパーパラメータの説明と、その調整方法の組み合わせとして最も適切なものを選びなさい。
    1. 1正解率やF値、AUCなど、学習後にモデルの性能を測るための値。混同行列から算出し、分類のしきい値を変えながらROC曲線を描いて最適な点を探して調整する
    2. 2学習率や層の数、バッチサイズなど、学習の前に人間が設定する値。候補の全組み合わせを試すグリッドサーチや、ランダムに組み合わせを試すランダムサーチで調整する
    3. 3重みやバイアスなど、誤差逆伝播で学習中に自動的に更新される値。損失関数の勾配に沿って値を動かす勾配降下法や、その改良版であるAdamで調整する
    4. 4学習データの件数や特徴量の数など、データセットの規模を表す値。データ拡張で件数を増やす方法や、主成分分析で特徴量の数を減らす方法で調整する
    答えと解説

    正解: 2

    ハイパーパラメータは学習によって決まるパラメータ(重み)とは異なり、学習率、エポック数、層の数やノード数、バッチサイズ、正則化の強さなど、学習の前に人間が設定する値です。調整には、候補値の全組み合わせを総当たりで試すグリッドサーチ、組み合わせをランダムに試すランダムサーチ(多くの場合グリッドサーチより効率的)、ベイズ最適化などが使われます。重みは学習で更新されるパラメータであり、データ件数や評価指標はハイパーパラメータではありません。

  5. 問5
    モデルの学習と選択に関する用語の説明として、誤っているものを選びなさい。
    1. 1二重降下現象は、モデルの規模やエポック数を増やしていくと、いったん悪化した汎化誤差がさらに増やすと再び下がる現象である
    2. 2ノーフリーランチの定理は、あらゆる問題に対して常に最良となる万能のアルゴリズムは存在しないことを示す
    3. 3早期終了は、訓練データの誤差が0になるまで学習を続けてから止める手法である
    4. 4早期終了は、検証データの誤差が悪化し始めた時点で学習を打ち切ることで過学習を防ぐ手法である
    答えと解説

    正解: 3

    早期終了は、訓練誤差ではなく検証誤差を監視し、それが上昇に転じたところで学習を止める手法です。訓練誤差が0になるまで続けるのは過学習を招きます。二重降下現象は従来の「複雑にしすぎると悪化する」という見方に反して、さらに大規模にすると再び汎化誤差が下がる現象として近年注目されています。ノーフリーランチの定理に関する記述も正しい内容です。

  6. 問6
    勾配降下法における学習率の設定に関する記述として、最も適切なものを選びなさい。
    1. 1学習率が大きいほど1回の更新で進む距離が長くなるため、収束は速く正確になり、発散や振動は学習率とは無関係に起こる
    2. 2学習率は誤差逆伝播によって重みと同時に自動で更新されるパラメータであり、初期値を人が決める必要はない
    3. 3学習率が小さすぎると最適解を飛び越えて発散や振動が起こり、大きすぎると収束が遅く局所最適解から抜け出せなくなる
    4. 4学習率が大きすぎると最適解を飛び越えて発散や振動が起こり、小さすぎると収束が遅く局所最適解から抜け出せなくなる
    答えと解説

    正解: 4

    学習率は1回の更新でパラメータをどれだけ動かすかを決めるハイパーパラメータです。大きすぎると最小値付近で振動したり発散したりし、小さすぎると収束に時間がかかり、途中の局所最適解や鞍点に留まりやすくなります。学習率は人が設定する値で、AdamやAdaGradなどは勾配の履歴に応じて実質的な学習率を調整します。

  7. 問7
    訓練データが10,000件あり、ミニバッチサイズを100として学習する。このとき、1エポックあたりのイテレーション数として正しいものを選びなさい。
    1. 1100
    2. 21,000
    3. 310,000
    4. 41
    答えと解説

    正解: 1

    エポックは訓練データ全体を1回学習に使い切る単位、イテレーションはミニバッチ1つでパラメータを1回更新する単位です。10,000件を100件ずつのミニバッチに分けると100個のバッチになるので、1エポックは100イテレーションに相当します。

  8. 問8
    早期終了(early stopping)の説明として、最も適切なものを選びなさい。
    1. 1学習中に検証データの誤差を監視し、誤差が下がり続けている間に学習を打ち切ることで、モデルを最も単純な状態に保つ
    2. 2学習中に検証データの誤差を監視し、誤差が下げ止まって上昇に転じた時点で学習を打ち切ることで過学習を防ぐ
    3. 3学習中に訓練データの誤差を監視し、誤差が0になった時点で学習を打ち切ることで、それ以降の余分な計算を省く
    4. 4学習開始から一定のエポック数が経過した時点で、誤差の推移にかかわらず学習を打ち切ることで計算時間を短縮する
    答えと解説

    正解: 2

    早期終了は、エポックを重ねるうちに訓練誤差は下がり続けても検証誤差が上昇に転じる(過学習が始まる)点を検出し、そこで学習を止める正則化の手法です。ジェフリー・ヒントンは「美しいフリーランチ」と表現しました。訓練誤差が0になるまで待つのは過学習を招き、時間や最初のエポックで機械的に止めるのは早期終了ではありません。

  9. 問9
    勾配降下法において「鞍点」が問題になる理由として、最も適切なものを選びなさい。
    1. 1鞍点は訓練データの誤差関数にしか現れず検証データでは現れないため、鞍点に到達したモデルは訓練誤差と検証誤差が大きく乖離する
    2. 2鞍点は誤差関数の大域最適解であり、そこに到達すると勾配が0になって学習が完了したと判断され、それ以上の探索が行われなくなる
    3. 3鞍点ではある方向には極小、別の方向には極大になっており、勾配がほぼ0になるため、最適解でないのに学習が停滞する
    4. 4鞍点ではすべての方向で勾配が無限大に発散するため、パラメータの更新幅が急激に大きくなり、学習が不安定になって発散する
    答えと解説

    正解: 3

    鞍点は馬の鞍のように、ある方向から見ると谷底、別の方向から見ると峰になっている点で、勾配がほぼ0になるため学習が止まったように見えます。高次元のパラメータ空間では局所最適解よりも鞍点の方が多く現れるとされ、モーメンタムやAdamなどの手法は慣性や適応的な学習率によって鞍点からの脱出を助けます。鞍点は大域最適解ではなく、勾配が発散する点でもありません。

  10. 問10
    学習率、バッチサイズ、正則化の強さ、層の数など6種類のハイパーパラメータを調整したいが、1回の学習に数時間かかるため試行回数を絞りたい。この状況でグリッドサーチよりも有利とされる方法と、その理由の組み合わせとして最も適切なものを選びなさい。
    1. 1グリッドサーチの候補値を増やす:格子を細かくすれば影響の大きいパラメータの最適値も格子上に含まれ、試行回数を減らしても精度が下がらない
    2. 2ハイパーパラメータを1つずつ順番に固定する:先に決めたパラメータの影響を後のパラメータが受けないため、6種類の探索を独立に扱える
    3. 3訓練データで最も誤差が小さくなる組み合わせを選ぶ:検証データを分ける必要がなくなるため、1回の学習に使えるデータが増えて試行回数も減らせる
    4. 4ランダムサーチ:各ハイパーパラメータをランダムに組み合わせて試すため、影響の大きいパラメータについて多様な値を効率よく試せる
    答えと解説

    正解: 4

    グリッドサーチは候補値の全組み合わせを試すため、パラメータの種類が増えると試行回数が指数的に増えます。ランダムサーチは限られた試行回数の中で各パラメータの多様な値を試せるため、影響の大きい少数のパラメータが精度を左右する場合に効率的です。候補を細かくすると試行回数がさらに増え、固定や訓練データだけでの選択は適切な調整になりません。

  11. 問11
    Adamの学習率に上限と下限を設け、学習の終盤には確率的勾配降下法(SGD)に近い挙動になるようにした最適化手法として、最も適切なものを選びなさい。
    1. 1AdaGrad
    2. 2RMSprop
    3. 3AdaBound
    4. 4モーメンタム
    答えと解説

    正解: 3

    AdaBoundやAMSBoundは、Adamの学習率に上下限を設けて、終盤はSGDに近い挙動にする手法です。AdaGradは過去の勾配の二乗和で学習率を割る手法、RMSpropはAdaGradの学習率の低下を過去の勾配を指数的に減衰させて緩和した手法、モーメンタムは前回の更新方向を慣性として加える手法です。

  12. 問12
    ニューラルネットワークの学習で、エポックごとの訓練誤差が下がらずに大きく上下し、ときには発散してしまう。最初に見直す設定として最も適切なものを選びなさい。
    1. 1学習率を大きくする
    2. 2エポック数を増やす
    3. 3隠れ層の数を増やす
    4. 4学習率を小さくする
    答えと解説

    正解: 4

    学習率が大きすぎると1回の更新幅が大きくなり、誤差が小さくなる点を飛び越えて振動したり発散したりします。学習率を小さくすれば更新が安定します。学習率を大きくすると症状は悪化し、エポック数や隠れ層の数を増やしても更新幅の問題は解消しません。

  13. 問13
    ある案件で高い精度が出たモデルと最適化手法の組み合わせを、今後はどの案件にもそのまま使うべきだという意見が出た。この意見を検討する上で最も関係の深い考え方を選びなさい。
    1. 1二重降下現象
    2. 2ノーフリーランチの定理
    3. 3オッカムの剃刀
    4. 4赤池情報量規準(AIC)
    答えと解説

    正解: 2

    ノーフリーランチの定理は、あらゆる問題に対して最良となるモデルや手法は存在しないことを示しており、ある案件で良かった組み合わせが別の案件でも最良とは限りません。二重降下現象はモデルを大きくすると汎化誤差が再び改善する現象、オッカムの剃刀は同じ説明力なら単純な仮説を選ぶ考え方、AICは当てはまりの良さにパラメータ数の罰則を加えてモデルを選ぶ指標です。