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

