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

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

Перейти к: навигация, поиск

Содержание

Введение

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

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

В этой статье описан метод покоординатного спуска, решающий поставленную задачу. Также приведена теорема сходимости метода покоординатного спуска.

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

Алгоритм

Рис.1 Иллюстрация метода
Рис.1 Иллюстрация метода

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

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

  1. Инициализация некоторым значением x_0 \in \mathbb{R}^n
  2. повторять:
    • для i=1\dots n
      1. фиксируем значения всех переменных кроме x_i, получая одномерную функцию f(x_i)
      2. проводим одномерную оптимизацию по переменной x_i, любым методом одномерной оптимизации
      3. если выполен критерий останова (варианты описаны ниже), то возвращаем текущее значение x=(x_1,\dots,x_n)

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

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

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

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

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

Рис.2
Рис.2

Легко убедится, что существуют функции, когда метод координатного спуска не приводит даже в локальный оптимум.

Пусть линии уровня образуют истинный овраг (рис.2), когда спуск по любой координате приводит на <<дно>> оврага, а любое движение по следующей координате (пунктирная линия) ведет на подъем. Никакой дальнейший спуск по координатам в данном случае невозможен, хотя минимум еще не достигнут.

Теорема о сходимости метода покоординатного спуска.

Для простоты рассмотрим функцию двух переменных f(x,y). Выберем некоторое начальное приближение (x_0,y_0) и проведем линию уровня через эту точку. Пусть в области G, ограниченной этой линией уровня, выполняются неравенства, означающий положительную определенность квадратичной формы:

f_{xx}''\geq a>0,\; f_{yy}''\geq b>0,\; |f_{xy}''|\leq c,\; ab>c^2.

Тогда спуск по координатам сходится к минимуму из данного начального приближения, причем линейно.

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

Для исследования сходимости метода покоординатного спуска была выбрана функция:

f(x_1,x_2)=(x_1-1)^2+(x_2-1)^2-x_0*x_1.

Начальное приближение - точка (10,10). Использован критерий останова: ||f(x^{[k+1]})-f(x^{[k]})||\leq 10^{-5}

Для решения одномерных задач оптимизации использован метод золотого сечения.

Метод получил точность 1e-8 за 7 итераций.

Отсюда можно сделать вывод, что метод координатного спуска сходится неплохо на примерах, для которых он применим.

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

Возникающую одномерную задачу оптимизации можно решать любым методом одномерной оптимизации, например методом золотого сечения.

Заключение

Метод координатного спуска является простым в реализации методом оптимизации. Главным недостатком метода является его ограниченная применимость.

Ссылки


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

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