Практична оптимізація гіперпараметрів: пошук випадкових та сіткових


41

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

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

Який досвід людей, які використовують сітку проти випадкового пошуку?


Випадковий пошук кращий і завжди повинен віддавати перевагу. Однак було б ще краще використовувати спеціалізовані бібліотеки для оптимізації гіперпараметрів, такі як Optunity , hyperopt або bayesopt.
Marc Claesen

Бенджо та ін. пишіть про це тут: paper.nips.cc/paper/… Отже, GP працює найкраще, але RS також чудово працює.
Хлопець L

10
@Marc Коли ви надаєте посилання на щось, з чим ви пов’язані, вам слід пояснити свою асоціацію (одного-двох слів може бути достатньо, навіть чогось такого короткого, як посилатися на нього, як і our Optunityслід); як йдеться в довідці про поведінку, "якщо деякі ... трапляються щодо вашого продукту чи веб-сайту, це нормально. Однак ви повинні розкрити свою приналежність"
Glen_b

Відповіді:


39

Випадковий пошук має ймовірність 95% знайти комбінацію параметрів у межах 5% оптими із лише 60 ітераціями. Також, порівняно з іншими методами, він не затухає в місцевих оптимах.

Перегляньте цей чудовий пост у Dato від Alice Zheng, зокрема розділ алгоритмів налаштування гіперпараметрів .

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

(10.05)n. Тож ймовірність того, що хоча б одному з них вдасться вдарити інтервал, дорівнює 1 мінус цій величині. Ми хочемо хоча б .95 ймовірності успіху. Щоб визначити кількість потрібних нам малюнків, просто вирішіть для n у рівнянні:

1(10.05)n>0.95

n60

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

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

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


3
Посилання на допис у блозі не працює :( Чи може це бути та сама стаття? Oreilly.com/ideas/evaluating-machine-learning-models/page/5/…
n1k31t4

@DexterMorgan Привіт, дякую за голову. Так, блог, мабуть, вниз, і я не впевнений, що я повинен посилатися на інші джерела, які можуть бути не "офіційними" , тому я просто залишу його так, як зараз думаю.
Firebug

Блог все ще не працює ... дякую за цитування його та @ n1k31t4 спасибі за надання посилання для подальшого читання!
llrs

8

Подивіться ще раз на графіку з паперу (мал. 1). Скажімо, що у вас є два параметри, при пошуку в сітці 3x3 ви перевіряєте лише три різних значення параметрів від кожного з параметрів (три рядки та три стовпці на графіку зліва), тоді як при випадковому пошуку ви перевіряєте дев'ять (!) Різних значень параметрів кожного з параметрів (дев'ять чітких рядків та дев'ять чітких стовпців).

Сітка проти випадкового пошуку

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


6

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

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

Більше інформації можна знайти в цих питаннях:

Які є недоліки байєсівської оптимізації гіпер параметрів?

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


2

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

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

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


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

0

Виявлення місця в межах 95% від максимумів у двовимірній топографії лише з однією максимумом вимагає 100% / 25 = 25%, 6,25%, 1,5625% або 16 спостережень. Поки перші чотири спостереження правильно визначають, в якому квадранті знаходиться максимум (екстремальний). 1D топографія займає 100/2 = 50, 25, 12,5, 6,25, 3,125 або 5 * 2. Я здогадуюсь, що люди, які шукають кілька локальних максимумів, використовують великі вхідні сітки, а потім регресію або інший метод прогнозування. Сітка з 60 спостережень повинна мати одне спостереження в межах 100/60 = 1,66% екстремуму. Вікіпедія глобальної оптимізації Я все ще думаю, що завжди існує кращий метод, ніж випадковість.


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