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


11

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

Як називається проблема пошуку мінімізатора ? Які існують методи?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.