Участник:Slimper/Песочница
Материал из MachineLearning.
Строка 1: | Строка 1: | ||
==Постановка задачи оптимизации== | ==Постановка задачи оптимизации== | ||
Пусть задано множество <tex> X \subset R^n </tex> и на этом множестве определена ''целевая функция'' (''objective function'') <tex>f : R^n \mapsto R</tex>. Задача оптимизации состоит в нахождении на множестве <tex>X</tex> точной верхней или точной нижней грани ''целевой функции''. | Пусть задано множество <tex> X \subset R^n </tex> и на этом множестве определена ''целевая функция'' (''objective function'') <tex>f : R^n \mapsto R</tex>. Задача оптимизации состоит в нахождении на множестве <tex>X</tex> точной верхней или точной нижней грани ''целевой функции''. | ||
- | Множество точек, на которых достигается нижняя грань целевой функции обозначается <tex>X_* </tex>. <br/> | + | Множество точек, на которых достигается нижняя грань целевой функции обозначается <tex>X_* </tex>. <br/> |
- | <tex>X_* = \{x \in X| f(x) = inf \limits_{x \in X} f(x) \} </tex> | + | ::<tex>X_* = \{x \in X| f(x) = inf \limits_{x \in X} f(x) \} </tex> |
<br/> | <br/> | ||
Если <tex> X = R^n </tex>, то задача оптимизации называется ''безусловной'' (''unconstrained''). | Если <tex> X = R^n </tex>, то задача оптимизации называется ''безусловной'' (''unconstrained''). | ||
Строка 8: | Строка 8: | ||
==Метод сопряжённых направлений== | ==Метод сопряжённых направлений== | ||
- | ''Метод сопряжённых направлений'' (''conjugate direction method'') первоначально был разработан для решения систем линейных уравнений с положительно определённой матрицей. Позже этот метод обобщили для решения безусловных задач оптимизации в <tex>R^n</tex> | + | ''Метод сопряжённых направлений'' (''conjugate direction method'') первоначально был разработан для решения систем линейных уравнений с положительно определённой матрицей. Позже этот метод обобщили для решения безусловных задач оптимизации в <tex>R^n</tex> |
- | == | + | ==Линейный метод сопряжённых градиентов == |
- | Рассмотрим сначала метод сопряжённых градиентов для решения следующей задачи оптимизации: | + | === Изложение метода === |
- | <tex> | + | Рассмотрим сначала метод сопряжённых градиентов для решения следующей задачи оптимизации: <br/> |
- | <tex>A</tex> - симметричная положительно определённая матрица размера <tex>n \times n</tex>. | + | <tex>F(x) = \frac{1}{2}<Ax, x> - <b, x> \to inf, \quad x \in R^n</tex> <br/> |
- | Такая задача оптимизации называется квадратичной. Функция <tex> | + | Здесь <tex>A</tex> - симметричная положительно определённая матрица размера <tex>n \times n</tex>. |
- | <tex> Ax = b</tex> | + | Такая задача оптимизации называется квадратичной. |
- | === Общий случай === | + | Заметим, что <tex>F'(x) = Ax - b</tex>. Условие экстремума функции <tex>F'(x) = 0</tex> эквивалентно системе <tex> Ax - b = 0</tex> |
+ | Функция <tex>F</tex> достигает своей нижней грани в единственной точке <tex>x_*</tex>, определяемой уравнением <tex> Ax_* = b</tex> . Таким образом, данная задача оптимизации сводится к решению системы линейных уравнений <tex> Ax = b</tex> <br/> | ||
+ | Идея метода сопряжённых градиентов состоит в следующем: <br/> | ||
+ | Пусть <tex> \{p_k \} _{k = 1}^n </tex> - базис в <tex>R^n </tex> . Тогда для любой точки <tex> x_0 \in R^n </tex> вектор <tex>x_* - x_0</tex> раскладывается по базису <tex>x_* - x_0 = \alpha_1 p_1 + \dots \alpha_n p_n </tex> | ||
+ | Таким образом, <tex>x_*</tex> представимо в виде <br/> | ||
+ | ::<tex>x_* = x_0 + \alpha_1 p_1 + \dots \alpha_n p_n </tex> | ||
+ | |||
+ | Каждое следующее приближение вычисляется по формуле: <br/> | ||
+ | ::<tex>x_k = x_0 + \alpha_1 p_1 + \dots \alpha_n p_k </tex> <br/> | ||
+ | Два вектора <tex>p</tex> и <tex>q</tex> называются ''сопряжёнными'' относительно симметричной матрицы B, если <tex> <Bp,q> = 0</tex> | ||
+ | |||
+ | Опишем способ построения базиса <tex> \{p_k \}_{k = 1}^n </tex> в методе сопряжённых градиентов | ||
+ | В качестве начального приближения <tex> x_0 </tex> выбираем произвольный вектор. | ||
+ | На каждой итерации <tex>\alpha_k</tex> выбираются по правилу: <br/> | ||
+ | ::<tex>\alpha_k = argmin \limits_{\alpha_k} F(x_{k-1} + \alpha_k p_k)</tex> | ||
+ | <br/> | ||
+ | Базисные вектора <tex> \{p_k \} </tex> вычисляются по формулам: <br/> | ||
+ | <tex> p_1 = -F'(x_0) </tex> | ||
+ | <br/> | ||
+ | <tex> p_{k+1} = - F'(x_{k}) + \beta_{k} p_{k} </tex> | ||
+ | <br/> | ||
+ | Коэффициенты <tex>\beta_k</tex> выбираются так, чтобы векторы <tex>p_k</tex> и <tex>p_{k + 1} </tex>были сопряжёнными относительно А. <br/> | ||
+ | ::<tex>\beta_k = \frac{ <F'(x_{k}), Ap_k>}{Ap_k p_k} </tex> | ||
+ | <br/> | ||
+ | Если обозначить за <tex>r_k = b - Ax_k = -f'(x_{k})</tex> , то после нескольких упрощений получим окончательные формулы, используемые применении метода сопряжённых градиентов на практике: <br/> | ||
+ | ::<tex>r_0 = b - Ax_0</tex> <br/> | ||
+ | ::<tex> p_0 = r_0 </tex> <br/> | ||
+ | <tex> | ||
+ | \begin{equation*} | ||
+ | \alpha_k = \frac{ <r_k, r_k> }{ <Ap_k, p_k> } \\ | ||
+ | x_{k + 1} = x_k + \alpha_k p_k \\ | ||
+ | r_{k + 1} = r_k - \alpha_k Ap_k \\ | ||
+ | \beta_k = \frac{ < r_{k + 1}, r_{k + 1} > }{r_k r_k} \\ | ||
+ | p_{k + 1} = r_{k + 1} + b_k p_k \\ | ||
+ | \end{equation*} | ||
+ | </tex> | ||
+ | === Анализ метода === | ||
+ | ==== Сходимость метода ==== | ||
+ | Если все вычисления точные, и исходные то метод сходится к решению системы не более чем за <tex>m</tex> итераций, где | ||
+ | <tex>m</tex> - число различных собственных значений матрицы A. На практике чаще всего используют следующий критерий останова: | ||
+ | норма погрешности <tex>r_k</tex> становится меньше некоторого заданного порога <tex>r_0</tex>. | ||
+ | ==== Вычислительная сложность ==== | ||
+ | На каждой итерации метода выполняется <tex>O(n^2)</tex> операций. Такое количество операций требуется для вычисления произведения | ||
+ | <tex>Ap_k</tex> - это самая трудоёмкая процедура на каждой итерации. Отальные вычисления требуют O(n) операций. | ||
+ | Суммарная вычислительная сложность метода не превышает <tex>O(n^3)</tex> - так как число итераций не больше n. | ||
+ | == Общий случай == | ||
+ | Расссматриваем задачу <tex>F(x) \to min, \quad x \in R^n </tex>. | ||
+ | <tex>F(x) </tex> - непрерывно дифференцируемая в R^n функция. | ||
+ | Чтобы получить из метода сопряжённых градиентов метод для решения данной задачи, нужно получить для <tex>p_k, \alpha_k, \beta_k </tex> формулы, в кторые не входит матрица А: | ||
+ | ::<tex>\alpha_k = argmin \limits_{\alpha_k} F(x_{k-1} + \alpha_k p_k)</tex> | ||
+ | ::<tex> p_{k+1} = - F'(x_{k}) + \beta_{k} p_{k} </tex> | ||
+ | <tex> \beta_k </tex> можно вычислять по одной из трёх формул: | ||
+ | |||
+ | ::<tex> \beta_k = - \frac{<F'(x_{k + 1} ), F'(x_{k + 1})>}{<F'(x_k), F'(x_k)>} </tex> | ||
+ | ::<tex> \beta_k = \frac{<F'(x_{k + 1}), F'(x_k) - F'(x_{k + 1} )>}{<F'(x_k}), F'(x_k)>} </tex> | ||
+ | ::<tex> \beta_k = \frac{<F''(x_{k+1} )p_{k},F'(x_{k + 1} )>}{<F''(x_{k})p_k, p_k>} </tex> | ||
+ | |||
+ | |||
== Литература == | == Литература == | ||
- | Васильев Ф. П. Методы оптимизации - Издательство «Факториал Пресс», 2002 | + | Васильев Ф. П. Методы оптимизации - Издательство «Факториал Пресс», 2002 <br/> |
Nocedal J., Wright S.J. Numerical Optimization ,Springer, 1999 | Nocedal J., Wright S.J. Numerical Optimization ,Springer, 1999 |
Версия 22:18, 17 ноября 2008
Содержание |
Постановка задачи оптимизации
Пусть задано множество и на этом множестве определена целевая функция (objective function) . Задача оптимизации состоит в нахождении на множестве точной верхней или точной нижней грани целевой функции.
Множество точек, на которых достигается нижняя грань целевой функции обозначается .
Если , то задача оптимизации называется безусловной (unconstrained).
Если , то задача оптимизации называется условной (constrained).
Метод сопряжённых направлений
Метод сопряжённых направлений (conjugate direction method) первоначально был разработан для решения систем линейных уравнений с положительно определённой матрицей. Позже этот метод обобщили для решения безусловных задач оптимизации в
Линейный метод сопряжённых градиентов
Изложение метода
Рассмотрим сначала метод сопряжённых градиентов для решения следующей задачи оптимизации:
Здесь - симметричная положительно определённая матрица размера .
Такая задача оптимизации называется квадратичной.
Заметим, что . Условие экстремума функции эквивалентно системе
Функция достигает своей нижней грани в единственной точке , определяемой уравнением . Таким образом, данная задача оптимизации сводится к решению системы линейных уравнений
Идея метода сопряжённых градиентов состоит в следующем:
Пусть - базис в . Тогда для любой точки вектор раскладывается по базису
Таким образом, представимо в виде
Каждое следующее приближение вычисляется по формуле:
Два вектора и называются сопряжёнными относительно симметричной матрицы B, если
Опишем способ построения базиса в методе сопряжённых градиентов
В качестве начального приближения выбираем произвольный вектор.
На каждой итерации выбираются по правилу:
Базисные вектора вычисляются по формулам:
Коэффициенты выбираются так, чтобы векторы и были сопряжёнными относительно А.
Если обозначить за , то после нескольких упрощений получим окончательные формулы, используемые применении метода сопряжённых градиентов на практике:
Анализ метода
Сходимость метода
Если все вычисления точные, и исходные то метод сходится к решению системы не более чем за итераций, где - число различных собственных значений матрицы A. На практике чаще всего используют следующий критерий останова: норма погрешности становится меньше некоторого заданного порога .
Вычислительная сложность
На каждой итерации метода выполняется операций. Такое количество операций требуется для вычисления произведения - это самая трудоёмкая процедура на каждой итерации. Отальные вычисления требуют O(n) операций. Суммарная вычислительная сложность метода не превышает - так как число итераций не больше n.
Общий случай
Расссматриваем задачу . - непрерывно дифференцируемая в R^n функция. Чтобы получить из метода сопряжённых градиентов метод для решения данной задачи, нужно получить для формулы, в кторые не входит матрица А:
можно вычислять по одной из трёх формул:
Литература
Васильев Ф. П. Методы оптимизации - Издательство «Факториал Пресс», 2002
Nocedal J., Wright S.J. Numerical Optimization ,Springer, 1999