Сложность Oracle (оптимизация)
![]() | Было предложено объединить эту статью со статьей «Сложность, основанная на информации» . ( Обсудить ) Предлагается с июня 2024 г. |
В математической оптимизации сложность оракула — это стандартная теоретическая основа для изучения вычислительных требований для решения классов задач оптимизации. Он подходит для анализа итерационных алгоритмов , которые вычисляют локальную информацию о целевой функции в различных точках (например, значение функции, градиент , гессиан и т. д.). Эта структура использовалась для обеспечения жестких гарантий количества необходимых итераций в наихудшем случае для нескольких важных классов задач оптимизации.
Формальное описание
[ редактировать ]Рассмотрим задачу минимизации некоторой целевой функции (по некоторому домену ), где известно, что он принадлежит некоторому семейству функций . Вместо прямого доступа к , предполагается, что алгоритм может получить информацию о через оракула , что дает точку в , возвращает некоторую локальную информацию о в окрестностях . Алгоритм начинается в некоторой точке инициализации , использует информацию, предоставленную оракулом, для выбора следующей точки , использует дополнительную информацию для выбора следующей точки , и так далее.
В качестве конкретного примера предположим, что ( -мерное евклидово пространство ) и рассмотрим алгоритм градиентного спуска , который инициализируется в некоторой точке и происходит через рекурсивное уравнение
- ,
где это некоторый параметр размера шага. Этот алгоритм можно смоделировать в рамках вышеприведенной схемы, где заданы любые оракул возвращает градиент , который затем используется для выбора следующей точки .
В этой структуре для каждого выбора семейства функций и оракул , можно изучить, сколько вызовов/итераций оракула требуется, чтобы гарантировать некоторый критерий оптимизации (например, гарантировать, что алгоритм выдает точку такой, что для некоторых ). Это известно как сложность оракула этого класса задач оптимизации: а именно, такое количество итераций, при котором, с одной стороны, существует алгоритм, который, как доказуемо, требует для успеха только этого количества итераций (для любой функции из ), а с другой стороны, есть доказательство того, что ни один алгоритм не может добиться успеха с меньшим количеством итераций равномерно для всех функций в .
Подход сложности оракула по своей сути отличается от теории сложности вычислений , которая опирается на машину Тьюринга для моделирования алгоритмов и требует входных данных алгоритма (в данном случае функция ), чтобы быть представленным в виде небольшого количества строк в памяти. Вместо этого алгоритм не ограничен вычислительно, но его доступ к функции предполагается ограниченным. Это означает, что, с одной стороны, результаты оракула по сложности применимы только к конкретным семействам алгоритмов, которые обращаются к функции определенным образом, а не к любому алгоритму, как в теории сложности вычислений. С другой стороны, результаты применимы к большинству, если не ко всем итеративным алгоритмам, используемым на практике, не полагаются на какие-либо недоказанные предположения и приводят к тонкому пониманию того, как геометрия функции и тип информации, используемой алгоритмом, влияют на практическую производительность.
Общие настройки
[ редактировать ]Сложность Oracle применялась к довольно большому количеству различных настроек, в зависимости от критерия оптимизации, класса функции. и тип оракула .
С точки зрения критерия оптимизации, наиболее распространенным из них является поиск точки, близкой к оптимальной, а именно создание для некоторых маленьких . Некоторые другие критерии включают в себя поиск приблизительно стационарной точки ( ), или нахождение приближенного локального минимума.
Существует множество классов функций которые были изучены. Некоторые распространенные варианты включают выпуклые , сильно выпуклые и невыпуклые функции, гладкие и негладкие функции (скажем, с точки зрения липшицевых свойств градиентов или производных более высокого порядка), области с ограниченной размерностью. , против областей с неограниченной размерностью и сумм двух или более функций с разными свойствами.
С точки зрения оракула , принято считать, что для данной точки , он возвращает значение функции в , а также производные до некоторого порядка (скажем, только значение, значение и градиент, значение и градиент и гессиан и т. д.). Иногда изучают более сложные оракулы. Например, стохастический оракул возвращает значения и производные, искаженные случайным шумом, и полезен для изучения стохастической оптимизации . методов [1] Другой пример — проксимальный оракул , который по заданной точке и параметр , возвращает точку минимизация .
Примеры результатов сложности оракула
[ редактировать ]Ниже приведены несколько известных результатов сложности оракула (вплоть до числовых констант) для получения ошибки оптимизации. для некоторых достаточно маленьких и по домену где не фиксировано и может быть сколь угодно большим (если не указано иное). Мы также предполагаем, что точка инициализации удовлетворяет по какому-то параметру , где — некоторый глобальный минимизатор целевой функции.
Класс функции | Оракул | Сложность Oracle |
---|---|---|
Выпуклый, -Липшицевый, фиксированный размер | Значение + градиент | [2] |
Выпуклый, -Липшиц | Значение + градиент | [2] |
Выпуклый, -Липшицев градиент | Значение + градиент | [2] |
- Сильно выпуклый, -Липшицев градиент | Значение + градиент | [2] |
Выпуклый, -Липшиц Гессен | Значение + градиент + гессиан | [3] |
- Сильно выпуклый, -Липшиц Гессен | Значение + градиент + гессиан | [3] |
Ссылки
[ редактировать ]- ^ Агарвал, Алех; Бартлетт, Питер; Равикумар, Прадип; Уэйнрайт, Мартин (май 2012 г.). «Теоретико-информационные нижние границы сложности оракула стохастической выпуклой оптимизации». Транзакции IEEE по теории информации . 58 (5): 3235–3249. arXiv : 1009.0571 . дои : 10.1109/TIT.2011.2182178 . S2CID 728066 .
- ^ Перейти обратно: а б с д Nesterov, Yurii (2018). Lectures on Convex Optimization . Springer. ISBN 978-3-319-91578-4 .
- ^ Перейти обратно: а б Арджевани, Йоси; Шамир, Охад; Шифф, Рон (28 мая 2018 г.). «Сложность Oracle методов второго порядка для гладкой выпуклой оптимизации». Математическое программирование . 178 (1–2): 327–360. arXiv : 1705.07260 . дои : 10.1007/s10107-018-1293-1 . S2CID 28260226 .
Дальнейшее чтение
[ редактировать ]- Немировский, Аркадий; Юдин, Дэвид (1983). Сложность задач и эффективность методов оптимизации . Джон Уайли и сыновья.
- Немировский, Аркадий (1994). «Информационная сложность выпуклого программирования (конспекты лекций)» (PDF) . Проверено 14 июня 2020 г.
- Бубек, Себастьян (2015). «Выпуклая оптимизация: алгоритмы и сложность». Основы и тенденции в машинном обучении . 8 (3–4): 231–357. arXiv : 1405.4980 . дои : 10.1561/2200000050 .