6_5 optimizer : 最適化アルゴリズム

optimizerプロパティに指定する値は最適化アルゴリズムと呼ばれます。言い換えると、損失関数を理想的にはゼロにするための算出方法を指定します。

これまで見てきた損失値のグラフでは、値がうまく減少していきましたが、そこでは、数学的な面の谷底を目指して下る、下図のようなことが行われています。

モデルが図のMの位置に立っているとします。しかしこの高度に数学的な世界は真っ暗なので、モデルは自分の足裏の感覚を頼りに、どの方向が低い方向かを探り、少しずつ移動していきます。

最適化アルゴリズムとしてはSGD(確率的勾配降下法)が広く使用されます。TensofFlow.jsでは、tf.train.sgd()関数がこれに当たります。tf.train.adam()やtf.train.rmsprop()などはtf.train.sgd()の異種です。

たとえば「5_2_3 TensofFlow.jsのモデルの作成と訓練」で見たモデルでは、初め試したtf.train.sgdでは損失値はうまく減らず、tf.train.rmspropに変えてうまくいくようになりました。したがって、optimizerプロパティにどれを指定するかも、モデルの有効性を決める大切な要素だと言えます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA