Метод градиентного спуска

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: == Постановка задачи == Рассмотрим задачу поиска минимума функции <tex>f(x): \mathbb{R}^n \to \mathbb{R} </tex>, записываем...)
Строка 23: Строка 23:
# Повторять:
# Повторять:
-
# <tex>x^{[j+1]}=x^{[j]}-\lambda^{[j]}\nabla f(x^{[j]}) </tex>, где <tex>\lambda^{[j]}=\arg\min_{\lambda} \,f(x^{[j]}-\lambda \nabla f(x^{[j]})) </tex>
+
# <tex>x^{[j+1]}=x^{[j]}-\lambda^{[j]}\nabla f(x^{[j]}) </tex>, где <tex>\lambda^{[j]}=\arg\min_{\lambda} \,f(x^{[j]}-\lambda \nabla f(x^{[j]})) </tex> или другой метод выбора <tex>\lambda^{[j]}</tex>
# если выполен критерий останова, то возвращаем текущее значение <tex>x^{[j+1]}</tex>
# если выполен критерий останова, то возвращаем текущее значение <tex>x^{[j+1]}</tex>

Версия 22:18, 18 ноября 2008

Содержание

Постановка задачи

Рассмотрим задачу поиска минимума функции f(x): \mathbb{R}^n \to \mathbb{R} , записываемую в виде:

(1)
f(x) \to \min_{x \in \mathbb{R}^n}

Метод градиентного спуска

Идея метода

Основная идея метода заключается в том, чтобы идти в направлении наискорейшего спуска, а это направление задаётся антиградиентом -\nabla f:

x^{[j+1]}=x^{[j]}-\lambda^{[j]}\nabla f(x^{[j]})

где \lambda^{[j]} выбирается

  • постоянной, в этом случае метод может расходиться;
  • дробным шагом, т.е. длина шага в процессе спуска делится на некое число;
  • наискорейшим спуском: \lambda^{[j]}=\arg \min_{\lambda} \,f(x^{[j]}-\lambda\nabla f(x^{[j]})) \!

Алгоритм

Вход: функция f: \mathbb{R}^n \to \mathbb{R}

Выход: найденная точка оптимума x

  1. Повторять:
  2. x^{[j+1]}=x^{[j]}-\lambda^{[j]}\nabla f(x^{[j]}) , где \lambda^{[j]}=\arg\min_{\lambda} \,f(x^{[j]}-\lambda \nabla f(x^{[j]})) или другой метод выбора \lambda^{[j]}
  3. если выполен критерий останова, то возвращаем текущее значение x^{[j+1]}

Критерий останова

Критерии остановки процесса приближенного нахождения минимума могут быть основаны на различных соображениях. Некоторые из них:

  1. ||x^{[k+1]}-x^{[k]}||\leq\eps
  2. ||f(x^{[k+1]})-f(x^{[k]})||\leq\eps

Здеcь x^{[k]} \in \mathbb{R}^n - значение, полученное после k-го шага оптимизации. \eps - наперед заданное положительное число.

Сходимость метода

Числовые примеры

Рекомендации программисту

Заключение

Ссылки

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков.  Численные методы. Лаборатория Базовых Знаний, 2003.
  • Н.Н.Калиткин.  Численные методы. Москва «Наука», 1978.
Личные инструменты