Как определить оптимальную скорость обучения для градиентного спуска? Я думаю, что я мог бы автоматически настроить его, если функция стоимости возвращает большее значение, чем в предыдущей итерации (алгоритм не будет сходиться), но я не совсем уверен, какое новое значение он должен принимать.
regression
machine-learning
gradient-descent
Валентин Раду
источник
источник
Ответы:
(Годы спустя) найдите метод размера шага Барзилай-Борвейн; У onmyphd.com есть хорошее трехстраничное описание. Автор говорит
но это ужасно для его апплета функции 2d Rosenbrock. Если кто-то использует Barzilai-Borwein, пожалуйста, прокомментируйте.
источник
Ты на правильном пути. Обычный подход состоит в том, чтобы удваивать размер шага всякий раз, когда вы делаете успешный шаг вниз, и вдвое уменьшать размер шага, когда вы случайно зашли «слишком далеко». Конечно, вы можете масштабировать не на 2, а на несколько факторов, но это не имеет большого значения.
Более сложные методы оптимизации, скорее всего, немного ускорят конвергенцию, но если по какой-то причине вам придется развернуть собственное обновление, вышеприведенное привлекательно просто и часто достаточно хорошо.
источник