https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/train/exponential_decay

 

tf.train.exponential_decay  |  TensorFlow Core r1.15

Applies exponential decay to the learning rate. Aliases: tf.train.exponential_decay( learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None ) When training a model, it is often recommended to lower the learning rate as the training

www.tensorflow.org

 

tf.train.exponential_decay(
    learning_rate
,
    global_step
,
    decay_steps
,
    decay_rate
,
    staircase
=False,
    name
=None
)

 

decayed_learning_rate = learning_rate *
                        decay_rate
^ (global_step / decay_steps)

 

global_step = tf.Variable(0, trainable=False)
starter_learning_rate
= 0.1
learning_rate
= tf.compat.v1.train.exponential_decay(starter_learning_rate,
global_step
,
                                           
100000, 0.96, staircase=True)
# Passing global_step to minimize() will increment it at each step.
learning_step
= (
    tf
.compat.v1.train.GradientDescentOptimizer(learning_rate)
   
.minimize(...my loss..., global_step=global_step)
)

 

예제에서 첫 번째 파라메터로 들어간 starter_learning_rate는 말 그대로 최초 학습시 사용될 learning_rate이다.

두 번째 파라메터로 사용된 global_step은 현재 학습 횟수이다.

세 번째 파라메터는 위 예제에서는 100000이 들어갔는데 총 학습 횟수이다.

네 번째 파라메터는 얼마나 rate가 감소될 것인가를 나타낸다. 매번 0.96이 곱해진다고 생각하면 된다.

다섯 번째 파라메터는 이산적으로 학습 속도 감속 유무이다. 나는 이산적으로라는 말의 정의가 무엇인지 잘 모르겠지만 해당 파라메터가 true일때 decay_rate 즉 4번째 파라메터에 (global_step / decay_steps)의 승수가 적용된다.



출처: https://twinw.tistory.com/243 [흰고래의꿈]

+ Recent posts