前回の講座では、ディープラーニングの学習とは、勾配法を利用した探索である。と解説しました。 それはパラメーターをどの方向に動かすかというアプローチであり、実際の学習では内部でいくつものステップに分けて更新している。

学習の3つの枠組み

実際に枠組みを分割してみます。

教師データのうち、一回の学習に利用する教師データの決め方 出力層の重みパラメータの修正値の決め方 何層にも重なったモデルに対して、一つ前の層のパラメーターの修正値の決め方

学習に利用する教師データの決め方

一回の学習に利用する教師データの決め方は3つに分けられます。

バッチ学習

すべての教師データに対して、誤差が少なくなるように関数の勾配を計算する。 計算した勾配によって、モデルのパラメータを

オンライン学習

教師データ一つに対して、誤差が少なく+なるように勾配を計算する。 教師データ分繰り返す。

ミニバッチ学習

教師データを16個や32個といった小さな集合に分割します。 分割した集合に対して、誤差が少なくなるように関数の勾配を計算する。 集合分繰り返す。

バッチ学習を過去問を実戦形式で解くこととすると
オンライン学習は単語帳で繰り返し学習する方法
ミニバッチ学習は小テストで学習する方法
とイメージすることができるでしょう。

出力層の重みパラメータの修正値の決め方

パラメータの決め方は勾配法で行うが、勾配法にも種類がある。

Momentum法

xk+1=xk−η▽f(xk)+αΔxk
前の学習で計算された勾配を慣性力として、今回の勾配に加算する。
計算された勾配に学習率αをかけた値だけ、モデルのパラメータを移動する。
まるで重力に従ってボールが落ちていくかのように移動する。

Nesterovの加速法 NAG法

momentum法の改良版
慣性力のせいで、勾配の向きが崩れてしまうという欠点を修正
慣性力の影響を取り入れた上で、勾配の計算をする。

RMSProp

Momentum法では勾配が少ない場所では慣性力が働くまでに時間がかかるという問題があった。
RMSPropでは現在の傾きの大きさに応じて学習率αを変化させる。
勾配が少ない場所では、学習率が多くなるように学習率が大きくなるので初期の動き出しが早くなる。

Adam

Momentam法とRMSPropを組み合わせた手法
初期の学習はRMSPropが、同じような勾配が続く時はMomentum法が学習を加速させる。
また、Momentum法で慣性力による振動がRMSPropによって吸収される。
今のディープラーニング業界ではスタンダードに使われるパラメータ更新手法。

まとめ

  • 指定したモデルの学習手法は、教師データの決め方・重みパラメータの修正値の決め方・内部の重みの修正値の決め方で分けられる。
  • 教師データの決め方によって、バッチ学習・ミニバッチ学習・オンライン学習に分けられる。
  • パラメーターの修正値を求める勾配法には、Momentum法やNAG法、RMSPropやAdamなど、色々な種類のアルゴリズムが存在する。
  • 内部の重みの損失を前の層に伝える時は誤差逆伝播法を使用する。