Методы нулевого порядка
Сеточный метод. Сеточный метод предусматривает дискретизацию допустимого множества задачи с помощью сетки, в узлах которой вычисляются значения целевой функции и среди них выбирается минимальное. Если целевая функция удовлетворяет условию Липшица, то его использование в ряде случаев помогает отбросить неперспективные области значений аргумента . Для функции одной переменной условие Липшица имеет вид:
(3.5.3)
где – допустимое множество задачи (3.5.1) или задачи (3.5.2). Из (3.5.3) следует:
(3.5.4)
Это означает, что график целевой функции расположен над ломаной , уравнение которой определяется правой частью неравенства (3.5.4):
(3.5.5)
Если при некотором значении выполнено неравенство , то из дальнейшего рассмотрения исключается интервал значений аргумента , так как он является решением неравенства , где определяется выражением (3.5.5).
Метод покоординатного спуска. Сначала рассмотрим этот метод применительно к решению задачи (3.5.2). Пусть – единичный координатный вектор, у которого -я координата равна , остальные равны нулю . Обозначим через некоторое начальное приближение и через некоторое положительное число, являющееся параметром метода. Допустим, что нам уже известны точка и число при каком-либо . Положим
(3.5.6)
где – целая часть числа . Соотношения (3.5.6) отражают циклический перебор координатных векторов и, таким образом, и т.д. Вычислим значение функции в точке и проверим неравенство
(3.5.7)
Если (3.5.7) выполняется, то примем
(3.5.8)
В том случае, если (3.5.7) не выполняется, вычисляем значение функции в точке и проверяем неравенство
(3.5.9)
В случае выполнения (3.5.9) положим
(3.5.10)
Назовем -ю итерацию удачной, если справедливо хотя бы одно из неравенств (3.5.7) или (3.5.9). Если -я итерация неудачная, т.е. не выполняются оба неравенства (3.5.7) и (3.5.9), то полагаем
(3.5.11)
Здесь – фиксированное число, являющееся параметром метода. Условия (3.5.11) означают, что если за один цикл из итераций при переборе направлений всех координатных осей с шагом реализовалась хотя бы одна удачная итерация, то длина шага не дробится и сохраняется на протяжении по крайней мере следующего цикла из итераций. Если же среди последних итераций не оказалось ни одной удачной итерации, то шаг дробится. Таким образом, если на итерации с номером произошло дробление , то
(3.5.12)
при всех .
Метод (3.5.6) – (3.5.11), как и другие методы нулевого порядка, не требует для своей реализации знания градиента минимизируемой функции. Однако если функция не является гладкой, то, как показано в [1], метод покоординатного спуска может не сходиться к множеству решений задачи (3.5.2). Проиллюстрируем это следующим примером.
Пример 3.5.1
Пусть в задаче (3.5.2)
Нетрудно проверить, что данная функция сильно выпукла на и, следовательно, достигает своего минимального значения на в единственной точке. Возьмем в качестве начального приближения точку . Тогда ,
при всех действительных . Отсюда следует, что все итерации метода (3.5.6) – (3.5.11) при начальной точке и любом выборе начального параметра будут неудачными, т.е. при всех Однако в точке функция не достигает своего минимального значения на : например, при получим .
Рассмотренный метод покоординатного спуска может быть модифицирован применительно к задаче (3.5.1). Пусть – допустимое множество этой задачи:
Предположим, что -е приближение и число при некотором уже найдены. Выберем вектор согласно (3.5.6), сформируем точку и проверим условия
(3.5.13)
Если оба условия (3.5.13) выполняются, то следующее приближение определяем по формулам (3.5.8). Если же хотя бы одно из условий (3.5.13) не выполнено, то формируем точку и проверяем условия
(3.5.14)
В случае выполнения условий (3.5.14) следующее приближение находим по формулам (3.5.10), а если хотя бы одно из условий (3.5.14) не выполнено, то следующее приближение определяется из соотношений (3.5.11). В [1] показано, что если является -мерным параллелепипедом, а функция выпукла и непрерывно дифференцируема на , то при любом выборе начальных и последовательность , получаемая методом (3.5.13), (3.5.8), (3.5.14), (3.5.10), (3.5.11), минимизирует функцию на и сходится к множеству решений экстремальной задачи.
Известны и другие варианты метода покоординатного спуска. Например, последовательность может быть построена по правилу
(3.5.15)
где определяется согласно (3.5.6), а – условиями
(3.5.16)
Метод (3.5.15), (3.5.16) имеет смысл применять тогда, когда величина из (3.5.16) может быть найдена в явном виде. Это будет иметь место, например, в случае, если целевая функция – квадратичная, т.е.
(3.5.17)
где – симметрическая положительно определенная матрица, . Для функции (3.5.17) метод (3.5.15), (3.5.16) приводит к методу Зейделя решения систем линейных уравнений.
Несмотря на то, что скорость сходимости метода покоординатного спуска в общем случае невысокая, благодаря простоте каждой итерации и не слишком жестким требованиям к гладкости минимизируемой функции этот метод весьма широко применяется на практике.
Метод случайного поиска. Метод случайного поиска характеризуется намеренным введением элемента случайности в алгоритм поиска. Во многих вариантах реализации метода последовательность строится по правилу:
(3.5.18)
где – некоторая положительная величина, – какая-либо реализация -мерной случайной величины с известным законом распределения вероятностей. Например, координаты случайного вектора могут представлять собой независимые случайные величины, распределенные равномерно на отрезке . Очевидно, что компьютерная реализация данного метода требует использования датчика (или генератора) случайных чисел, имеющегося в стандартном программном обеспечении.
Рассмотрим несколько вариантов реализации метода случайного поиска минимума функции на множестве , предполагая, что -е приближение уже известно.
Алгоритм с возвратом при неудачном шаге. С помощью датчика случайных чисел получают некоторую реализацию случайного вектора и в пространстве определяют точку . Если и , то сделанный шаг считается удачным, и в этом случае полагается . Если , но , или же , то сделанный шаг считается неудачным и полагается .
В том случае, если окажется, что для достаточно больших , то точка может быть принята в качестве приближения искомой точки минимума.
Алгоритм наилучшей пробы. Формируются какие-либо реализаций случайного вектора и вычисляются значения целевой функции в тех точках , которые принадлежат множеству . Затем полагается , где индекс определяется условием
Здесь и являются параметрами алгоритма.
Алгоритм статистического градиента. Генерируются реализаций случайного вектора и вычисляются разности для всех . Затем находят вектор , где сумма берется по всем тем , для которых . Если , то принимается . Если же , то повторяют описанный процесс с новым набором из реализаций случайного вектора . Величины являются параметрами алгоритма. Вектор называется статистическим градиентом. Если и векторы являются неслучайными и совпадают с соответствующими единичными векторами , то описанный алгоритм превращается в разностный аналог градиентного метода.
В рассмотренных вариантах метода случайного поиска закон распределения вероятностей случайного вектора предполагался не зависящим от номера итерации. Такой поиск называют случайным поиском без обучения. В алгоритмах, реализующих случайный поиск без обучения, отсутствуют анализ результатов выполненных итераций и определение перспективных направлений продолжения поиска точки минимума, в силу чего скорость сходимости в общем случае оказывается невысокой. Однако если на каждой очередной итерации учитывать накопленный опыт поиска минимума на предыдущих итерациях и перестраивать вероятностные свойства поиска так, чтобы направления , более перспективные в смысле убывания функции, становились более вероятными, то от метода случайного поиска можно ожидать большей эффективности. Таким образом, желательно иметь алгоритмы случайного поиска, обладающие способностью к самообучению и самоусовершенствованию в процессе поиска минимума в зависимости от конкретных особенностей минимизируемой функции. Такой поиск называют случайным поиском с обучением. Обучение осуществляется путем целенаправленного изменения закона распределения вероятностей случайного вектора в зависимости от номера итерации и результатов предыдущих итераций таким образом, чтобы перспективные направления поиска сделать более вероятными, а другие направления – соответственно менее вероятными. Поскольку на различных этапах метода случайного поиска с обучением используются реализации случайных векторов с различными законами распределения вероятностей, итерационный процесс (3.5.18) удобнее записать в виде, учитывающем зависимость случайного вектора от :
(3.5.19)
В начале поиска закон распределения случайного вектора выбирают с учетом имеющейся априорной информации о минимизируемой функции . Если такая информация отсутствует, то поиск обычно начинают со случайного вектора , компоненты которого являются независимыми случайными величинами, распределенными равномерно на отрезке .
Для обучения алгоритма в процессе поиска часто используют семейство случайных векторов , зависящих от параметров , и при переходе от -й итерации к -й итерации имеющиеся значения параметров заменяют новыми значениями с учетом результатов предыдущего поиска.
Рассмотрим два варианта метода случайного поиска с обучением для минимизации функции на всем пространстве .
Алгоритм покоординатного обучения. Пусть имеется семейство случайных векторов , каждая координата которых принимает два значения: с вероятностью и с вероятностью , где вероятность зависит от параметра следующим образом:
(3.5.20)
Пусть начальное приближение уже выбрано. Тогда для определения следующего приближения в формуле (3.5.19) при используется какая-либо реализация случайного вектора , соответствующего набору значений параметров . Приближение определяется по формуле (3.5.19) при с помощью случайного вектора . Допустим, что известны приближения и значения параметров при некотором . Тогда полагаем
(3.5.21)
где величина называется параметром забывания, – параметром интенсивности обучения, . При определении следующего приближения в формуле (3.5.19) используем реализацию случайного вектора .
Из (3.5.20), (3.5.21) видно, что если переход от точки к привел к уменьшению значения функции, то вероятность выбора направления на следующем шаге увеличивается. Если же при переходе от к значение функции увеличилось, то вероятность выбора направления на последующем шаге уменьшается. Таким образом, посредством формул (3.5.21) осуществляется обучение алгоритма. Величина в (3.5.21) регулирует скорость обучения: чем больше , тем быстрее обучается алгоритм; при обучение отсутствует. Величина в (3.5.21) регулирует влияние предыдущих значений параметров на обучение алгоритма; при алгоритм «забывает» предыдущие значения . Для устранения возможного чрезмерного детерминирования алгоритма и сохранения его способности к достаточно быстрому обучению на параметры накладываются ограничения и при нарушении этих ограничений заменяются ближайшим из чисел и , . Величины являются параметрами алгоритма.
Вместо формул (3.5.21) часто пользуются формулами
(3.5.22)
Рассмотренный алгоритм покоординатного обучения имеет недостаток, состоящий в том, что поиск и обучение происходят лишь по одному из направлений , где либо , либо . Отсутствие «промежуточных» направлений делает покоординатное обучение немобильным в областях с медленно изменяющимися направлениями спуска. От этого недостатка свободен следующий алгоритм.
Алгоритм непрерывного самообучения. Пусть имеется семейство случайных векторов , где – параметры обучения, – случайный вектор, координаты которого являются независимыми случайными величинами, распределенными равномерно на отрезке . Поиск начинается с рассмотрения случайных векторов , реализации которых используются при определении приближений по формулам (3.5.19). Обучение алгоритма при производится так же, как в алгоритме покоординатного обучения, с помощью формул (3.5.21) или (3.5.22). При больших значениях влияние случайной величины уменьшается, и направление становится более детерминированным и близким к направлению . Во избежание излишней детерминированности метода на параметры накладывают ограничения , и при нарушении этих ограничений заменяется на . Рассмотренный алгоритм, также как и алгоритм покоординатного обучения, характеризуется уменьшением фактора случайности и увеличением степени детерминированности в ходе поиска минимума, следуя преимущественно направлению убывания функции. В то же время наличие случайного фактора в выборе направления дает возможность придать алгоритму большую гибкость, особенно в тех случаях, когда свойства целевой функции в районе поиска изменились или предыдущее обучение оказалось недостаточно точным.
Дата добавления: 2021-05-28; просмотров: 373;