Trong hầu hết các mã Tensorflow tôi đã thấy Adam Tối ưu hóa được sử dụng với Tỷ lệ học tập không đổi là 1e-4
(tức là 0,0001). Mã thường trông như sau:
...build the model...
# Add the optimizer
train_op = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
# Add the ops to initialize variables. These will include
# the optimizer slots added by AdamOptimizer().
init_op = tf.initialize_all_variables()
# launch the graph in a session
sess = tf.Session()
# Actually intialize the variables
sess.run(init_op)
# now train your model
for ...:
sess.run(train_op)
Tôi tự hỏi, liệu có hữu ích khi sử dụng phân rã theo cấp số nhân khi sử dụng trình tối ưu hóa adam hay không, tức là sử dụng Mã sau:
...build the model...
# Add the optimizer
step = tf.Variable(0, trainable=False)
rate = tf.train.exponential_decay(0.15, step, 1, 0.9999)
optimizer = tf.train.AdamOptimizer(rate).minimize(cross_entropy, global_step=step)
# Add the ops to initialize variables. These will include
# the optimizer slots added by AdamOptimizer().
init_op = tf.initialize_all_variables()
# launch the graph in a session
sess = tf.Session()
# Actually intialize the variables
sess.run(init_op)
# now train your model
for ...:
sess.run(train_op)
Thông thường, mọi người sử dụng một số loại phân rã tỷ lệ học tập, đối với Adam có vẻ không phổ biến. Có bất kỳ lý do lý thuyết cho việc này? Nó có thể hữu ích để kết hợp tối ưu hóa Adam với sâu răng?
global_step
tham số của minimize
. Xem chỉnh sửa.
1e-4
= 0.0001
, không 0.0004
.