Метаевристики: теорема no free lunch
Кожні кілька років хтось стверджує, що його новий алгоритм, натхненний природою, "перевершує генетичні алгоритми та оптимізацію роєм часток на кожному бенчмарку". Теорема 1997 року доводить, що це не може бути правдою в загальному випадку — і розуміння чому змінює те, як насправді слід обирати алгоритм оптимізації.
1. Що таке метаевристика
Метаевристика — це загальна стратегія пошуку, що спрямовує базову евристику до хороших рішень у великому чи погано вивченому просторі пошуку, не будучи адаптованою під одну конкретну задачу. Генетичні алгоритми (GA), оптимізація роєм часток (PSO), оптимізація мурашиною колонією (ACO) та імітація відпалу (SA) — всі є метаевристиками: вони трактують цільову функцію як чорну скриньку, оцінюють кандидатів-рішення і адаптують пошук лише на основі отриманих оцінок.
Ця властивість чорної скриньки саме те, що робить метаевристики настільки широко застосовними — і саме те, що обмежує теорема No Free Lunch.
2. Теорема No Free Lunch
У 1997 році Девід Волперт і Вільям Макріді опублікували "No Free Lunch Theorems for Optimization", довівши оманливо простий, але далекосяжний результат: усереднено по всіх можливих цільових функціях, кожен алгоритм оптимізації працює однаково. Випадковий пошук справляється так само добре, в середньому, як і найвитонченіший генетичний алгоритм — за умови, що середнє береться по всьому простору мислимих задач, включно з тими, що не мають жодної експлуатованої структури.
"Середнє по всіх функціях" включає цільові функції, що є чистим шумом, активно оманливими чи фрактально розривними — ландшафти, які жодна реальна інженерна задача ніколи не породжує. NFL — це твердження про простір усіх математично можливих задач, а не про простір задач, які люди справді розв'язують.
3. Математичне формулювання
Розглянемо скінченний простір пошуку X і скінченний простір можливих значень Y, тож цільова функція — це відображення f: X → Y. Нехай P(d_y^m | f, m, a) позначає ймовірність того, що алгоритм a спостерігає конкретну послідовність з m вибраних значень d_y^m після m обчислень функції f.
для будь-яких двох алгоритмів a₁ і a₂, підсумовано по всіх можливих цільових функціях f. Словами: сума (а отже і середнє) ефективності по всьому простору функцій однакова для кожного алгоритму.
Інтуїція: оскільки простір пошуку всіх функцій f: X → Y комбінаторно величезний і включає кожну можливу перестановку виходів, будь-яка структура, яку алгоритм використовує, щоб добре працювати на деяких функціях, точно компенсується рівною кількістю функцій, де ця сама структура активно вводить його в оману.
4. Наслідки: немає універсально найкращого алгоритму
- Твердження на кшталт "алгоритм X — найкраща метаевристика" безглузді без уточнення класу задач, що розв'язуються.
- Порівняння бенчмарків (GA проти PSO на 30 стандартних тестових функціях) розповідають лише про ефективність на цих конкретних функціях — не про універсальний рейтинг.
- Алгоритм, що експлуатує реальну структуру (гладкість, сепарабельність, відому симетрію) у вашому реальному класі задач, послідовно перевершуватиме загальний пошук на цьому класі — NFL цього не забороняє, вона забороняє лише універсальну перевагу.
Ось чому вибір алгоритму на практиці — це емпірична, специфічна для домену вправа, а не пошук одного "найкращого" методу.
5. Практичний висновок
Оскільки жоден алгоритм не домінує універсально, справжня точка важеля — це відповідність структури алгоритму структурі задачі та впровадження доменних знань, де це можливо:
- Гладкі, диференційовні ландшафти — градієнтні методи зазвичай прямо перевершують метаевристики; чорна скринька взагалі не потрібна.
- Комбінаторні, графові задачі (маршрутизація, планування) — феромонна структура ACO напряму кодує інформацію про вартість шляху.
- Неперервні, мультимодальні ландшафти — швидкісне дослідження PSO експлуатує гладку локальність; кросовер GA експлуатує структуру будівельних блоків, коли підрішення добре комбінуються.
- Пересічені ландшафти з багатьма локальними оптимумами і малою структурою — контрольована випадковість імітації відпалу опирається потраплянню в пастку, ціною повільнішої збіжності.
Добре спроєктоване кодування, хороша початкова здогадка чи власний крок локального пошуку, адаптований під специфічну структуру вашої задачі, зазвичай перевершує перемикання між загальними метаевристиками — теорема NFL, по суті, є аргументом на користь вбудовування доменних знань в алгоритм, а не пошуку магічного універсального рішення.
6. GA проти PSO проти SA на різних ландшафтах
Генетичний алгоритм
Переважає, коли хороші "будівельні блоки" рішення можна рекомбінувати — наприклад, дискретні, модульні задачі, як планування чи відбір ознак.
PSO
Переважає на неперервних, плавно змінюваних ландшафтах, де близькі точки простору параметрів мають подібну якість — наприклад, налаштування гіперпараметрів нейромережі.
Імітація відпалу
Переважає на пересічених, багатовимірних ландшафтах з багатьма оманливими локальними оптимумами, де контрольована температурою випадковість запобігає передчасній збіжності.
На бенчмарку типу функції Растригіна (сильно мультимодальна, але симетрична й гладка) PSO чи GA зазвичай сходяться найшвидше. На справді оманливому ландшафті, сконструйованому щоб вводити в оману градієнтну поведінку, чисто випадкове збурення імітації відпалу може перевершити обидва — саме такий ландшафт, який, за NFL, існує для кожного алгоритму.
7. Ілюстрація теореми
// Концептуальна ілюстрація: середня ефективність по УСІХ
// можливих цільових функціях однакова для будь-якого алгоритму
function averagePerformance(algorithm, allPossibleFunctions):
total = 0
for each f in allPossibleFunctions:
total += runAlgorithm(algorithm, f, budget = M)
return total / allPossibleFunctions.length
// Теорема NFL: це середнє ОДНАКОВЕ для кожного алгоритму,
// бо allPossibleFunctions включає кожну перестановку виходів —
// для кожної функції, яку алгоритм обробляє добре, існує
// "дзеркальна" функція, де він обробляє так само погано,
// скасовуючи будь-яку чисту перевагу.
// Що насправді має значення на практиці:
averagePerformance(algorithm, yourRealProblemClass)
// ← ЦЕ середнє може і справді відрізняється між алгоритмами,
// бо реальні класи задач — це крихітна, структурована підмножина
// "усіх можливих функцій".
Ось чому кожне надійне бенчмарк-дослідження звітує результати на конкретному, названому тестовому наборі (CEC, BBOB, Растригін, Розенброк), а не заявляє про універсальну перевагу — твердження завжди неявно означає "найкращий на цьому структурованому класі задач", ніколи "найкращий на всіх мислимих цільових функціях".
Часті запитання
Що таке теорема No Free Lunch?
Теорема No Free Lunch, доведена Волпертом і Макріді у 1997 році, стверджує, що усереднено по всіх можливих цільових функціях, кожен алгоритм оптимізації має точно однакову очікувану ефективність. Жоден алгоритм не може бути універсально кращим за інший без експлуатації структури, специфічної для класу задач.
Чи означає No Free Lunch, що всі алгоритми однаково хороші на практиці?
Ні. NFL застосовується до середнього по простору УСІХ можливих цільових функцій, включно з чистим випадковим шумом, що не репрезентує реальні задачі. Реальні задачі оптимізації мають експлуатовану структуру, тож алгоритм, підібраний під цю структуру, може значно перевершити інші на задачах, які дійсно важливі.
Що таке метаевристика?
Метаевристика — це загальна, незалежна від задачі стратегія для спрямування пошуку простором рішень, наприклад генетичні алгоритми, оптимізація роєм часток, імітація відпалу чи оптимізація мурашиною колонією. Метаевристики не гарантують глобальний оптимум, але зазвичай швидко знаходять хороші рішення для великих чи складних просторів пошуку.
Хто довів теорему No Free Lunch і коли?
Чи застосовується NFL до вибору моделі машинного навчання теж?
Чому статті постійно стверджують, що їхній новий алгоритм перевершує GA і PSO на бенчмарках?
Як насправді обирати між GA, PSO, ACO і SA для реальної задачі?
Чи порушує додавання доменних знань теорему No Free Lunch?
Чи справді випадковий пошук такий самий хороший, як генетичний алгоритм у середньому?
Що означає "безкоштовний обід" у назві цієї теореми?
🐜 Побачте, як метаевристика експлуатує реальну структуру
Симуляція мурашиної колонії показує ACO — метаевристику, налаштовану на експлуатацію графової структури задач найкоротшого шляху, а не універсальний оптимізатор.
Відкрити симуляцію →