Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_МО.pdf
Скачиваний:
554
Добавлен:
05.06.2015
Размер:
12.36 Mб
Скачать

процедуру. При этом градиент вычисляется гораздо реже, поскольку это происходит только при смене направлений движения.

5.4. Метод наискорейшего спуска

Данный метод является вариантом градиентного спуска. Здесь также полагают pk = − f (xk ), но величина шага αk из (5.11) находится в результате решения задачи одномерной оптимизации

 

 

 

 

 

 

 

Φk (α) min ,

Φk (α) = f (xk α f (xk )), α > 0 ,

 

 

(5.13)

т.е. на каждой итерации

в направлении антиградиента f (xk ) совершается

исчерпывающий спуск.

 

 

 

 

 

 

 

Алгоритм метода следующий.

 

 

 

 

 

 

Шаг

1.

Задать параметр точности ε >0 ,

выбрать

x En .

Вычислить

f (x) .

Перейти к шагу 2.

 

 

 

 

 

 

 

Шаг

2.

Вычислить

f (x) и проверить

условие

достижения

точности:

 

f (x)

 

 

 

<ε . Если оно выполнено, вычисления завершить,

полагая x = x , f

= f (x) .

 

 

 

Иначе − перейти к шагу 3.

 

 

 

 

 

 

 

Шаг 3. Решить задачу одномерной оптимизации (5.13) для

xk = x ,

т.е. найти

α . Положить x = x α f (x) и перейти к шагу 2.

 

 

 

 

Следует отметить, что решение задачи (5.13) можно получить одним из рассмотренных для одномерной минимизации способов. Если, кроме того, функция

f (x) квадратична, то

для

величины

шага исчерпывающего спуска

можно

применить

формулу

αk = −

( f (xk ), pk )

= −

(Axk

+ b, pk )

 

,

полученную

выше,

 

(Apk , pk )

 

 

 

 

(Apk , pk )

 

 

 

 

 

положив pk

= − f (xk ) .

 

 

 

 

 

 

 

 

 

 

 

Пример

5.5. Рассмотрим

 

функцию

 

f (x) = x2 +100x2

 

и используем

метод

 

 

 

 

 

1

2

 

 

 

наискорейшего спуска для решения задачи ее минимизации из начальной точки

x0 = (1, 1) .

 

 

 

 

 

 

 

 

 

 

 

□ Найдем компоненты градиента

f

 

f

 

 

 

2

0

 

 

= 2x ,

 

 

= 200x

 

и гессиан

A =

 

 

.

x

x

 

 

0

200

 

1

2

 

2

 

 

 

 

1

 

 

 

 

 

 

 

 

 

Величину шага исчерпывающего спуска αk найдем по формуле для квадратичной функции. Результаты вычислений приведены в табл. 5.1.

83

Результаты вычислений задачи методом наискорейшего спуска Таблица 5.1

Номер

x1k

x2k

f (xk )

 

f (xk )

 

итерации

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

1

101

200

 

 

 

 

 

 

 

 

1

9,9 101

9,9 105

9,8

101

1,98

 

 

 

 

 

 

 

 

2

9,7 103

9,7 103

9,5

103

1,94

 

 

 

 

 

 

 

3

9,6 103

9,6 107

9,2

105

1,92 102

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Полученные результаты можно сравнить с решением этой же задачи методом градиентного спуска. ■

Отметим главный недостаток градиентных методов, который заключается в неприемлемо низкой скорости сходимости в случаях, когда поверхности уровня целевой функции сильно "вытянуты", т.е. имеют овражный характер. Геометрически происходит следующее: генерируемые методом приближения быстро спускаются почти на "дно оврага", а затем начинают "прыгать" с одного его "склона" на другой, причем длина осуществляемых шагов все время уменьшается. Особенно сильный замедляющий эффект это явление оказывает в том случае, когда "дно оврага" изогнуто.

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

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

5.5. Метод сопряженных направлений

Этот итерационный метод, предназначенный для отыскания минимума выпуклой квадратичной функции, приводит к результату за конечное число шагов. От такого метода разумно ожидать высокой эффективности и в случае выпуклой неквадратичной функции.

84

Разберем идею метода на примере поиска минимума в случае функции двух переменных. Линиями уровня сильно выпуклой квадратичной функции являются эллипсы. Пусть p1 , p2 − направления главных осей этих эллипсов (они могут быть

найдены как ортонормированный

базис

из собственных векторов

матрицы A

квадратичной функции). Если выбрать произвольную точку x0 E2

и выполнить

итерационную процедуру xk +1 = xk

+αk p k ,

k = 0, 1,, где величина αk находится

из условия исчерпывающего спуска, то, очевидно, потребуется не более двух шагов для отыскания точки x .

Такого же результата можно достичь и другим способом. Выберем некоторое направление p1 и две точки x0 и y0 такие, что векторы x0 y0 и p1 были неколлинеарны. Выполнив исчерпывающий спуск из точек x0 и y0 в направлении

p1 , получим точки x1 и y1 . По свойству исчерпывающего спуска в точках x1 и y1

имеет место касание соответствующих прямых (направлений убывания) и эллипсов

(линий уровня целевой функции). По свойству эллипсов, точки x , x1 и y1

расположены на одной прямой. Поэтому, полагая p2 = x1 y1 , и решая задачу f (x1 +α p2 ) min , мы находим точку x . Таким образом, и в этом случае решение задачи минимизации сильно выпуклой квадратичной функции будет получено за конечное число шагов.

y0 p1

x0

p1

y1

x1 p2

x*

p2 = x1 - y1

Рис. 5.3. Определение направления p2 и положение точки x в E2

Рассмотренному на примере квадратичной функции двух переменных методу может соответствовать такой алгоритм.

Шаг 1. Выбрать начальную точку x0 E2 . Перейти к шагу 2.

85

Шаг 2. Положить p1

= e1

и найти точку x 1

с помощью исчерпывающего спуска

из точки x0 по направлению p1

 

f (x1 ) = min f (x0 +α p1 ) .

Перейти к шагу 3.

 

α E

 

 

 

 

Шаг 3. а) положить y0 = x1 + e2 ;

 

б) найти точку

y1

из

условия исчерпывающего спуска из точки y0 по

направлению p1

 

 

 

 

f ( y1 ) = min f ( y0 +α p1 );

 

 

α E

 

 

 

 

в) положить p2

= x1 y1 , найти точку x2

из условия f (x2 ) = min f (x1 +α p2 ) ,

 

 

 

 

α E

вычисления закончить, положив x = x2 .

Графическая иллюстрация работы алгоритма представлена на рис. 5.4. Поиск точки минимума проводится по так называемым сопряженным направлениям.

x2

 

 

 

 

y0

y1

e2

x1

 

 

 

 

 

 

 

 

x*

 

 

 

e1

 

e2

 

 

 

 

 

 

p2

 

 

 

 

x0

p1

x1

 

 

Рис. 5.4. Минимизация функции с помощью сопряженных направлений в E2

Определение.

Ненулевые векторы

p1 , ..., pk называются сопряженными

относительно матрицы A размера (n × n) или A −ортогональными, если

 

 

( A pi , p j ) = 0,

i j,

i, j =1, ..., k.

 

(5.14)

Пример

5.6.

Направления

p1 , p2 ,

использованные

в описанном выше

алгоритме

минимизации квадратичной

функции

двух

переменных, являются

A −ортогональными.

 

 

 

 

86

Рассмотрим

скалярное

произведение

 

(A p2 , p1 ) = (A(x1 y1 ), p1 ) =

( f (x1 ), p1 ) ( f ( y1 ), p1 ) . Так как точки

x1

и

y1

 

получены

в результате

исчерпывающего спуска

по направлению

p1 ,

то

оба

скалярных

произведения

( f (x1 ), p1 ) и ( f ( y1 ),

p1 )

равны нулю, поэтому и (A p2 ,

p1 ) = 0 . ■

 

Утверждение. Система из n

векторов

p1 , ..., pn ,

сопряженных относительно

положительно определенной матрицы A , линейно независима.

□ Предположим противное, т.е. что существует линейная комбинация, равная нулю

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

γi

pi = 0,

 

 

 

 

 

(5.15)

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где не все γi = 0,

например, γk 0.

Умножим обе части равенства (5.15) скалярно

на вектор Apk .

Тогда, с

учетом

свойства

A −ортогональности

(5.14), получим

γk ( A pk , p k ) = 0.

В

силу

положительной

определенности

 

матрицы

A для

ненулевого вектора pk последняя

квадратичная

форма

положительна,

следовательно, γk = 0. Полученное противоречие доказывает утверждение. ■

Таким образом,

n ненулевых A −ортогональных векторов образуют базис в En .

Рассмотрим минимизацию в En квадратичной функции

f (x) =

1

(Ax, x) + (b,

x) + c с

2

 

 

 

 

 

 

 

 

 

 

 

положительно определенной матрицей A , используя итерационный процесс

 

 

 

xk = xk 1 +αk

pk ,

k =1, 2, ... ,

 

 

 

 

(5.16)

где векторы pk A −ортогональны.

 

 

 

 

 

 

 

 

Утверждение. Если в итерационном процессе (5.16) на каждом шаге

используется исчерпывающий спуск, то величина шага αk

будет

αk = −

( f (x0 ), pk )

, k =1, 2, ...

(5.17)

(Apk ,

pk )

 

 

□ Раскрывая рекуррентную формулу (5.16), получаем

k

 

 

xk = x0 + αi

pi .

(5.18)

i=1

 

 

 

Из формулы (5.18), учитывая выражение для градиента квадратичной функцииf (x) = Ax + b , находим

87

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]