Выбор алгоритма
Выбор алгоритма (иногда также называемый выбором алгоритма по экземпляру или выбором автономного алгоритма ) — это метаалгоритмический метод выбора алгоритма из портфеля на основе каждого экземпляра. Это мотивировано наблюдением, что во многих практических задачах разные алгоритмы имеют разные характеристики производительности. То есть, хотя один алгоритм работает хорошо в одних сценариях, он работает плохо в других и наоборот для другого алгоритма. Если мы сможем определить, когда какой алгоритм использовать, мы сможем оптимизировать каждый сценарий и улучшить общую производительность. Именно на это направлен выбор алгоритма. Единственным условием применения методов выбора алгоритмов является наличие (или возможность создания) набора дополнительных алгоритмов.
Определение
[ редактировать ]Учитывая портфолио алгоритмов , набор экземпляров и показатель стоимости , задача выбора алгоритма состоит в нахождении отображения из экземпляров к алгоритмам такой, что стоимость во всех экземплярах оптимизировано. [1] [2]
Примеры
[ редактировать ]Проблема булевой выполнимости (и другие сложные комбинаторные проблемы)
[ редактировать ]Хорошо известным применением выбора алгоритма является проблема булевой выполнимости . Здесь портфель алгоритмов представляет собой набор (дополнительных) решателей SAT , экземпляры — это логические формулы, показатель стоимости — это, например, среднее время выполнения или количество нерешенных экземпляров. Итак, цель состоит в том, чтобы выбрать хорошо работающий решатель SAT для каждого отдельного экземпляра. Таким же образом выбор алгоритма можно применить и ко многим другим -сложные задачи (такие как смешанное целочисленное программирование , CSP , планирование AI , TSP , MAXSAT , QBF и программирование набора ответов ). Системы-победители конкурса SAT: SATzilla, [3] 3С [4] и CSHC [5]
Машинное обучение
[ редактировать ]В машинном обучении выбор алгоритма более известен как метаобучение . Портфель алгоритмов состоит из алгоритмов машинного обучения (например, случайный лес, SVM, DNN), экземплярами являются наборы данных, а метрикой стоимости является, например, частота ошибок. Итак, цель состоит в том, чтобы предсказать, какой алгоритм машинного обучения будет иметь небольшую ошибку в каждом наборе данных.
Возможности экземпляра
[ редактировать ]Проблема выбора алгоритма в основном решается с помощью методов машинного обучения. Представляя экземпляры проблемы числовыми признаками Выбор алгоритма можно рассматривать как задачу многоклассовой классификации , изучая отображение для данного экземпляра .
Объекты экземпляра — это числовые представления экземпляров. Например, мы можем подсчитать количество переменных, предложений, среднюю длину предложений для булевых формул, [6] или количество образцов, функций, баланс классов для наборов данных ML, чтобы получить представление об их характеристиках.
Статические и зондирующие функции
[ редактировать ]Мы различаем два типа характеристик:
- Статические функции в большинстве случаев представляют собой некоторые подсчеты и статистику (например, соотношение предложений и переменных в SAT). Эти функции варьируются от очень дешевых функций (например, количества переменных) до очень сложных функций (например, статистики графов переменных).
- Зондирующие признаки (иногда также называемые признаками ориентиров) вычисляются путем проведения некоторого анализа поведения алгоритма на экземпляре (например, точности дешевого алгоритма дерева решений на наборе данных ML или запуска в течение короткого времени решателя стохастического локального поиска на наборе данных). Булева формула). Эти функции часто стоят дороже, чем простые статические функции.
Стоимость функций
[ редактировать ]В зависимости от используемой метрики производительности , вычисление признаков может быть связано с затратами. Например, если мы используем время работы в качестве показателя производительности, мы включаем время на вычисление функций нашего экземпляра в производительность системы выбора алгоритма. Решение SAT является конкретным примером, когда такими затратами функций нельзя пренебрегать, поскольку экземпляры функций для формул CNF могут быть либо очень дешевыми (например, получение количества переменных может быть выполнено за постоянное время для CNF в формате DIMAC), либо очень дешевыми. дорогостоящие (например, графические функции, стоимость которых может составлять десятки или сотни секунд).
На практике в таких сценариях важно учитывать накладные расходы на вычисление функций; в противном случае создается обманчивое впечатление об эффективности подхода к выбору алгоритма. Например, если решение, какой алгоритм выбрать, может быть принято с идеальной точностью, но особенностью является время работы портфельных алгоритмов, то портфельный подход не принесет никакой пользы. Это не было бы очевидно, если бы стоимость функций не учитывалась.
Подходы
[ редактировать ]Регрессионный подход
[ редактировать ]Один из первых успешных подходов к выбору алгоритмов предсказал производительность каждого алгоритма. и выбрали алгоритм с наилучшей прогнозируемой производительностью для примера . [3]
Кластерный подход
[ редактировать ]Распространенным предположением является то, что данный набор экземпляров могут быть сгруппированы в однородные подмножества и для каждого из этих подмножеств существует один хорошо работающий алгоритм для всех экземпляров. Итак, обучение состоит из выявления однородных кластеров с помощью подхода неконтролируемой кластеризации и связывания алгоритма с каждым кластером. Кластеру назначается новый экземпляр и выбирается соответствующий алгоритм. [7]
Более современный подход — экономичная иерархическая кластеризация. [5] использование контролируемого обучения для выявления однородных подмножеств экземпляров.
Парный подход к классификации с учетом затрат
[ редактировать ]Общий подход к многоклассовой классификации заключается в изучении парных моделей между каждой парой классов (здесь алгоритмы). и выберите класс, который чаще всего предсказывали парные модели. Мы можем взвесить экземпляры задачи парного прогнозирования по разнице в производительности между двумя алгоритмами. Это мотивировано тем, что мы больше всего заботимся о том, чтобы прогнозы с большими различиями были правильными, но штраф за неправильный прогноз невелик, если разницы в производительности почти нет. Поэтому каждый экземпляр для обучения модели классификации против связано с затратами . [8]
Требования
[ редактировать ]Задача выбора алгоритма может эффективно применяться при следующих предположениях:
- Портфолио алгоритмов является дополнительным по отношению к множеству экземпляров , т. е. не существует единого алгоритма который доминирует по производительности всех других алгоритмов над (примеры дополнительного анализа см. на рисунках справа).
- В некоторых приложениях вычисление функций экземпляра связано с затратами. Например, если метрикой стоимости является время работы, нам также необходимо учитывать время на вычисление функций экземпляра. В таких случаях затраты на вычисление функций не должны превышать прирост производительности за счет выбора алгоритма.
Домены приложений
[ редактировать ]Выбор алгоритма не ограничивается отдельными областями, но может быть применен к любому типу алгоритма, если вышеуказанные требования удовлетворены. Домены приложений включают в себя:
- сложные комбинаторные задачи: [10] SAT , смешанное целочисленное программирование , CSP , планирование AI , TSP , MAXSAT , QBF и программирование набора ответов
- комбинаторные аукционы
- в машинном обучении эта проблема известна как метаобучение
- дизайн программного обеспечения
- оптимизация черного ящика
- многоагентные системы
- численная оптимизация
- линейная алгебра, дифференциальные уравнения
- эволюционные алгоритмы
- проблема с маршрутом транспортного средства
- энергетические системы
Обширный список литературы по выбору алгоритмов можно найти в обзоре литературы.
Варианты выбора алгоритма
[ редактировать ]Онлайн подбор
[ редактировать ]Выбор онлайн-алгоритма означает переключение между различными алгоритмами в процессе решения. Это полезно в качестве гиперэвристики . Напротив, автономный выбор алгоритма выбирает алгоритм для данного экземпляра только один раз и перед процессом решения.
Расчет графиков
[ редактировать ]Расширением выбора алгоритма является задача планирования алгоритма для каждого экземпляра, в которой мы не выбираем только один решатель, а выбираем бюджет времени для каждого алгоритма на основе каждого экземпляра. Этот подход повышает производительность систем выбора, особенно если признаки экземпляра не очень информативны и вероятен неправильный выбор одного решателя. [11]
Выбор параллельных портфелей
[ редактировать ]Учитывая растущую важность параллельных вычислений, расширением выбора алгоритма для параллельных вычислений является выбор параллельного портфеля, в котором мы выбираем подмножество алгоритмов для одновременного запуска в параллельном портфеле. [12]
Внешние ссылки
[ редактировать ]Ссылки
[ редактировать ]- ^ Райс, Джон Р. (1976). «Проблема выбора алгоритма». Достижения в области компьютеров . Том. 15. С. 65–118. дои : 10.1016/S0065-2458(08)60520-3 . ISBN 9780120121151 .
- ^ Бишль, Бернд; Кершке, Паскаль; Коттофф, Ларс; Линдауэр, Мариус; Малицкий Юрий; Фрешетт, Александр; Хус, Хольгер; Хаттер, Фрэнк; Лейтон-Браун, Кевин; Тирни, Кевин; Ваншорен, Хоакин (2016). «ASlib: библиотека тестов для выбора алгоритма». Искусственный интеллект . 237 : 41–58. arXiv : 1506.02465 . дои : 10.1016/j.artint.2016.04.003 . S2CID 261945 .
- ^ Jump up to: а б Л. Сюй; Ф. Хаттер; Х. Хоос и К. Лейтон-Браун (2008). «SATzilla: Выбор алгоритма на основе портфеля для SAT». Журнал исследований искусственного интеллекта . 32 : 565–606. arXiv : 1111.2249 . дои : 10.1613/jair.2490 . S2CID 10987043 .
- ^ С. Кадиоглу; Ю. Малицкий; А. Сабхарвал; Х. Самуловиц; М. Селлманн (2011). «Выбор алгоритма и планирование». В Ли, Дж. (ред.). Принципы и практика программирования с ограничениями . Конспекты лекций по информатике. Том. 6876. стр. 454–469. CiteSeerX 10.1.1.211.1807 . дои : 10.1007/978-3-642-23786-7_35 . ISBN 978-3-642-23785-0 .
- ^ Jump up to: а б Ю. Малицкий; А. Сабхарвал; Х. Самуловиц; М. Селлманн (2013). «Портфели алгоритмов на основе экономически чувствительной иерархической кластеризации». Материалы двадцать третьей международной совместной конференции по искусственному интеллекту . АААИ Пресс. стр. 608–614. ISBN 978-1-57735-633-2 .
- ^ Э. Нудельман; К. Лейтон-Браун; Х. Хоос; А. Девкар; Ю. Шохам (2004). «Понимание случайного SAT: помимо соотношения предложений и переменных» (PDF) . Труды КП .
- ^ С. Кадиоглу; Ю. Малицкий; М. Селлманн; К. Тирни (2010). «ISAC – Конфигурация алгоритма для конкретного экземпляра» (PDF) . Материалы Европейской конференции по искусственному интеллекту .
- ^ Л. Сюй; Ф. Хаттер; Дж. Шен; Х. Хоос; К. Лейтон-Браун (2012). «SATzilla2012: Улучшенный выбор алгоритма на основе моделей классификации с учетом затрат» (PDF) . Материалы SAT Challenge 2012: описания решателя и эталонных тестов .
- ^ А. Фрешетт; Л. Коттофф; Т. Михалак; Т. Рахван; Х. Хоос и К. Лейтон-Браун (2016). «Использование значения Шепли для анализа портфелей алгоритмов» . Материалы конференции AAAI по искусственному интеллекту . 30 . дои : 10.1609/aaai.v30i1.10440 . S2CID 6676831 .
- ^ Коттхофф, Ларс. « Выбор алгоритма для задач комбинаторного поиска: обзор ». Интеллектуальный анализ данных и программирование с ограничениями. Спрингер, Чам, 2016. 149–190.
- ^ М. Линдауэр; Р. Бергдолл; Ф. Хаттер (2016). «Эмпирическое исследование поэкземплярного планирования алгоритмов». Обучение и интеллектуальная оптимизация (PDF) . Конспекты лекций по информатике. Том. 10079. стр. 253–259. дои : 10.1007/978-3-319-50349-3_20 . ISBN 978-3-319-50348-6 .
- ^ М. Линдауэр; Х. Хоос и Ф. Хаттер (2015). «От последовательного выбора алгоритма к параллельному выбору портфеля». Обучение и интеллектуальная оптимизация (PDF) . Конспекты лекций по информатике. Том. 8994. стр. 1–16. дои : 10.1007/978-3-319-19084-6_1 . ISBN 978-3-319-19083-9 .