Большой шаг обучения приводит к полной неработоспособности градиентного спуска -- мы можем прийти к росту функции ошибки. Маленький шаг обучения приводит к медленному обучению. Гибкий подбор шага обучения позволяет иметь достаточно большой шаг, чтобы обучение шло быстро, но не срывалось в неработоспособную зону алгоритма. В идеальном случае шаг подбирается динамически, уменьшаясь по мере приближения к искомому минимуму. AdaGrad Размер шага делится на корень из константы + суммы квадратов предыдущих градиентов (причём по каждой оси градиент считается независимо и шаг тоже получатся независимым). Таким образом, чем дальше мы уже прошли, тем меньше будет каждый следующий шаг. Проблема метода в том, что мы можем ещё недостаточно близко подойти к минимуму, а размер шага уже становится слишком маленьким. RMSprop Аналогичная идея, но мы считаем не сумму, а экспоненциальное среднее предыдущих шаг (с типичным весом накопленных даныных в 0.9). Здесь нет проблемы с уменьшением шага, но по логике вещей может быть обратная проблема: около минимума (где градиенты маленькие) ему захочется делать большие шаги. Ещё больше здесь https://habr.com/post/318970/ (AdaGrad и далее)