1. 程式人生 > >學習率衰減 Learning Rate Decay

學習率衰減 Learning Rate Decay

Why should learning rate decay?


      以目前最主流的引數優化演算法Gradient Descent為例,為了讓梯度下降的效能更優,我們需要將學習率設定在一個合適的範圍。具體來說,學習率其實就是演算法的步長,一步走多少決定了很多事情:步子大了,優化效率高,很可能一下越過最優解;相反,步子小了,優化效率低,很可能陷進一個區域性最優解怎麼都走不出來。所以學習率的調整在演算法引數最優的過程中至關重要。

How decay learning rate?


  • exponential_decay:指數衰減
    decayed_learning_rate = learning_rate * decay_rate ^ (global_step / decay_steps)
  • natural_exp_decay:自然指數衰減
    decayed_learning_rate = learning_rate * exp(-decay_rate * global_step)
  • inverse_time_decay:逆時間衰減
    decayed_learning_rate = learning_rate / (1 + decay_rate * global_step / decay_step)
  • polynomial_decay:多項式衰減
    global_step = min(global_step, decay_steps)
    decayed_learning_rate = (learning_rate - end_learning_rate) *(1 - global_step / decay_steps) ^ (power) + end_learning_rate
引數 意義
decayed_learning_rate 衰減後的學習率
learning_rate 初始學習率
decay_rate 衰減率
global_step 當前的step
decay_steps 衰減週期