Помехоустойчивость алгоритма покоординатного спуска при распараллеливании
Завриев С.К. ( [email protected] ), Перунова Ю.Н. ( [email protected] )
МГУ, факультет ВМиК
1. Введение
Рассмотрим задачу
F (х) — min, (1.1)
xeR к
где Rk -- k - мерное Евклидово пространство, многоэкстремальная функция цели F: Rk — R непрерывно дифференцируема на Rk и ее градиент VF() удовлетворяет условию Липшица с некоторой константой L>0:
VF (•) £ CLip (R k, L). (12)
Требуется найти приближенное решение поставленной задачи,
т.е. точку xsXoptis) для достаточно малого s>0. Здесь
Xopt(s) := {х £ Rk\F(х) < fp + s},
f0pt = mRnF (х).
Традиционно методы решения задач безусловной глобальной оптимизации включают два этапа [1]. Первый из них, глобальный, состоит в анализе имеющихся данных и выборе некоторого начального приближения. Второй, локальный, - в применении хорошо известных алгоритмов решения выпуклых задач оптимизации. К таким локальным алгоритмам относятся, например, градиентный алгоритм и алгоритм покоординатного спуска. В ходе решения задачи глобальной оптимизации эти этапы циклически чередуются друг за другом до тех пор, пока не выполнится некоторый, выбранный заранее, критерий окончания счета.
Независимо от применяемого на глобальном этапе подхода, использование локальных алгоритмов является важной частью метода глобальной оптимизации. С одной стороны, алгоритмы локального спуска применяются для улучшения результатов, полученных на глобальном этапе решения задачи. Следовательно, для повышения эффективности их работы, требуется максимально удачно, выбрать для этих алгоритмов начальное приближение (множество стартовых точек). С другой стороны, возникает вопрос о возможности использования модифицированной техники локального спуска на глобальном этапе. Поэтому актуальным представляется исследование помехоустойчивости локальных алгоритмов с точки зрения их способности отслеживать глобальное поведение функции цели и игнорировать незначительные минимумы на пути к более глубокому из них [2].
Помехоустойчивые алгоритмы, используя ограниченную информацию о функции цели, требуют при расчете траекторий больших временных затрат. Один из вариантов устранения такого недостатка состоит в применении параллельных версий алгоритмов оптимизации. Реализация алгоритмов в условиях параллельных вычислений позволяет проводить независимые расчеты для нескольких траекторий одновременно, а также сокращать затраты времени, используя дополнительные мощности в рамках одной итерации [3-6].
В настоящей работе предложена версия модифицированного алгоритма покоординатного спуска для многопроцессорной системы и рассмотрена ее сходимость при наличии постоянного шума при вычислении значений функции цели.
Изучение помехоустойчивости параллельных версий локальных алгоритмов спуска является продолжением анализа свойств конечно-разностных алгоритмов для решения задач оптимизации строго выпуклых функций [7].
В работе [8] определены параметры регулярности, которые помогают разбить процесс решения задачи на два этапа: поиск точек, расположенных в окрестности стационарного множества, и последующее приближение к стационарным точкам с помощью локальной оптимизации.
Определение 1.1 Будем называть функцию Г(х) регулярной функцией с параметрами п, V, ¡и, L >0, и М е{1,2,...}, если
1) функция Г(х) , функция цели Г : Рк ^ р непрерывно дифференцируема на и выполнено условие (1.2);
2) множество стационарных точек (Х5«г) функции Г (х) конечно
X« ={ х! ,-..х! }, |Х_| = М;
3) в некоторой п-окрестности множества Хза существует гессиан Н = Г'(х) функции Г (х) и он невырожден
|и->|| < Ни Ух е В п( Хж),
4) множество Х5^( г)- г -окрестность стационарного множества Х5ш
Х^е) := {х е | ||УГ(х)|| <г} ограничено для любого е>0;
5) для некоторого v>0 и для ц>0 из п.3) выполнено
Х^) с В,(Хм), (1.3)
где
В е (X) := { х е Кк | 3 х'е Х :||х - х'\\ <г}.
Параметр п выделен для описания величины окрестности стационарного множества, в которой поведение Х5ш близко к поведению квадратичной функции. Оценками величин гессиана и градиента Г(•) в этой окрестности являются 1/и и V соответственно. Поиск решения задачи оптимизации в Вп(Х\ш) не составляет большого труда, так как
задача оказывается одно-экстремальной. Глобальный оптимум предлагается находить путем сравнения результатов решения М задач локальной оптимизации в В п( Х1Ш), I = 1,...,М.
Показателем «хорошей» регулярной функции являются достаточно большие значения параметров п , и и V и не слишком большое значение параметров М и ^ а наша задача сводится к построению методов, траектории которых сходятся к Б (Х\ш).
В рамках решения этой сложной задачи предлагается описание области предельных точек параллельной версии алгоритма покоординатного спуска.
2. Параллельная версия алгоритма покоординатного спуска
Алгоритм покоординатного спуска [9] по сути - последовательный алгоритм, т.к. построение траектории ведется при последовательном переборе всех координат. Поэтому, для создания его параллельной версии необходимо отказаться от последовательного перебора, что в корне изменяет процесс построения траектории. Другими словами, последовательный и параллельный алгоритмы покоординатного спуска представляют собой два разных алгоритма.
Основная идея представленной параллельной версии алгоритма покоординатного спуска заключается в следующем.
Пусть общее число процессоров равно (р +1), р е N. Область определения разделяется на подмножества, принадлежащие различным подпространствам:
Рк = Рк1 X Рк2 X...XРкр
Вычисления на отдельном I-ом процессоре, I = 1,2...р ведутся по алгоритму покоординатного спуска в рамках подпространства Рк. Такие
процессоры будем называть «рабочими». Один дополнительный процессор (с номером I = р +1) координирует действия «рабочих». Этот процессор назовем «управляющим».
Предложенное распределение ролей между процессорами однозначно определяет топологию задачи «звезда» [3].
Алгоритмы Д0), А(1) являются последовательными. Общее количество процессоров для последовательного алгоритма будем считать равным 1. Обозначим последовательные алгоритмы как А. Для реализации параллельной версии необходимо, по крайней мере 3 процессора (к = 2, р = 2).
Предположим, что в наличии имеется неограниченное число процессоров. Для проведения вычислений предлагается использовать
количество «рабочих» процессоров, равное к - размерности задачи глобальной оптимизации. Каждый такой процессор получит в качестве подпространства одну координату и проверит, есть ли спуск по этой координате. Управляющий процессор выберет координату, по которой происходит самый глубокий спуск. В общем случае (р < к) обозначим т -- число координат, рассматриваемых на каждом рабочем процессоре. Учитывая возмущение 80(х) е функции цели Г(•) в точке х еРк,
|К(Х)|| <^0 ,
алгоритм покоординатного спуска будет иметь следующий вид. Алгоритм А(р).
Параметры: 0,0 <0 < 1,а > 2у]/Ь,еб0р > 0,
р е Ы, р < к,1 < т =
к +к - к
р р
р.
Входные данные: х е Рк.
Результат: е М хЫ'1юр к
Обозначим:
И -- инициализация: п := 0;хп := х0. П -- подготовка к работе: п: п +1; хП := хп-1;аП := а
Выбрать ортонормированную систему вгт,п из т векторов
вГ = К"} такую, что в" = и в™'",
I=1
где вп = ввк. }е Рк- ортонормированный базис пространства Р к.
Р -- выполнение на I-ом рабочем процессоре, I = 1,...,р, одной итерации метода покоординатного спуска (ПС) в рамках подпространства Рк:
Итерация метода ПС. Шаг 1. Пусть
а" := а /в, а"* := 0,* = 1, .,к; Л" := 0.
Шаг 2. Если > 0, то перейти к Шагу 5.
Если а" < , то перейти к Шагу 5, иначе:
* := 0, а" := а"в;
Л" := Л" +1.; Шаг 3. Присвоить * := * +1.
Шаг 3а. Вычислить Г (х" + а^в™'") + ¿0 (х" + а"вт-"). Если
Г(х" + а"вт-") + ¿0 (х" + а"вт;") > Г(х") + ¿0 (х") - (а")2 /2,
тогда выполнить Шаг 3б, иначе
х" := х" + а"вт;";
а := 1;
перейти к Шагу 4.
Шаг 3б. Вычислить Г(х" -а"вт") + £0(х" -а"вт"). Если
Г(х" - а"в т") + ¿0 (х" - а"втт") > Г(х") + ¿0 (х") - (а")2 /2 ,
тогда перейти к Шагу 4, иначе присвоить
Г" := Х" - а"вт' " •
а :=-1;
перейти к Шагу 4.
Шаг 4. Если i = m, тогда выполнять Шаг 2 ,
иначе Шаг 3. Шаг 5. Конец итерации.
У -- вычисления на (р+1)-ом управляющем процессоре:
1 n,min := ar§ min F(ХП ) + ¿0 (ХП );
1 =1,..., p
Хп := argmin F(x,) + ¿0 (хП) = x^;
ап = аП ■
" '"и min
а," = а," ,■, i = 1,..., m
' ^n min 5*
а, = 0, i = 1,..., m
Jn = Jln min ;
К -- критерий перехода к следующей итерации: an > s
n stop 1
О -- остановка вычислений: Ы^ := п;хЫлр := хп. Блок-схема метода изображена на Рисунке 1.
Наряду с траекторией {хп} алгоритм А(р) генерирует последовательности {ип},{ап},{агп},г = 1,...,к,, и {уп}. Стоит заметить, что для п =0,1,2,... справедливо
т
хп+1 = хп + ап Tа"в"'
п / : г г 1=1
an =6}"а
и также
un = F(xn) + £0(xn) <un+1 - an2 = F(xn+1) + ö(xn+1) - a\/2.
В случае, когда при п = п' на п -ой итерации метода А(р) аЪ = 0, г = 1,..., к, I = 1,..., р,
для каждого п = п' +1, п' + 2,..., рассмотрим бесконечную траекторию
х х х :
Рисунок 1. Блок-схема алгоритма покоординатного спуска при распараллеливании
х" := х"'-1, ]п , а„ := 0 . 3. Исследование помехоустойчивости
Для анализа устойчивости к ошибкам метода покоординатного спуска потребуются следующие леммы.
Лемма 3.1. Для каждой траектории {хп} метода А(р) имеют место следующие утверждения: I) {хп} ограничена;
ii) существует такой и е R1, что lim и" = и
iii) liman = 0;
iv) lim ^ j„ = ;
v) lim"
x" - x"+
= 0.
Следствие 3.2 Для любой траектории {хп} предельных точек и {хп} связно и компактно.
Лемма 3.3 Пусть {хп} -- траектория метода А(р). Начальное значение шага а удовлетворяет условию
а > 2^ а0 / Ь
Тогда
VF(xn) <4k min ( ^ + —
v У j=0,...,Jn-Л e]a 2
в1 a ), n =0,1,... .
Обозначим
j* := min{j е N вj a < 2jsJ(L + V) }, a* := (ae1* )2.
□
множество
□
Лемма 3.4 Пусть а > 2^£0 /(Ь +1)
Тогда
L +1
.min ( J + ^eja )<Vb(LTl)
i=0,...,i* в1 a 2
в +
1
□
В следующей теореме выражено главное свойство сходимости метода
А( р).
Теорема 3.5 Каждая траектория {хп} метода А(р) сходится к
связной компоненте множества
4k (L +1) (-Ъ
,1/2 '0
□
Теорема 3.6 Пусть функция цели ^(х) согласно определению 1.1 регулярна с параметрами ц,у, ¡и,Ь,М и размер возмущения а0 удовлетворяет неравенству
¡k(L + 1)(Vo + ^)s¿/2 <v.
л О
(3.1)
Тогда каждая траектория {хп} метода А(р) сходится к п-окрестности некоторой стационарной точки х^,
Ъ{хп} сВ-(х\ш) сВп(х^),
где
(
s = min
П, k (L +1) (Vo+-Us¿ n 4o
\
/2
□
Замечание 3.7 Базис en = [efenk}eS на n +1 -ой итерации
метода A(p) может быть выбран как в стандартном циклическом методе покоординатного спуска
en = e0, n = 0,1,...,
или как, например, в методе Розенброка (см.[10]) с использованием процедуры Грамма-Шмидта
n -n /
e. = e. /
, e— = dn-1 ~Z(dr\ efy
s=1
i = 2,..., k,
ef = e-n /
e-n = dn-1
n-1
din-1 :=
если ans 1 = 0
Z a"slensl,
если an ф 0,
i = 1,2,..., k, n = 1,2,..., где скалярные величины af1,..., as"-1 n = 1,2,... определяются:
xn - xn-1 = Zan-1en-1
^^^ z i
n = 1,2,
(заметим, что из (2.3) аЧ = аа, г = 1,...,к). Очевидно, что для любой траектории данного алгоритма {хп} справедливо
n
e
n
e
s— г
i=1
(F(х") + S0(х")) - (F(х"+1) + ¿0 (х"+1)) > eip /2 > 0 , n = 0,1,...,Nstop
поэтому
N t < .
stop
4. Сравнение последовательной и параллельной версии покоординатного спуска
Обозначим за А -- время выполнения процедуры «У» на p +1 -ом процессоре параллельного алгоритма A(p), включая время, затраченное на обмен данными между процессорами.
Заметим, что величину А можно считать фиксированной для выбранного вычислительного комплекса, в то время как продолжительность выполнения итерации алгоритма зависит и от сложности целевой функции задачи. Поэтому, чем больше времени требуется на определение значения целевой функции, тем меньше относительная стоимость синхронизации параллельной версии алгоритма.
Проведем сравнительный анализ для случая, когда затраты на синхронизацию равны нулю.
Предположение 4.1 А=0. (4.1)
На практике это предположение означает, что затраты времени на синхронизацию ничтожно малы по сравнению с вычислительными затратами. С другой стороны, предположение 4.1 не лишено практического смысла, если вычисления проводятся на распределенной системе, и при оценке эффективности параллельного алгоритма не возможно заранее рассчитывать на какой-либо выигрыш по времени (speed-up). В этом случае сама постановка реальной задачи оптимизации требует решения в принципе, без значительного ускорения: допустим, решение задачи занимает немного больше времени, но использованы все имеющиеся вычислительные мощности, следовательно, процесс поиска - более тщательный и решение задачи -более точное.
Для проведения сравнительного анализа последовательного A и параллельного алгоритмов A(p), p > 2 потребуется определить понятие цикла алгоритма.
Определение 4.2 Циклом алгоритма A(p) в рамках одной n -ой итерации назовем совокупность вычислений, проводимых при условии постоянного значения параметра j", т.е. при j" = const > 0.
1) По алгоритму A(p) в рамках одного цикла итерации p * m раз производится расчет (проверка) направлений области определения, в то время как алгоритм A предлагает проверку m направлений из к. Таким образом, в условиях (4.1) в один и тот же промежуток времени параллельный алгоритм вычисляет примерно в p раз больше значений функции цели, чем последовательный алгоритм.
2) Если размерность пространства к не кратна количеству рабочих процессоров p , то пересечение всех подпространств R= 1,...,p, образует некоторое подпространство размерности не
1 к Г
более (к - — p). Наличие «общих координатных векторов» оказывает
_ p L
непосредственное влияние на оценку из пункта 1).
3) Количество точек области определения, в которых значение функции цели на в рамках одного цикла алгоритма A(p) вычисляется
к -к
p
-1. А количество
p)(p -1). Для повышения эффективности
неоднократно, гораздо меньше величины 2
повторного определения значения функции цели в одних и тех же точках
"к
не превышает 2(к - —
\ Р
использования вычислительных мощностей предлагается упорядочить координатные вектора на каждом рабочем процессоре так, чтобы в рамках одного процессора «общим» векторам соответствовали самые большие порядковые номера.
Определение 4.3 Назовем тактом выполнение Шага 3 алгоритма
ПС.
В таблице 1 на примере к =10 для различных значений р рассмотрено распределение вычислений между процессорами по алгоритму А4(р) при условии (4.1).
Таблица 1. Распределение вычислений между процессорами для алгоритма А(р) при размерности пространства к = 10 .
р т Количество тактов в х процессорах за один Максимальное количество повторов вычисления значения функции цели за один цикл
1 10 10 0
2 5 10 0
3 4 12 4
4 4 16 12
5 2 10 0
6 5 30 40
7 4 28 36
8 3 24 28
9 2 18 16
10 1 10 0
Из таблицы 1 мы получаем, что за один цикл итерации алгоритма А(1) выполняется 10 тактов. Или, по алгоритму А(4) на всех процессорах в сумме за один цикл итерации выполняется 16 тактов. За это время вычисление значения функции цели в одних и тех же точках области определения производится повторно не более 12 раз в сумме по всем 4-м рабочим процессорам.
По сравнению с последовательным аналогом за один цикл параллельный алгоритм покоординатного спуска выполнит не менее, чем в (р - (к -]р[р)(р -1)/т) раз больше «полезных» вычислений.
Предложенный параллельный алгоритм был реализован на системе Parsytec Supercluster ВЦ РАН для поиска решения ряда тестовых задач, включая задачу структурной химии минимизации потенциальной энергии многоатомных молекул.
5. Заключение.
В результате проведенных исследований было показано, что классический алгоритм покоординатного спуска с использованием правила Армихо [9] обладает свойством устойчивости к помехам в вычислении значений функции цели задачи оптимизации. Приведено описание области предельных точек траекторий алгоритма покоординатного спуска.
Алгоритм покоординатного спуска является своеобразным аналогом алгоритма градиентного спуска с использованием конечных разностей. Настройка параметра дискретизации происходит автоматически.
Параллельная версия алгоритма покоординатного спуска по сравнению со своим последовательным аналогом обладает большей вычислительной мощностью и за одну итерацию в р раз (где р -количество используемых рабочих процессоров) тщательнее исследует область текущего значения аргумента хп .
Определить общий вид выигрыша по времени для алгоритма покоординатного спуска при распараллеливании не представляется возможным, так как подобная оценка зависит от поведения каждой конкретной функции цели.
Список литературы
[1] Torn A. Global Optimization as a combination of global and local search. Ph.D. Thesis Abo Academi Finland HHAA A13: 65 p, 1974.
[2] Завриев С. К., Перунова Ю.Н., Об использовании конечных разностей в методе мультистарта для решения некоторого класса задач глобальной оптимизации. Вестник Московского Ун-та, серия 15, 3, 1997.
[3] Bertsekas D.P., Tsitsiklis J.N. Parallel and Distributed Computation: Numerical methods. Prentice Hall, Englewood Cliffs, N.J. 1989.
[4] Dennis J.E., Torczon V. Direct search methods on parallel machines. SIAM J. Optimization^, 4, 448-474, 1991.
[5] Mangasarian O.L. Parallel gradient distribution in unconstrained optimization. SIAM J. Control and Optimization, 33, 6, 1916-1925, 1995.
[6] Masao Fukushima. Parallel variable transformation in unconstrained optimization. SIAM J.Optimization, 8, 4, 658-672, 1998.
[7] Zavriev S.K. On the global optimization properties of finite-difference local descent algorithms. Journal of Global Optimization, 3, 63-78, 1993.
[8] Перунова Ю.Н. Помехоустойчивость методов разностной аппроксимации градиента при распараллеливании. Электронный журнал: Исследовано в России, 156, 1782-1791, 2001, http://zhurnal.ape.relan.ru/articles/2001/156.pdf.
[9] Васильев Ф.П. Численные методы решения экстремальных задач.
Москва, Наука, 1980.
[10] Rosenbrock H.H. An Automatic method for the greatest or least value of a function. Computer Journal, 3, 175-184, 1960.