Я пытаюсь автоматизировать процесс снижения скорости обучения нейронной сети. Я хотел бы написать функцию, которая вызывается, если потери нейронной сети не уменьшаются в течение n эпох.
Эта функция будет принимать текущую скорость обучения в качестве параметра, а затем будет уменьшать ее на 0,1, 0,01, 0,001 и т. Д., В зависимости от ее текущего значения (количества значащих цифр, которые она имеет в настоящее время). Это дало бы паттерн распада 0,2 -> 0,1 -> 0,09 -> 0,08 -> ... -> 0,02 -> 0,01 -> 0,009
В качестве ориентира у меня в настоящее время скорость обучения снижается, как показано ниже, начиная с 0,1:
def decayLearningRate(learningRate):
return learningRate ** 2
Однако эти прыжки слишком велики. Какой элегантный способ добиться того, что я предложил?
Примечание. Скорость обучения всегда начинается с 0,1 или менее.