-2

SGDとAdamの学習率を調整しています。まずSGDで試してみます。私は学習率の選択について質問があります。私はまず何を試すべきですか?低い学習か高い学習率?私は高い学習率で試してからスケジューリングで減らすことを提案するいくつかの参考文献を読んでいます。そうですか? アダムにとっては、適応学習率です。アダム法の学習率はしばしばSGD学習率の5〜10倍以下ですか?私たちは何を試してください:低いまたは高い学習率?

+1

は、データセットに依存します。クロスバリデーションを使用して適切な学習率を選択できます。 – Palle

+0

ありがとうございます。問題は時間がかかります。私はトレーニングセットで5科目を持っています。私は訓練のために4つの被験者を使用し、検証のために1つの被験者を使用する。限られたデータセットについては心配しないでください。これは私の仕事です。私は無作為に1つの主題を検証し、残りの4つの主題を訓練し、学習率を選択することによって、相互検証を使用する。毎回、それを完了するために1日を費やさなければなりません。したがって、4回のクロスバリデーションでは、約4日間費やさなければなりません。もう一度学習率を変更してください。クロスバリデーションのヒントはありますか? – user8264

答えて

0

学習率は、データと問題によって異なります。ただし、アダム・オプティマイザは、通常、トレーニング・レートとして学習率を調整するため、より高度なオプティマイザと見なされます。あなたが訓練するときに学習率を調整することは、あなたの訓練セット内の特定の種類のデータに偏見を生じさせずに、局所的な最適性にこだわらないという利点をもたらします。どのライブラリを使用しているのかは分かりませんが、トレーニングや検証をプロットすることは、起こっていることをよりよく理解するために損失を視覚化する価値があります。たとえば、あなたがKerasを使用している場合、これは非常に簡単です...

# Record the Keras history object for plotting 
keras_history_object = model.fit_generator(batch_generator(training_data, batch_size), 
              steps_per_epoch=(len(training_data) * 3)/batch_size, 
              epochs=epochs, 
              verbose=1, 
              validation_data=batch_generator(validation_data, batch_size), 
              validation_steps=(len(validation_data) * 3)/batch_size) 


# Plot the training and validation losses for visualization of this session 
plt.figure(1, figsize=(25, 15)) 
plt.subplot(211) 
plt.plot(keras_history_object.history['loss']) 
plt.plot(keras_history_object.history['val_loss']) 
plt.title(loss) 
plt.ylabel(loss) 
plt.xlabel('Epoch') 
plt.legend(['Training set', 'Validation set'], loc='upper right') 
plt.show() 

enter image description here

関連する問題