Оптимізувати невідому функцію, яку можна оцінити лише?


11

З огляду на невідому функцію , ми можемо оцінити її значення в будь-якій точці його області, але у нас немає її вираження. Іншими словами, - це як чорний ящик для нас.f:RdRf

Як називається проблема пошуку мінімізатора ? Які існують методи?f

Як називається задача пошуку розв’язання рівняння ? Які існують методи?f(x)=0

У вищезазначених двох проблемах, чи добре використовувати інтерполяцію чи підходити до деяких оцінок f: використовуючи функцію з відомою формою та параметром слід визначити, а потім мінімізувати або знайти його корінь?g θ θ g θ(xi,f(xi)),i=1,,ngθθgθ

Дякую та з повагою!


1
Чи можете ви оцінити його градієнт у заданій точці?
chaohuang

@chaohuang: Є два випадки: ви можете або не можете оцінити його градієнт, залежно від припущень.
Тім

Якщо градієнт доступний, завдання, які ви задаєте, можуть бути виконані алгоритмами на основі градієнта. Наприклад, мінімальний або, принаймні, локальний мінімум, можна обчислити методом найбільш крутого спуску, а корені можна знайти за методом Ньютона.
чаохуанг

А якщо градієнт невідомий, існують метагевристичні методи , які також називаються похідними або методами чорної скриньки і, як правило, у вигляді стохастичної оптимізації.
чаохуанг

2
Чи знаєте ви, чи функція гладка (навіть якщо ви не можете оцінити градієнт)? Чи знаєте ви, чи функція опукла? Якщо він не опуклий, чи знаєте ви, що це хоча б Ліпшиц? Якщо функція абсолютно загальна, то це безперспективна проблема.
Брайан Борчерс

Відповіді:


13

Методи, які ви шукаєте - тобто, які використовують лише оцінки функцій, але не похідні - називаються методами вільної оптимізації похідних . Про них є велика кількість літератури, і ви можете знайти розділ про такі методи в більшості книг про оптимізацію. Типові підходи включають

  • Наближення градієнта за допомогою кінцевих різниць, якщо можна з розумом очікувати, що функція буде гладкою і, можливо, опуклою;
  • Методи Монте-Карло, такі як імітація відпалу;
  • Генетичні алгоритми.

1
Чи можу я просто додати до цього списку "Сурогатне моделювання"? Вони дуже застосовні для оптимізації чорних ящиків, особливо якщо функція дорого оцінити.
ОскарБ

Так, ви можете :-) Безумовно, чудове доповнення.
Вольфганг Бангерт

Можна також використовувати метод Нелдера-Мід, якщо відомі хороші оцінки оптими.
JM

Так, ви можете використовувати Nelder-Mead, але це жахливий алгоритм порівняно з більшістю всіх інших.
Вольфганг Бангерт

1
@WolfgangBangerth: Ваш коментар до Nelder-Mead дійсний лише у вимірі d> 2. У двох вимірах, з багатьох проблем, це відмінний і дуже важкий спосіб перемогти.
Арнольд Ноймаєр

2

Думаю, вам слід почати з: семінару GECCO з тестування оптимізації чорного поля з реальними параметрами (BBOB 2016) http://numbbo.github.io/workshops/index.html

Ви знайдете безліч різних алгоритмів, які використовувались на попередніх змаганнях, і які порівнювались на загальній основі. Якщо ви почнете в іншому місці, незабаром ви потопитеся в сотнях робіт, які стверджують, що їх методи та алгоритми працюють краще, ніж інші, маючи фактичні фактичні докази для цих претензій.

Донедавна це було, якщо чесно сказати, ганебним станом справ і всією владою для INRIA, GECCO та багатьох інших за зусилля, які вони доклали до створення рамки для раціональних порівнянь.


-1

Я просто додам, що однією з ключових можливостей тут є можливість масштабування методу оптимізації на багатоядерних процесорах . Якщо ви можете одночасно виконати декілька оцінок функції, це дає швидкість, рівну кількості залучених ядер. Порівняйте це лише з використанням трохи більш точної моделі відповідей, що робить вас на 10% ефективнішими.

Я рекомендую переглянути цей код , він може бути корисним для людей, які мають доступ до багатьох ядер. Математика, що стоїть за нею, описана в цій роботі .


1
Ця відповідь є занадто короткою, щоб бути корисною (і залишатися корисною, оскільки посилання можуть переходити в будь-який момент). Також зауважте, що ви є автором цього програмного забезпечення .
Крістіан Класон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.