§ 5. Обзор методов безусловной оптимизации |
Джефф Питерс делал деньги самыми разнообразными способами. Этих способов было у него никак не меньше, чем рецептов для приготовления рисовых блюд у жителей Чарлстона, штат Южная Каролина.
О. Генри. Джефф Питерс как
персональный магнит
А спускаясь по темной лестнице, зажигайте ... хотя бы спичку.
А.С. Грин. Зеленая лампа
В этом параграфе описываются модификации градиентного метода и метода Ньютона, а также ряд методов, основанных на других идеях.
Градиентный метод решения задачи безусловной минимизации
f(x) ® min, | (1) |
где f: Rm ® R, можно интерпретировать в терминах обыкновенных дифференциальных уравнений следующим образом. Рассмотрим дифференциальное уравнение
p | (2) |
(здесь точка над x обозначает производную по независимой переменной t, а f ў(x) как обычно обозначает градиент отображения
|
и есть градиентный метод для задачи (1):
| (3) |
Рассмотрим теперь вместо уравнения (2) уравнение
mx··+ px·+ f ў(x) = 0, |
описывающее движение шарика массы m в потенциальном поле f ў при наличии силы трения. Потери энергии на трение вынудят шарик спуститься в точку минимума потенциала f, а силы инерции не дадут ему осциллировать так, как это изображено на рис. 8. Это позволяет надеяться, что изменение уравнения (2) введением в него инерционного члена mx··улучшит сходимость градиентного метода (3). Конечно-разностный аналог уравнения, описыавющего движение |
|
После простых преобразований и очевидных обозначений мы получаем
xn+1 = xn - af ў(xn) + b(xn - xn-1). | (4) |
Итерационная формула (4) задает метод тяжелого шарика решения задачи безусловной оптимизации (см. рис. 14; ср. с рис. 8).
Можно доказать, что в условиях теоремы 3.7 метод тяжелого шарика при
Если теперь сравнить знаменатели
5.2. Методы переменной метрики.
Введем в пространстве Rm новое скалярное произведение
бf сў(x) = S-1f ў(x). |
З а д а ч а 5.1. Докажите.
Соответственно градиентный метод в новой метрике имеет вид
xn+1 = xn - aS-1f ў(xn). | (5) |
Естественно желание подбирать оператор S с целью ускорения
сходимости. Например, если f квадратична:
xn+1 = xn - aS-1(Axn + b) = xn -a(S-1Axn + S-1 |
и является градиентным методом в старой метрике для функции
З а д а ч а 5.2. Покажите, что для квадратичной функции при
В методе (5) оператор S можно менять на каждом шаге с той же целью ускорения сходимости. Такие методы называют иногда методами переменных направлений или переменной метрики.
В общем случае неквадратичной функции f в (5) оптимальным выбором в качестве S будет выбор
xn+1 = xn - Gnf ў(xn), | (6) |
а операторы Gn пытаются вычислять так, чтобы максимально использовать уже полученную информацию при минимальном объеме вычислений и, главное, стремясь, чтобы
Gn - [f ўў(xn)]-1 ® Q при n ® Ґ. | (7) |
Методы, получающиеся таким способом часто называют квазиньютоновскими.
З а д а ч а 5.3. Докажите, что если
Построение операторов Gn, как правило, укладывается в следующую общую схему. Для того, чтобы ее оправдать, заметим, что для квадратичной функции f и итераций xn, определяемых формулой
xn+1 = xn - anGnf ў(xn), | (8) |
имеет место соотношение
ansn = A-1jn, т. е. ansn = [f ўў(xn)]-1jn, | (9) |
где
sn = -Gnf ў(xn), jn = f ў(xn+1) - f ў(xn). |
З а д а ч а 5.4. Докажите.
Поэтому представляется естественным, чтобы операторы
ansn = Gn+1jn. |
При этом стремятся также к тому, чтобы
Примером метода, построенного на этом пути, может служить один из наиболее эффективных среди квазиньютоновских методов метод
Gn+1 = Gn + [gnsn(sn)* - sn(jn)*Gn - Gnjn(sn)*]/(sn, jn), |
где
gn = an + (Gnjn, jn)/(sn, jn), |
а "*" означает операцию транспонирования, в частности,
an = argminaО[0, Ґ) f(xn + asn). |
Для квадратичных функций метод
Число различных вариантов и модификаций квазиньютоновских методов весьма велико.
5.3. Методы сопряженных направлений.
Этот класс методов основан на следующем понятии. Векторы x и y в Rm называются сопряженными
(относительно положительно определенного самосопряженного оператора A), если
З а д а ч а 5.5. Докажите, что любой набор из m
сопряженных
Допустим, нам известен набор s1, ..., sm сопряженных векторов оператора A. Для квадратичной функции
xn+1 = xn + ansn, | (10) |
а в качестве шага an число
an = argminaОR f(xn + asn). | (11) |
З а д а ч а 5.6. Покажите, что
Оказывается, метод (10)) при таком выборе sn и an сходится за конечное
З а д а ч а 5.7. Докажите.
Отыскание набора сопряженных
В популярном методе
s0 = -f ў(x0), |
sn+1 = -f ў(xn) + bn+1sn, |
где числа bn+1 выбираются из условия A-ортогональности sn и sn+1:
0 = (Asn, sn+1) = -(Asn, f ў(xn)) + bn+1(Asn, sn), |
откуда
bn+1 = (f ў(sn), f ў(xn))/(f ў(sn), sn). |
(Напомним, что здесь
Для неквадратичных функций метод сопряженных направлений (называемый в этом случае обычно методом сопряженных градиентов), разумеется, уже не является конечным. Тем не менее, как итерационный он весьма эффективен. Например, метод
bn+1 = (f ў(xn) - f ў(xn-1), f ў(xn))/|| f ў(sn-1)||2. |
Однако, поскольку для неквадратичных функций метод уже не конечен, на каждом кратном m шаге процедура построения сопряженных направлений повторяется заново с заменой s0 на
Можно доказать, что метод
||xn+1 - x*|| Ј C||xn -x*||mЦ2, |
или, за m шагов,
||xn+m - x*|| Ј C1||xn - x*||2. |
Таким образом, m шагов метода
В случаях, когда вычисление производных стóит дорого, применяют методы, не требующие вычисления производных методы нулевого порядка. Общая их схема такова. Итерации строятся в виде
xn+1 = xn - ansn, | (12) |
где an длина шага, а направление sn шага обычно выбирается в виде
|
(13) |
здесь ei О Rm, i = 1, ..., k некоторый, обычно фиксированный набор.
Часто в качестве ei выбираются векторы базиса в Rm. Очевидно, в этом случае при
|
и называется разностным вариантом градиентного метода.
Если в (13) k = 1 и векторы базиса ei "циклически" меняются с изменением n, то получается метод покоординатного спуска:
|
где {a} дробная часть числа a. На каждом шаге в нем изменяется только одна координата вектора xn (см.
Имеется масса модификаций методов нулевого порядка. В них по разному выбираются векторы ei, шаги ai, параметр h
В ряде описанных выше методов одним из этапов является поиск минимума функции на одномерном луче или отрезке. К этим задачам, разумеется, могут быть применены
описанные выше
f(x) ® min, x О [a, b], | (14) |
в которой относительно функции f: [a, b]® R предполагается только, что на этом отрезке она имеет
единственный миинимум x*, причем сдева от x* функция монотонно убывает, а
З а д а ч а 5.8. Докажите, что всякая выпуклая функция унимодальна.
Основное свойство унимодальных функций, играющее для нас важную роль таково. Если мы знаем значения f в точках x1 и x2 отрезка
В реальности мы не можем располагать пробные точки,
Все описываемые ниже методы указывают на отрезок, на котором гарантированно лежит точка x*. Этот отрезок называют отрезком (или интервалом) неопределенности Таким образом, если в качестве приближенного значения x* взять центр этого отрезка, то погрешность метода есть половина длины отрезка неопределенности.
Этот метод является аналогом известного метода дихотомии (половинного деления) отыскания решения уравнения
|
и выбору в качестве
|
где l = b - a длина начального отрезка.
З а д а ч а 5.9. Докажите.
Например, если l = 1 и
5.7. Методы золотого сечения и Фибоначчи.
Эти методы основываются на одном и том же алгоритме перехода к следующей
пробной точке и отличаются лишь способом выбора первой точки. В результате каждого шага (добавления одной пробной точки) мы получаем отрезок
|
Затем, в зависимости от того, какое из неравенств
З а д а ч а 5.10*. Докажите, что ln-1 = ln + ln+1, где ln длина отрезка Ln.
В методе золотого сечения x0
делит отрезок
|
где t положительный корень уравнения
t2 = t + 1 |
(золотое сечение): t = (1 + Ц5)/2 » 1.618). Таким образом,
З а д а ч а 5.11. Докажите, что ln+1 = ln/t.
Поэтому после n + 1 эксперимента
|
В частности, для уменьшения отрезка неопределенности в 106 раз нужно провести 29 вычислений функции (ср. с 40 вычислениями в методе дихотомии).
В методе Фибоначчи сначала задается число n вычислений функции и затем первая пробная точка подбирается таким образом, чтобы последняя пара экспериментов давала отрезок неопределенности наименьшей длины,
ln-1 = 2ln - e. |
Учитывая, что (см. задачу 5.10)
ln-2 = ln-1 + ln, |
получаем
ln-i = Fi+1ln - Fi-1e, | (15) |
где Fi так называемые числа Фибоначчи, определяемые соотношениями
l = l0 = Fn+1ln - Fn-1e, |
откуда
|
и, во-вторых, длину отрезка l1, задающего положение первой (стартовой) точки:
| (16) |
З а д а ч а 5.12. Докажите, что (Fi)2 = Fi-1Fi+1 + (-1)i. Используя это тождество, получите из (16) более простое соотношение,
| (17) |
Таким образом, чтобы запустить метод Фибоначчи необходимо заранее знать количество точек, в которых будет вычисляться функция f. В то же время метод Фибоначчи является наилучшим алгоритмом в таком классе методов2), в частности, по сравнению с методом золотого сечения, за одно и то же число шагов он дает отрезок неопределенности в
Отметим еще, что описанные методы одномерной оптимизации эффективны в случаях, когда у нас либо не дифференцируема функция, либо вычисление производных дорого стóит. В противном случае чаще используют методы первого или второго порядков.
Все методы, которые мы рассматривали выше, не различают локального и глобального минимумов. В случае выпуклых функций никаких проблем не
З а д а ч а 5.13. Докажите это утверждение.
В случае невыпуклых функций это обстоятельство превращается в серъезнейшую проблему. Приведем сразу же примеры функций (см. рис. 17),
для которых, по-видимому, невозможно предложить ничего другого, кроме перебора значений на достаточно мелкой сетке с последующим уточнением решения, например, методом Ньютона. Представьте себе, что еще и
Поэтому здесь мы приведем лишь некоторые рецепты, позволяющие хоть как-то подойти к этой проблеме.
Первое, что приходит в голову это "разбросать" по исследуемой области (в которой гарантировано находится минимум функции) некоторое множество начальных точек и из каждой из них спускаться, например, с помощью градиентного метода, в "ближайший" локальный минимум, сравнивая значение функции с уже найденными минимумами.
Более регулярным может оказаться, например, метод тяжелого шарика. Если "шарик достаточно тяжел" (коэффициент b достаточно велик), то метод будет по инерции проскакивать неглубокие локальные минимумы. Однако, при большой инерции он может проскакивать узкие глубокие локальные минимумы, один из которых может оказаться глобальным (см. рис. 17), или, попав в глубокий локальный минимум, не являющийся глобальным, не сможет из него уйти (даже при большой инерции). При малой же инерции шарик может застревать даже в неглубоких локальных минимумах.
Еще один метод так называемый овражный метод Гельфанда основан на следующей идее: если функция имеет овражную структуру, то надо спуститься на дно оврага, а затем идти вдоль дна оврага. Шаги овражного метода двух типов: шаги спуска и овражные шаги. Шаги спуска начинаются из двух произвольных достаточно близких точек x0 и x1. Каким-нибудь методом, чаще всего, градиентным, спускаются на дно оврага, и получают точки X0 и X1. Затем делают овражный шаг из X0 в направлении X1 - X0 и получают точку x2:
x2 = X0 + a(X1 - X0). |
Из точки x2 спускаются опять на дно в точку X2 и делают овражный шаг из X1 в направлении X2 - X1
Овражный метод позволяет "просмотреть" окрестности дна оврага. Полученные точки можно затем уточнить с помощью локальных методов высокого порядка. Разумеется, применение овражного метода порождает массу вопросов. Например, одним из важных моментов является выбор длины овражного шага. Если шаг велик, то метод "проскакивает" локальные минимумы, если же шаг мал, то регулярного движения вдоль дна оврага не получается, особенно, если дно оврага имеет "уплощения".
В заключение параграфа опишем еще один метод поиска глобального
1) Фибоначчи пытался моделировать рост числености популяции кроликов на монастырской ферме. После этого числам Фибоначчи в математике была уготована долгая и счастливая жизнь. Они оказались полезными в cамых далеких (от размножения кроликов) областях математики и не устают удивлять нас. Кстати, сама модель популяции кроликов оказалась весьма далекой от действительности.
2) Думал ли об этом Фибоначчи?!
File based on translation from
TEX by TTH,
version 3.05.
Created 8 Jube 2002, 8:06.