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

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

Задача ред.

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

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

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

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

Базовий алгоритм ред.

Алгоритм баєсівської оптимізації складається з наступних етапів[1]:

  1. Ініціалізація
  2. Використовуючи наявні виміряні значення функції, уточнюємо апріорний розподіл ймовірностей, отримуючи апостеріорний розподіл (регресія гаусівського процесу)
  3. Знаходимо максимум функції вибору на всій області визначення, обчислюємо   у цій точці
  4. Постанні два кроки повторюємо задану заздалегідь кількість разів, або ж доки максимум функції вибору не буде меншим за деякий встановлений поріг

Загалом, баєсівська оптимізація побудована на дилемі "розвідка або розробка" (англ. exploring vs. exploiting) — функція вибору побудована таким чином, що її значення збільшується при віддаленні від відомих точок, а також при наближенні до відомого максимуму (нижче ми опишемо цей процес більш докладно). Тобто, максимальне значення зазвичай знаходиться або десь посеред великої ділянки що не містить спостережень, або ж неподалік від максимального відомого значення функції.

Регресія гаусівського процесу ред.

 
Кілька траєкторій Гауссівського процесу, вибраних з апріорного розподілу
 
Декілька апостеріорних траєкторій, що проходять через дві відомі точки (початок координат і (1, 1). Різні параметри гаусівського ядра породжують траєкторії різної звивистості. Функція середнього в усіх випадках є нульовою

Нехай є гауссівський процес тобто, такий випадковий процес  , що для будь-якого набору значень   випадковий вектор   має багатовимірний нормальний розподіл (зверніть увагу, це не означає, що функція задана лише в дискретних точках — вона задана по всьому простору, і будь які довільно вибрані точки будуть пов'язані таким чином). Тоді конкретна реалізація цього процесу буде деякою функцією  [1].

Різним процесам відповідають різні розподіли функцій. Загалом, Гаусівський процес описується двома параметрами[2]: функцією середнього, яка повертає вектор середніх значень для заданого набору точок[1] (кожна окрема точка   є вектором у просторі  )

 

і функцією, що породжує матрицю коваріації для цих точок[1]

 

Тоді, якщо нам відома деяка кількість значень функції  , можна використати цю інформацію для того щоб уточнити апріорний розподіл наступним чином[1]:

 
 

Розподіл, заданий цими параметрами, визначає ймовірності значень невідомого,  -го значення функції по всій області визначення.

Функція середнього ред.

Апріорна функція середнього для задач баєсівської оптимізації обирається достатньо простою. У найпопулярнішому випадку константи, її значення може обиратися рівним нулю, або середньому значень в усіх точках (але не обмежено цими варіантами). Іноді, якщо є причини вважати, що значення   прямо чи обернено пропорційне якомусь з параметрів, можуть використовуватися поліноми невисокого ступеню. Також, можуть застосовуватися більш складні методи визначення — функція середнього може сама будуватися на за допомогою непараметричних моделей (РБФ, Random forest, тощо)[2].

Ядерна функція коваріації ред.

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

Популярними варіантами для баєсівської оптимізації

  • гаусівське ядро, також відоме як квадратично-експоненціальне ядро (англ. squared-exponential)[4][5]
 ,

де   — відстань між точками. Параметрами ядра є   і  .

  • ядро Матерна (або сімейство ядер, що залежить від  )[6]
 ,

де   — модифікована функція Бесселя. Параметрами ядра є   і  . Типові значення для   — 3/2, 5/2.

  • γ-експоненційне ядро[7]
 

Функція має параметри   і  , при чому параметр   може набувати значень від 0 до 2. При   переходить в квадратично-експоненційне

  • Раціонально-квадратичне ядро англ. Rational Quadratic[7]
 

з параметрами  

Також, у всіх цих функціях замість масштабування всього вектора (наприклад, параметр l у гаусівському ядрі), кожна компонента вектора   може масштабуватися окремо — у цьому випадку замість одного параметру використовується   параметрів, де   — розмірність вектора  [8].

Загалом, відомо, що клас функцій, які можна апроксимувати використовуючи прості (і навіть константні) функції середнього і довільні ядра коваріації є досить широким, і як мінімум включає в себе всі ліпшицеві функції[9].

Визначення гіперпараметрів ред.

Параметри функції ядра і середнього (вектор, що містить всі параметри позначається як  ) визначаються виходячи з відомих значень функції. Існує кілька підходів до такого визначення[1]:

  • Оцінка максимальної правдоподібності (англ. MLE): для заданого набору точок обчислюється правдоподібність такого результату в залежності від значень гіперпараметрів,  , і обирається те значення, для якого правдоподібність максимальна
  • Оцінка максимальної апостеріорної ймовірності (англ. MAP): у цьому методі припускається, що самі гіперпараметри мають деякий розподіл  . Тоді оцінка максимальної правдоподібності змінюється, і функція, максимум якої ми шукаємо виглядає так:
 

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

  • Повністю баєсівська оцінка (англ. fully Bayesian): у цьому методі ми не обираємо єдине значення гіперпараметрів, а обчислюємо апостеріорний розподіл як:
 

зазвичай, такий інтеграл неможливо взяти, тому обчислюють його наближене значення за допомогою суми

 

де   — деяка кількість наборів гіперпараметрів, що отримана з загального розподілу гіперпараметрів будь-яким методом МКМЛ.

Функція оцінки ред.

Загалом, функція оцінки (або функція вибору, англ. Acquisition Functions) дозволяє зрозуміти потенційну вигоду від випробовування в даній точці. Найбільш типовою функцією оцінки є очікуване покращення (англ. Expected Improvement):

 

Де  математичне очікування,   — максимальне значення функції з вже відомих, а   означає, що ми беремо лише позитивні значення (від'ємні замінюються нулем)[1].

Як можна зрозуміти з механіки гаусівського процесу, значення функції   у точці  , що знаходиться поблизу відомої точки є, ймовірно, близьким до значення цієї точки, а при віддаленні від них, розкид можливий значень росте. Таким чином, у точках близьких до максимуму ймовірність того, що нове значення буде вищим ніж максимум є порівняно високою, але значення цього перевищення є невеликим (велике середнє, мала девіація). Тоді як у далеких від максимуму широких проміжках що не містять жодного значення, ймовірність того що значення перевищить максимум є малою, проте саме це перевищення може бути значним (маленьке середнє, велика девіація)[1]. При обчисленні нової точки, девіація навколо неї, зазвичай, падає — тому алгоритм змушує весь час переходити від дослідженням незаповнених, віддалених від відомих точок зон, до уточнення значень навколо актуального максимуму. Це коливання називають дилемою exploring vs. exploiting.

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

Значення   при якому очікуване покращення досягає максимуму є значенням, у якому береться наступна точка.

Іншими варіантами функції оцінки є[1]:

  • Градієнт знання (англ. Knowledge Gradient)
  • Ентропійний пошук (англ. Entropy Search)
  • Ентропійний пошук з передбаченням (англ. Predictive Entropy Search)

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

Для ілюстрації часто використовується графік апостеріорного середнього, і значення деякого довірчого інтервалу (наприклад, 95%). Максимальне значення довірчого інтервалу (англ. Upper Confidence Bound) може використовуватися і як функція оцінки[10].

Екзотичні варіанти алгоритму ред.

 
У випадку наявності шуму, функція середнього не буде обов'язково проходити через всі наявні точки

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

Найважливішим з них є зашумлені оцінки — якщо значення функції   не є точним, а саме вимірюється з деяким шумом. У такому випадку, до матриці коваріації додаються діагональні члени, що не залежать від відстані, і позначають власне похибку вимірювання. Описані вище функції оцінки можуть бути застосовані і в цьому випадку, хоча існують спеціалізовані варіанти цих функцій, що є більш доречними для цієї задачі[1].

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

Історія ред.

Вперше подібний алгоритм був запропоновий у 1964 році Гарольдом Кушнером[en][1][11]. У методі Кушнера, втім, функція апроксимувалася випадковим блуканням (математичним аналогом броунівського руху) зі змінним середнім і дисперсією. Метод був покращений А.Г. Жилінскасом і Йонасом Моцкусом в 1970х[1], у припущенні, що на кожному етапі процесу шукається лише одна точка, якою випробовують наступною (one-stage Bayesian method), проте вони також вважали процес, що описує функцію, вінерівським. У 1975 Моцкус запропонував використовувати максимум функції очікуваного покращення (EI) як наступну точку[12][1](пошук максимуму цієї функції був досліджений ще у 1961 році Чарльзом Кларком, при роботі над зовсім іншою задачею[1][13]). Загалом, метод важко узагальнювався на більш ніж одновимірний випадок (тобто, випадок коли функція залежала від більш ніж одного аргументу)[14]. Також, з 1960х років у геології з'явився кригінг подібний метод, що використовувався для побудови карт[14].

Значний поштовх у розвитку, метод отримав у 1998 році[1], після роботи Дональда Джонса, Матіаса Шонлау[en] і Вільяма Велча, в якій вони описали метод, більш подібний на сучасний — де брався до уваги зв'язок між близькими точками (проте, автори використовували матрицю кореляції замість матриці коваріації). У їх роботі була використана функція, подібна до γ-експоненційного ядра. Описаний ними метод отримав назву Efficient Global Optimization (EGO).

Примітки ред.

Література ред.