Оптимізація, коли функція витрат повільно оцінюється


59

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

У мене є те, що мені здається незвичайною ситуацією. Кожна оцінка моєї функції витрат дорога. Я намагаюся знайти набір параметрів, які мінімізують 3D-поверхню проти поверхонь земної істини. Щоразу, коли я змінюю параметр, мені потрібно запустити алгоритм проти всієї групи вибірки, щоб виміряти його ефект. Для того, щоб обчислити градієнт, мені потрібно змінити всі 15 параметрів самостійно, це означає, що я повинен регенерувати всі поверхні і порівнювати порівняно із зразком когорту занадто багато разів за градієнт, і, безумовно, занадто багато разів протягом оптимізації.

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

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


5
Ви чули про стохастичний градієнтний спуск? Для глибоких нейронних мереж, застосованих до великих навчальних наборів, у вас є аналогічна проблема (але можна градієнт Eval аналітично), і стандартне рішення полягає в тому, щоб зробити градієнтний спуск на основі лише одного зразка (стохастичного) проти всієї когорти (партії)
seanv507

3
Я лише розпливчасто знайомий із місцевістю, тож, це коментар, а не відповідь. Але те, що ви обговорюєте, дуже схоже на тему кількісного визначення невизначеності, з якою часто стикаються інженери, де для оцінки одного цільового функціонування потрібні тижні (принаймні, з проблемами, з якими стикаються мої інженерні колеги). Моє дуже обмежене розуміння того, як це вдається, - це зробити сурогатне наближення, яке набагато простіше оцінити на основі минулих оцінок та більш простих інженерних моделей, а потім використовувати ці сурогатні моделі, щоб вибрати наступну оцінку ...
Cliff AB

2
... більш дорогої цільової функції. Я ненавиджу це говорити, але наразі я більше не знаю про цю тему; Мені про це розповіли лише коротко, обговорюючи теми досліджень із зазначеними інженерами. Цікаво, що це здається дуже складним напрямком досліджень: я вважаю, що хороші моделі вимагають як хорошого розуміння фізики, так і статистики.
Кліф АВ

1
@ seanv507 Так, дякую, але я уникав цього з подібної причини. Щоб запустити один зразок, потрібно від 30 секунд до хвилини. Якщо у мене 15 параметрів, я переглядаю майже 8 хвилин за розрахунком градієнта, навіть якщо я використовую лише один зразок. Якщо простір великий, це може зайняти дуже багато часу. Виправте мене, якщо ви мали на увазі інші ідеї.
Джаред Бекфорт

5
"мені здається незвичною ситуацією. Кожна оцінка моєї функції витрат дорога". Це взагалі незвичайна ситуація. Він відображається в усьому світі, наприклад, коли коли-небудь ваша вартість витрат виникає від запуску моделювання (наприклад, у цій статті: white.ucc.asn.au/publications/White2015PsoTransistorSizing.pdf, ми моделюємо схему в SPICE за 10 секунд ). Більш чітко, в експериментальній науці оцінки можуть зайняти віки. Один з моїх друзів проекту Masters - це в основному оптимізація 5 параметрів, щоб знайти найкращий спосіб вставки ДНК. Кожне оцінювання займає 24 години.
Ліндон Уайт

Відповіді:


59

TL; DR

Я рекомендую використовувати LIPO. Це доказувально правильно і доказово краще, ніж чистий випадковий пошук (PRS). Він також надзвичайно простий у виконанні та не має гіперпараметрів. Я не проводив аналіз, який порівнював LIPO з BO, але я сподівався, що простота та ефективність LIPO означають, що він буде перемагати БО.

(Див. Також: Які є недоліки байєсівської оптимізації гіпер параметрів? )

Байєсова оптимізація

Баєсові методи оптимізації будують сурогатні моделі Гаусса для дослідження простору параметрів. Основна ідея полягає в тому, що кортежі параметрів, які знаходяться ближче один до одного, матимуть подібні значення функцій, тому припущення про структуру ко-дисперсії серед точок дозволяє алгоритму робити зрозумілі здогадки про те, який найкращий кортеж параметрів найбільш вартий спробувати наступний. Ця стратегія допомагає зменшити кількість оцінок функцій; насправді мотивація методів БО полягає в тому, щоб число оцінок функцій було максимально низьким, "використовуючи цілого буйвола", щоб добре здогадатися, який пункт слід перевірити далі. Існують різні показники достоїнств (очікуване покращення, очікуване поліпшення кількості, ймовірність покращення ...), які використовуються для порівняння балів, які слід відвідати наступним.

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

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

З іншого боку, вам доведеться підходити принаймні до одного лікаря-терапевта на кожній ітерації (або декількох, вибираючи "найкраще" або усереднюючи альтернативи, або повністю байєсівські методи). Потім модель використовується для складання (ймовірно, тисяч) прогнозів, як правило, у вигляді багатостартової локальної оптимізації, із зауваженням, що оцінити функцію прогнозування GP набагато дешевше, ніж функцію, що оптимізується. Але навіть з цим обчислювальним накладним покриттям, як правило, трапляється так, що навіть невипуклі функції можна оптимізувати за відносно невеликої кількості викликів функцій.

Документ на цю тему, що цитується, - Jones et al. , «Ефективна глобальна оптимізація дорогих функцій чорного ящика». Але існує багато варіацій цієї ідеї.

Випадковий пошук

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

Припустимо, ваш квантил дорівнює і ви хочете, щоб ймовірність того, що результати моделі знаходяться в топіці відсотків усіх кортежів гіперпараметра. Ймовірність того, що всі спробуваних кортежів не знаходяться у цьому вікні, дорівнює (оскільки вони обрані незалежно незалежно від одного і того ж розподілу), тому ймовірність того, що принаймні один кортеж знаходиться в цій області, становить . Збираючи все це у нас єp = 0,95 100 × ( 1 - q ) = 5 n q n = 0,95 n 1 - 0,95 nq=0.95p=0.95100×(1q)=5nqn=0.95n10.95n

1qnpnlog(1p)log(q)

що в нашому конкретному випадку дає .n59

Цей результат є тим, чому більшість людей рекомендують спроб кортежів для випадкового пошуку. Варто зазначити, що можна порівняти з кількістю експериментів, необхідних для отримання хороших результатів методами на основі Гауссового процесу, коли є помірне число параметрів. На відміну від Гауссових процесів, кількість кортежів запитів не змінюється з кількістю гіперпараметрів для пошуку; Дійсно, для великої кількості гіперпараметрів метод Гаусса, який базується на процесі, може зайняти багато ітерацій.n = 60n=60n=60

Оскільки у вас є вірогідна гарантія того, наскільки хороші результати, це може бути переконливим інструментом, щоб переконати свого шефа, що не потрібно проводити більше експериментів.

ЛІПО та його варіанти

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


1
Це здається сучасним варіантом поверхневих методів реагування!
kjetil b halvorsen

1
Насправді випадковий пошук може спрацювати надзвичайно добре: argmin.net/2016/06/20/hypertuning
Tim

1
@Tim Так, ваша думка добре сприйнята. Я не хотів "вирішувати" питання про те, що краще на цій посаді, оскільки на БО по суті є нескінченні перестановки, кожна з яких претендує на "найкращий" оптимізатор чорних скриньок - унеможливлюючи остаточне визначення. Я погоджуюся, що випадковий пошук може працювати досить добре, але я б фактично рекомендував LIPO за PRS. У всіх моїх експериментах LIPO є коректно правильним і сильно перемагає PRS (в середньому). LIPO також має мінімальні витрати на оцінку: якщо ви можете мінімізувати QP, ви можете використовувати LIPO, а LIPO має нульові гіперпараметри (на відміну від BO).
Відновіть Моніку

Я радий, що перевірив це питання ще раз. LIPO здається чудовим.
Джаред Бекфорт

ЛІПО - це чудово. Коли у мене з’явиться мить, я розгорну свою відповідь, щоб дати кращий облік LIPO.
Відновіть Моніку

40

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

Я б сказав, що сучасним золотим стандартом для оцінки (дуже) дорогої функції чорної скриньки є (глобальна) байєсова оптимізація (БО). Sycorax вже описав деякі особливості BO, тому я просто додаю інформацію, яка може бути корисною.

Для початку ви можете прочитати цей оглядовий документ 1 . Існує також більш свіжий [2].

Оптимізація Байєса в останні роки постійно зростає як поле, завдяки цілому ряду спеціалізованих семінарів (наприклад, BayesOpt , і перегляньте ці відео з майстерні Шеффілда в БО), оскільки в ньому є дуже практичне застосування в машинному навчанні, наприклад для оптимізації гіпер-параметрів алгоритмів ML - див., наприклад, цей документ [3] та пов'язаний з ним інструментарій, SpearMint . Існує багато інших пакетів на різних мовах, які реалізують різні види алгоритмів оптимізації Байєса.

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

В іншому випадку, для огляду загальних методів оптимізації без похідних можна переглянути цей огляд [4] та перевірити наявність алгоритмів, які мають хороші властивості швидкої конвергенції. Наприклад, багаторівневий пошук координат (MCS), як правило, дуже швидко конверсується в сусідній мінімум (звичайно, не завжди глобальний мінімум). MCS вважається глобальною оптимізацією, але ви можете зробити його локальним, встановивши відповідні обмежені обмеження.

Нарешті, вас цікавить БО для цільових функцій, які є дорогими і галасливими , дивіться мою відповідь на це питання .


Список літератури:

1 Броху та ін., "Навчальний посібник з байесівської оптимізації функцій дорогих витрат із застосуванням до моделювання активного користувача та навчання ієрархічного зміцнення" (2010).

[2] Шахріарі та ін., "Виведення людини з циклу: огляд байесівської оптимізації" (2015).

[3] Snoek et al., "Практична байєсова оптимізація алгоритмів машинного навчання", NIPS (2012).

[4] Ріос та Сахінідіс, "Оптимізація без похідних: огляд алгоритмів та порівняння програмних реалізацій", Journal of Global Optimization (2013).


4
+1 Це чудова відповідь. Зокрема, ці папери є чудовим доповненням до цієї нитки; Дійсно, я не знав, що загальний метод, який я описав, називається Байєсова оптимізація. Але я стурбований тим, що з часом посилання можуть погіршитися. Чи не заперечуєте ви додати більш повну інформацію про цитування, щоб майбутні користувачі могли отримати доступ до цих робіт?
Відновіть Моніку

Байєсівські документи для оптимізації є дуже корисними. Дякую за відповідь.
Джаред Бекфорт

1
@ user777: Добре. Додано явний довідковий список в кінці, якого має бути достатньо для відновлення робіт.
lacerbi

6

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

Наприклад, погляньте на цей документ (Björkman, M. & Holmström, K. "Глобальна оптимізація дорогих невипуклих функцій за допомогою функцій радіальної основи." Оптимізація та інженерія (2000) 1: 373. doi: 10.1023 / A: 1011584207202) анотація якої, здається, вказує саме на це саме те, що ви хочете:

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


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

Björkman, M. & Holmström, K. "Глобальна оптимізація дорогих невипуклих функцій з використанням радіальних базових функцій". Optimization and Engineering (2000) 1: 373. doi: 10.1023 / A: 1011584207202
jkdev

4

Ти не самотній.

Системи дорогого оцінювання дуже поширені в техніці, такі як моделі методу кінцевих елементів (FEM) та моделі обчислювальної динаміки рідини (CFD). Оптимізація цих обчислювально дорогих моделей дуже потрібна і складна, оскільки еволюційним алгоритмам часто потрібні десятки тисяч оцінок проблеми, що не є можливим для дорогих для оцінки проблем. На щастя, існує маса методів (алгоритмів), для вирішення цієї проблеми. Наскільки мені відомо, більшість із них базується на сурогатних моделях (метамоделях). Деякі з них перелічені нижче.

  • Ефективна глобальна оптимізація (EGO) [1]. Алгоритм EGO був згаданий вище і може бути найвідомішим алгоритмом оптимізації на основі сурогатів. Він заснований на моделі Кріґінга та критерію заповнення, який називається функцією очікуваного вдосконалення (EI). R пакетами, що включають алгоритм EGO, є DiceOptim і DiceKriging.
  • Метод відбору проб (MPS) [2]. Алгоритм MPS побудований на моделі RBF, а для набору балів-кандидатів використовується додаткова стратегія вибірки. Коди MATLAB публікуються авторами за адресою http://www.sfu.ca/~gwa5/software.html . Для отримання оптимального алгоритму MPS може знадобитися більше оцінок, але з мого особистого досвіду можна обробляти складніші задачі, ніж алгоритм EGO.
  • Ансамблеві моделі сурогатів Джуліани Мюллер [3]. Вона використовувала кілька сурогатів, щоб підвищити можливість пошуку. Пакет інструментів MATLAB MATSuMoTo доступний на веб- сайті https://github.com/Piiloblondie/MATSuMoTo .

Влітку ці алгоритми оптимізації на основі сурогатних методів намагаються знайти глобальний оптимум проблеми, використовуючи якомога менше оцінок. Це досягається шляхом повного використання інформації, яку надає сурогат (сурогати). Огляди щодо оптимізації обчислювально дорогих проблем наведені в [4-6].


Довідка:

  1. DR Jones, M. Schonlau та WJ Welch, "Ефективна глобальна оптимізація дорогих функцій чорної скриньки", Journal of Global Optimization, vol. 13, С. 455-492, 1998.
  2. L. Wang, S. Shan, GG Wang, "Метод вибіркового методу глобальної оптимізації для дорогих функцій чорної скриньки", Engineering Optimization, vol. 36, с. 419-438, 2004.
  3. Дж. Мюллер, "Алгоритми сурогатних моделей для обчислювально дорогих проблем глобальної оптимізації Black-Box", Тампереський технологічний університет, 2012 р.
  4. Г. Г. Ванг та С. Шань, «Огляд методів метамоделювання на підтримку оптимізації інженерного проектування», Journal of Mechanical Design, vol. 129, с. 370-380, 2007.
  5. А. І. Форестер та А. Дж. Кін, "Нещодавні досягнення в галузі сурогатної оптимізації", "Прогрес аерокосмічних наук", т. 45, с. 50-79, 2009.
  6. ФАК Віана, Т. В. Сімпсон, В. Балабанов та В. Торопов, "Метамоделювання в оптимізації міждисциплінарного дизайну: наскільки ми дійсно зайшли?", AIAA Journal, vol. 52, арк. 670-690, 01.04.2014.

3

Дві прості стратегії, які я успішно використовував у минулому:

  1. Якщо можливо, спробуйте знайти більш просту функцію сурогату, яка наближається до вашої оцінки повної вартості - типова аналітична модель, що замінює моделювання. Оптимізуйте цю простішу функцію. Потім підтвердіть і точно налаштуйте отримане рішення за допомогою точної функції витрат.
  2. Якщо можливо, спробуйте знайти спосіб оцінити точну функцію "дельта-вартість" - точну, на відміну від наближення від використання градієнта. Тобто, починаючи з 15-ти мірної точки, для якої ви оцінили повну вартість, знайдіть спосіб отримати, як змінилась би вартість, вносячи невелику зміну до однієї (або декількох) з 15 складових вашої поточної точки. Вам потрібно буде використовувати властивості локалізації невеликого збурення, якщо такі є у вашому конкретному випадку, і вам, ймовірно, потрібно буде визначати, кешувати та оновлювати внутрішню змінну стану на цьому шляху.

Ці стратегії дуже залежні від конкретного випадку, я не знаю, чи вони можуть бути застосовні у вашому випадку чи ні, вибачте, якщо вони не є. Обидва можуть бути застосовні (як це було у моїх випадках використання): застосуйте стратегію «дельта-вартість» до більш простої аналітичної моделі - продуктивність може покращитися на кілька порядків.

Іншою стратегією було б використання методу другого порядку, який, як правило, скорочує кількість ітерацій (але кожна ітерація є більш складною) - наприклад, алгоритм Левенберга – Маркарда . Але враховуючи, що, здається, у вас немає способу безпосередньо та ефективно оцінити градієнт, це, мабуть, не є життєздатним варіантом у цьому випадку.


3

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

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


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

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

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

2
Я не впевнений, наскільки термінологія змінюється залежно від спільноти, але я зазвичай тут поверхня відповідей використовується як синонім "поліноміальної сурогатної моделі" (як правило, квадратична). Тому я схильний вважати сурогатне моделювання як надмножину моделювання поверхні відповідей. (Це може бути невірно.)
GeoMatt22

0

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

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

Як стохастичний градієнтний спуск може заощадити час порівняно зі стандартним схилом градієнта?

Як запустити лінійну регресію паралельно / розподіленим способом для встановлення великих даних?

Ця ж хитрість стосується і цільової функції.

Axb2AAb

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.