Параметры скорости обучения экспоненциального распада оптимизатора Adam в Керасе

#tensorflow #machine-learning #keras #tf.keras

Вопрос:

Рассмотрите следующую информацию:

  • начальная скорость обучения: 0,0002
  • коэффициент затухания: 0,7
  • эфок: 70

Моя проблема состоит в том, чтобы выбрать шаг распада таким образом, чтобы распад происходил каждые две эпохи. Как я могу исправить это в Керасе?

Это формула экспоненциальной скорости обучения с затуханием:

нажмите здесь, чтобы просмотреть изображение

Ответ №1:

Похоже, LearningRateScheduler можно было бы использовать экспоненциальный расчет. Чтобы распадался каждые две эпохи, decay_steps так и должно быть num_steps_per_epoch * 2 . Также укажите staircase параметр True так, чтобы скорость обучения дискретно снижалась.

Что-то вроде этого (я не запускал этот код):

 initial_learning_rate = 0.0002
steps_per_epoch = ...
lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
    initial_learning_rate,
    decay_steps=steps_per_epoch * 2,
    decay_rate=0.7,
    staircase=True)
 

Затем перейдите lr_schedule к Adam использованию learning_rate параметра.

Комментарии:

1. Какое значение вы обычно выбираете для steps_per_epoch?

2. Это зависит от размера набора данных и размера пакета. В своем вопросе вы сказали, что хотите обновлять каждые две эпохи. Итак, допустим, у вас есть 1000 образцов и размер партии 20, тогда эпоха будет 1000/220 = 50 шагов ( steps_per_epoch = 50 ).

3. В моем случае у меня 1905 образцов и размер партии = 32, поэтому steps_per_epoch = 1905/32 = 59,53 => 60 ??

4. Ага. Я думаю, что decay_steps это должно быть целое число, потому staircase что параметр в основном указывает ExponentialDecay расписанию выполнять целочисленное деление в (global_step / decay_steps) части вычисления по вашему изображению. Я бы сдал decay_steps=119 (59,5 * 2).

5. Это должно быть только в том случае, если, например, steps_per_epoch уже не является int, но это ни здесь, ни там. Мой ответ отвечает на ваш вопрос? Если это так, подумайте о том, чтобы отметить его как таковой.