borgWarp
#migrated

TensorFlow > tf.train.AdamOptimizer() > デフォルト引数 learning_rate=0.001 (論文の推奨値)

動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.1.0
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)

学習コードv0.1 http://qiita.com/7of9/items/5819f36e78cc4290614e

http://qiita.com/7of9/items/02313f11d2917ed2b040
の続き。

5次元の補間を学習させようとしている。

train_op = slim.learning.create_train_op(loss, tf.train.AdamOptimizer(0.001))

AdamOptimizer()のlearning rateを0.001以外でいろいろ試したが、結局のところ0.001が一番良いlossの減少を示す結果となっている。

以下を見つけた。
Optimizer : 深層学習における勾配法について

Adam
...
以下の式のように重みを更新していきます。パラメータはα=0.001,β1=0.9,β2=0.999,ϵ=$10^{−8}$が論文内で推奨されています。

https://www.tensorflow.org/api_docs/python/tf/train/AdamOptimizer
においては以下のデフォルト引数になっている (論文の推奨値)。

__init__(
    learning_rate=0.001,
    beta1=0.9,
    beta2=0.999,
    epsilon=1e-08,
    use_locking=False,
    name='Adam'
)

learning rateはとりあえずデフォルトを使うことにしよう。

train_op = slim.learning.create_train_op(loss, tf.train.AdamOptimizer())