最適化手法(シラバス 技術16)

学習目標

誤差が小さくなる向きに重みを少しずつ動かす勾配降下法の仕組みと、その弱点を補う改良手法を説明し、学習を効率よく進める工夫やハイパーパラメータの決め方を挙げられるようにします。

要点

勾配降下法の基本

誤差関数の値を小さくするため、勾配(誤差を重みで微分した値)と逆の向きに重みを少しずつ動かす方法です。1回にどれだけ動かすかを決める係数を学習率と呼びます。大きすぎると誤差が振動・発散し、小さすぎると学習がなかなか進みません。

更新に使うデータの量

  • バッチ学習:学習データ全体で勾配を計算して1回更新します。
  • オンライン学習:データを1件ずつ使って更新します。
  • ミニバッチ学習:データを小さな塊(ミニバッチ)に分けて塊ごとに更新します。GPUで並列計算しやすく、ディープラーニングで広く使われます。
  • 確率的勾配降下法(SGD):無作為に選んだ一部のデータ(1件やミニバッチ)で勾配を計算して更新します。

重みの1回の更新をイテレーション、学習データ全体の1周をエポックと呼びます。1,000件をバッチサイズ100で学習すると、1エポックは10イテレーションです。

勾配降下法の落とし穴

誤差が全体で最も小さい点が大域最適解、周りより小さいだけの谷底が局所最適解です。勾配降下法は手近な谷底で止まることがあります。ある方向では谷底、別の方向では山頂になる鞍点でも勾配がほぼ0になり、学習が停滞しやすくなります。

改良された最適化手法

  • モーメンタム:前回までの更新の向きを慣性として加え、振動を抑えます。
  • AdaGrad:パラメータごとに、過去の勾配の2乗の合計の平方根で学習率を割ります。合計は増え続けるので、やがて学習が止まりやすくなります。
  • RMSprop:勾配の2乗を合計ではなく指数移動平均で扱い、学習率が小さくなりすぎるのを防ぎます。
  • AdaDelta:AdaGradの弱点を改善し、学習率の設定も不要にしました。
  • Adam:モーメンタム(勾配の移動平均)とRMSprop(勾配の2乗の移動平均)を組み合わせた手法です。
  • AdaBound・AMSBound:学習率の上限と下限を学習とともに狭め、序盤はAdamのように、終盤はSGDのように振る舞わせます。AdaBoundはAdamを、AMSBoundはAMSGradをもとにしています。

学習の止めどき

早期終了は、検証用データの誤差が下がらなくなった時点で学習を打ち切り、過学習を防ぐ方法です。ただし、モデルの大きさやエポック数を増やすと、テスト誤差がいったん悪化してから再び下がる二重降下現象も知られています。

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

学習率やバッチサイズ、層の数など、学習の前に人が決める設定値をハイパーパラメータと呼びます。グリッドサーチは候補値のすべての組み合わせを試し、ランダムサーチは組み合わせを無作為に選んで試します。効く設定が一部に限られる場合は、同じ試行回数ならランダムサーチのほうが効率よく探せます。

ノーフリーランチの定理は、あらゆる問題で平均すると、どの最適化手法の性能も同じになるという定理です。問題に合わせて手法を選ぶ必要があります。

G検定で問われる深さ

更新式の暗記は不要です。モーメンタム、AdaGrad、RMSprop・AdaDelta、Adam、AdaBound・AMSBoundが、それぞれ前の手法の何を改善したかを説明できること、エポックとイテレーションの関係を計算できることが目安です。

つまずきやすい点

  • エポックは学習データ全体を1周する単位、イテレーションは重みを1回更新する単位で、1エポックのイテレーション数は「データ数 ÷ バッチサイズ」で決まる点
  • AdaGradは学習率が小さくなり続けて学習が止まりやすく、RMSpropやAdaDeltaは過去の勾配の2乗を移動平均で扱ってこれを改善した、という系譜の取り違え
  • 鞍点は勾配がほぼ0でも最適解ではなく、高次元の問題では局所最適解より鞍点で学習が停滞しやすいと指摘されている点
  • ハイパーパラメータは学習で自動的に決まる重みとは別に、学習前に人が決める設定値である点

シラバスのキーワード

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

練習問題

  1. 勾配降下法の改良手法の違い
  2. バッチサイズと更新回数
  3. ハイパーパラメータの探索方法
  4. 勾配降下法の1回の更新
  5. 学習率の大小と学習の挙動
  6. 鞍点と最適解の見分け
ほかの14問
  1. 早期終了の判断基準
  2. 二重降下現象の特徴
  3. ノーフリーランチの定理の含意
  4. バッチ・オンライン学習の比較
  5. 適応的手法の改良の系譜
  6. モーメンタムの更新計算
  7. 学習の停滞への対処
  8. 学習率を減衰させる理由
  9. AdaGradの重みごとの更新量
  10. ハイパーパラメータと重みの区別
  11. 凸な損失関数と最適解
  12. オンライン学習の運用と学習率
  13. ミニバッチの並び順の影響
  14. 学習率と収束・発散の境目

混同しやすい用語

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

出典と作成について

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

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

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

出典

改訂履歴

ディープラーニングの概要の中項目
  1. ニューラルネットワークとディープラーニング
  2. 活性化関数
  3. 誤差関数
  4. 正則化
  5. 誤差逆伝播法
  6. 最適化手法

表示設定

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