Участник:Anton/Песочница
Материал из MachineLearning.
(Различия между версиями)
Строка 6: | Строка 6: | ||
== Метод градиентного спуска == | == Метод градиентного спуска == | ||
- | === | + | === Идея метода === |
+ | Основная идея метода заключается в том, чтобы идти в направлении наискорейшего спуска, а это направление задаётся антиградиентом <tex>-\nabla f</tex>: | ||
+ | |||
+ | <tex>x^{[j+1]}=x^{[j]}-\lambda^{[j]}\nabla f(x^{[j]}) </tex> | ||
+ | |||
+ | где <tex>\lambda^{[j]}</tex> выбирается | ||
+ | *постоянной, в этом случае метод может расходиться; | ||
+ | *дробным шагом, т.е. длина шага в процессе спуска делится на некое число; | ||
+ | *наискорейшим спуском: <tex>\lambda^{[j]}=\arg \min_{\lambda} \,f(x^{[j]}-\lambda\nabla f(x^{[j]})) \!</tex> | ||
+ | |||
+ | === Алгоритм === | ||
'''Вход:''' функция <tex>f: \mathbb{R}^n \to \mathbb{R}</tex> | '''Вход:''' функция <tex>f: \mathbb{R}^n \to \mathbb{R}</tex> | ||
'''Выход:''' найденная точка оптимума <tex>x</tex> | '''Выход:''' найденная точка оптимума <tex>x</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>x^{[j+1]}</tex> | |
- | + | ||
- | # | + | |
- | + | ||
- | + | ||
===Критерий останова=== | ===Критерий останова=== | ||
Критерии остановки процесса приближенного нахождения минимума могут быть основаны на различных соображениях. | Критерии остановки процесса приближенного нахождения минимума могут быть основаны на различных соображениях. | ||
Некоторые из них: | Некоторые из них: | ||
- | # <tex>|| | + | # <tex>||x^{[k+1]}-x^{[k]}||\leq\eps</tex> |
- | # <tex>||f( | + | # <tex>||f(x^{[k+1]})-f(x^{[k]})||\leq\eps</tex> |
- | + | Здеcь <tex>x^{[k]} \in \mathbb{R}^n</tex> - значение, полученное после <tex>k</tex>-го шага оптимизации. | |
+ | <tex>\eps</tex> - наперед заданное положительное число. | ||
===Сходимость метода=== | ===Сходимость метода=== | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
== Числовые примеры == | == Числовые примеры == |
Версия 22:09, 18 ноября 2008
Содержание |
Постановка задачи
Рассмотрим задачу поиска минимума функции , записываемую в виде:
(1)
Метод градиентного спуска
Идея метода
Основная идея метода заключается в том, чтобы идти в направлении наискорейшего спуска, а это направление задаётся антиградиентом :
где выбирается
- постоянной, в этом случае метод может расходиться;
- дробным шагом, т.е. длина шага в процессе спуска делится на некое число;
- наискорейшим спуском:
Алгоритм
Вход: функция
Выход: найденная точка оптимума
- Повторять:
- , где
- если выполен критерий останова, то возвращаем текущее значение
Критерий останова
Критерии остановки процесса приближенного нахождения минимума могут быть основаны на различных соображениях. Некоторые из них:
Здеcь - значение, полученное после -го шага оптимизации. - наперед заданное положительное число.
Сходимость метода
Числовые примеры
Рекомендации программисту
Заключение
Ссылки
Список литературы
- А.А.Самарский, А.В.Гулин. Численные методы. Москва «Наука», 1989.
- Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков. Численные методы. Лаборатория Базовых Знаний, 2003.
- Н.Н.Калиткин. Численные методы. Москва «Наука», 1978.