Лекция 8
.pdfЛекция 8
3.1.3 Градиентный метод с дроблением шага
Рассмотрим процесс, описываемый формулой (3.1.6). Выбор шага k
является довольно таки не простой задачей. Достаточно малый шаг k обеспечивает убывание функции
f ( xk k f |
|
(3.1.8) |
( xk )) f ( xk ), |
но может привести к неприемлемо большому количеству итераций. С другой стороны, слишком большой k может вызвать неожиданный рост функции (условие (3.1.8) не выполняется), либо привести к колебаниям около точки минимума.
|
|
Пример 13. |
Рассмотрим задачу минимизации |
f ( x) ax2 , a 0, |
||||||||||||||||
тогда |
согласно (3.1.6): xk 1 |
xk (1 2a k ). |
Если |
k const и |
||||||||||||||||
0 |
|
|
1 |
, |
то |
процесс |
сходится и |
при |
|
|
1 |
– |
расходится. |
Если |
||||||
k |
|
k |
|
|||||||||||||||||
|
|
|
|
a |
|
|
|
|
|
|
|
|
|
a |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
1 |
, то |
x |
x , |
x |
|
x , |
x |
|
x |
|
и |
т.д. Процесс |
будет |
||||
k |
|
2 |
3 |
|
||||||||||||||||
|
|
a |
|
|
|
1 |
0 |
|
0 |
|
|
0 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
расходящимся, но при этом значения аргумента, а значит, и значения функции повторяются. Расходимость такого рода называют зацикливанием
(рис. 3.1.3).
Рис.3.1.3
В методе градиентного спуска с дроблением шага k выбирается так, чтобы было выполнено неравенство
1
f ( xk k f |
|
|
k |
|
|
|
|
|
|
|
2 |
, |
(3.1.9) |
|
|
|
|
|
|||||||||
( xk )) f ( xk ) |
|
|
|
|
f ( xk ) |
|
|
|
|
где 0 1 – любая константа (одна и та же для всех итераций). Очевидно, что условие (3.1.9) более жесткое, чем (3.1.8), но оно имеет
тот же смысл: функция должна убывать от итерации к итерации. Процесс
(3.1.6.) с выбором шага k , удовлетворяющего условию (3.1.9), протекает
следующим образом. Выбираем число 0, одно и то же для всех итераций.
k -ая итерация: проверяем (3.1.9) при k . Если оно выполняется,
полагаем k и переходим к следующей итерации, иначе k дробим до тех пор, пока не выполняется (3.1.9).
Геометрическая иллюстрация метода приведена на рисунке 3.1.4, на
котором изображены линии уровня |
f ( x), |
точка x* – |
точка минимума |
функции f ( x), С1 С2 С3 |
..... |
Траектория |
x0 x1 ...xk – |
зигзагообразная линия, ортогональная в каждой точке ломаной x0 , x1 ,...,xk
соответствующим линиям уровня и приводящая из начальной точки x0 в
точку минимума x* . Ломаная x0 x1 ...xk аппроксимирует так называемую
градиентную кривую, которая удовлетворяет уравнению dx f ( x) .
d
Рис. 3.1.4
Алгоритм основного варианта градиентного метода.
2
10 . Выбрать любые начальное приближение x0 Rn , константу
|
0, |
|
|
|
|
|
1 |
|
|
|
|
|
0 |
( |
1 |
|
|||
|
множитель |
|
|
,1 , константу |
|
), положить |
|||||||||||||
|
|
||||||||||||||||||
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
2 |
|
|
k 0. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Основной цикл. 20 . Вычислить f ( x |
k |
). |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
. Если f ( x |
k |
) 0, то положить x* |
x |
k |
и выход из алгоритма, |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
иначе перейти к шагу 40 . |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
40 . Положить . |
|
|
|
|
|
|
|
|
|
|
|
|||||||
50 |
. Вычислить x x |
k |
f ( x |
x |
). |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
60 |
. |
|
|
Если |
|
выполняется |
|
|
|
|
неравенство |
||||||||
|
f ( x) f ( xk ) |
|
( f ( xk ), f ( xk )) , то положить |
k и перейти к |
|||||||||||||||
|
|
шагу 70 , иначе, положить и перейти к шагу 50 .
70 . Вычислить следующее приближение xk 1 xk k f ( xk ).
80 . Положить k k 1 и перейти к шагу 20 .
При практической реализации метода итерации прекращаются, если
|
|
|
|
f ( xk ) |
|
, где – заданная |
для всех i 1, n выполнено условие типа |
|
|||||
|
xi |
|
||||
|
|
|
|
|
|
|
точность нахождения минимума. |
|
|
|
3.1.4 Градиентный метод с постоянным шагом
Проверка условия (3.1.8) трудоемка, следовательно, если известны
некоторые параметры, характеризующие функцию |
f ( x), можно |
||||||||||||
использовать градиентный метод с дроблением шага, где шаг k |
постоянен |
||||||||||||
на всех итерациях, при котором f ( x) заведомо убывает. |
|
|
|||||||||||
1) Пусть, |
например, |
|
существует |
R const , |
такая, |
что для |
|||||||
x, y En выполняется неравенство |
|
|
|
||||||||||
|
|
|
|
|
|
|
R |
|
x y |
|
(3.1.10) |
|
|
|
|
|
|
|
|
|
|||||||
|
|
f ( x) f ( y) |
|
|
|
|
|
|
|||||
Неравенство (3.1.10) называется условием Липшица, |
R – постоянная |
||||||||||||
Липшица. |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
3 |
|
|
|
|
Тогда достаточно взять k 1 .
R
2) Если известна равномерная по x оценка M сверху максимального собственного числа матрицы f ( x), то выполнение условия (3.1.9)
обеспечивается выбором шага по формуле k 2(1 ) .
M
В градиентном методе с постоянным шагом трудоемкость каждой итерации минимальна (нужно вычислять только градиент f ( xk ) ). Однако,
значения постоянных R и M обычно заранее неизвестны. Алгоритм градиентного метода с постоянным шагом:
10 . Выбрать любые начальное приближение
(0,1) (обычно полагают |
1 |
), положить k 0. |
|||||||||||||||||
|
|||||||||||||||||||
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
||||
20 . Выбрать любую константу |
0, |
|
|
|
|
|
. |
||||||||||||
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R |
|
|
||
Основной цикл: 30 . Вычислить f ( x |
k |
). |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 . Если f ( x |
k |
) 0, то положить |
|
x* x |
k |
и выход из алгоритма, |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
иначе перейти к шагу 50 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
50 . Вычислить x |
k 1 |
x |
k |
f ( x |
k |
) . |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
60 . Положить k k 1 и перейти к шагу 30 . |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
2(1 ) |
|
|
||||||||
Модификация алгоритма: |
0, |
|
|
|
|
|
|
|
. |
|
|||||||||
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
M |
|
|
4