Случайный поиск
Случайный поиск — это семейство методов численной оптимизации, которые не требуют градиента[англ.] оптимизационной задачи, а потому метод может быть использован для функций с разрывами или недифференцируемых. Такие методы оптимизации также известны как методы прямого поиска, безградиентные методы или методы «чёрного ящика».
Истоки
[править | править код]В 1953 году Андерсон рассмотрел прогресс методов поиска максимума или минимума задач с использованием ряда предположений, распределённых с некоторым порядком или шаблоном в пространстве поиска параметров, например, запутанный план с экспоненциально распределенными интервалами/шагами[1]. Этот поиск продолжается последовательно по каждому параметру и итеративно уточняет лучшие предположения из последней последовательности. Шаблон может быть сеточным поиском всех параметров, последовательным поиском по каждому параметру или комбинацией того и другого. Метод был разработан для скрининга экспериментальных условий в химических реакциях рядом учёных, перечисленных в статье Андерсона. Код MATLAB, воспроизводящий последовательную процедуру для общей нелинейной регрессии примера математической модели, можно найти здесь (JCFit @ GitHub)[2].
Название «случайный поиск» приписывается Растригину[3], который одним из первых представил этот метод вместе с базовым математическим анализом. Случайный поиск работает путём итеративного перемещения к лучшим позициям в пространстве поиска, которые выбираются из гиперсферы, окружающей текущую позицию.
Случайный поиск использовался в искусственных нейронных сетях для оптимизации гиперпараметров[4].
Если хорошие части пространства поиска занимают 5% объема, то вероятность попадания в хорошую конфигурацию составляет 5%. Вероятность найти хотя бы одну хорошую конфигурацию превышает 95% после 60 попыток (, используя метод обратной вероятности).
Алгоритм
[править | править код]Описанный здесь алгоритм является разновидностью локального случайного поиска, где каждая итерация зависит от решения-кандидата предыдущей итерации. Существуют альтернативные методы случайного поиска, которые выбирают образцы из всего пространства поиска (например, чистый случайный поиск или равномерный глобальный случайный поиск), но они не рассматриваются в данной статье.
Пусть функция будет целевой функцией, которую следует минимизировать. Пусть обозначает положение или потенциальное решение в пространстве поиска. Базовый алгоритм случайного поиска можно описать следующим образом:
- Инициализировать x случайной точкой в пространстве поиска.
- Повторять следующие шаги до тех пор, пока не будет достигнут критерий завершения (например, выполнено заданное количество итераций или достигнута достаточная целевая функция):
- Выбрать новое положение y из гиперсферы заданного радиуса, окружающей текущее положение x (см., например, метод Марсальи для выборки из гиперсферы.)
- Если то перейти к новому положению, присвоив
Варианты
[править | править код]
Истинный случайный поиск полностью зависит от удачи и может быть как очень затратным, так и очень успешным, в то время как структурированный случайный поиск является стратегическим. В литературе представлен ряд вариантов случайного поиска с использованием структурированной выборки в пространстве поиска:
- Процедура Фридмана-Сэвиджа: последовательный поиск каждого параметра с набором предположений, имеющих пространственный шаблон между начальным предположением и границами[5]. Пример шагов с экспоненциальным распределением можно найти в коде MATLAB (JCFit @ GitHub)[2]. Этот пример кода сходится на 1-2 порядка медленнее, чем алгоритм Левенберга — Марквардта, пример которого также представлен на GitHub.
- Случайный поиск с фиксированным шагом в базовом алгоритме Растригина[3], который выбирает пробы из гиперсферы фиксированного радиуса.
- Случайный поиск с оптимальным размером шага Шумера и Стейнглица[6] представляет собой в первую очередь теоретическое исследование того, как оптимально настроить радиус гиперсферы для быстрого схождения к оптимуму. Реальная реализация метода требует аппроксимации этого оптимального радиуса путём многократной выборки, что делает её дорогостоящей в исполнении.
- Случайный поиск с адаптивным размером шага, также предложенный Шумером и Стейнглицем[6], пытается эвристически адаптировать радиус гиперсферы — генерируются два новых кандидатных решения, одно с текущим номинальным размером шага, а другое с бо́льшим размером шага. Бо́льший размер шага становится новым номинальным размером шага только в том случае, если он приводит к большему улучшению. Если в течение нескольких итераций ни один из шагов не приводит к улучшению, номинальный размер шага уменьшается.
- Случайный поиск с оптимизированным относительным размером шага Шрака и Чойта[7] аппроксимирует оптимальный размер шага путём простого экспоненциального уменьшения. Однако формула для вычисления коэффициента уменьшения является несколько сложной.
См. также
[править | править код]- Случайная оптимизация[англ.] — это тесно связанное семейство методов оптимизации, которые используют выборку из нормального распределения вместо гиперсферы.
- Метод случайного поиска с последовательной редукцией области исследования[англ.] (метод Лууса – Яаколы) — это тесно связанный метод оптимизации, использующий равномерное распределение для выборки и простую формулу для экспоненциального уменьшения диапазона выборки.
- Поиск по образцу делает шаги вдоль осей пространства поиска, используя экспоненциально уменьшающиеся размеры шагов.
Примечания
[править | править код]- ↑ Anderson R.L. Recent Advances in Finding Best Operating Conditions // Journal of the American Statistical Association. — 1953. — Т. 48, № 264. — С. 789–798. — doi:10.2307/2281072. — .
- 1 2 GitHub - Jixin Chen/jcfit: A Random Search Algorithm for general mathematical model(s) fittings. GitHub.
- 1 2
Rastrigin L.A. The convergence of the random search method in the extremal control of a many parameter system // Automation and Remote Control. — 1963. — Т. 24, № 11. — С. 1337–1342.
Перевод с русского Автоматика и телемеханика 1964 страницы 1467–1473 - ↑ Bergstra J., Bengio Y. Random search for hyper-parameter optimization. // Journal of Machine Learning Research. — 2012. — Т. 13. — С. 281–305.
- ↑ Friedman M., Savage L.J. Planning experiments seeking maxima, chapter 13 of Techniques of Statistical Analysis, edited by Eisenhart, Hastay, and Wallis.. — McGraw-Hill Book Co., New York, 1947. — С. 363–372. Via Milton Friedman from Hoover Institution at Stanford University
- 1 2 Schumer M.A., Steiglitz K. Adaptive step size random search // IEEE Transactions on Automatic Control. — 1968. — Т. 13, № 3. — С. 270–276. — doi:10.1109/tac.1968.1098903. — Bibcode:1968ITAC...13..270S.
- ↑ Schrack G., Choit M. Optimized relative step size random searches // Mathematical Programming. — 1976. — № 1. — С. 230–244. — doi:10.1007/bf01580669.