Hyperparameter Optimization
Оновлено: 31.07.2023
Що таке гіперпараметри?
Гіперпараметр в ML - це параметр, який не вивчається з навчальних даних, а задається практиком до початку процесу навчання.
Терміни "параметри моделі" та "гіперпараметри", які іноді використовуються як рівнозначні, хоча це не зовсім одне й те ж саме:
- Параметри моделі - це атрибути навчальних даних, які модель ML вивчає під час навчання. Таким чином, параметри є невід'ємною частиною моделі. Коефіцієнти в регресії або ваги та зсуви в нейронній мережі є прикладами параметрів моделі, оскільки вони оцінюються на етапі навчання.
- Гіперпараметри моделі - це налаштування моделі, які визначені заздалегідь і керують процесом навчання. Модель не має гіперпараметрів. Префікс "гіпер-" означає, що вони є підвищеними характеристиками, які керують процесом навчання.
Налаштування гіперпараметрів допомагає узагальнити моделі машинного навчання. Оптимізація гіперпараметрів у Python доступна через бібліотеку машинного навчання scikit-learn. Здатність алгоритму ефективно працювати як на навчальних, так і на свіжих даних називається узагальненням. В результаті модель виходить з ладу:
- Перенавчання відбувається, коли модель вивчає певні закономірності під час навчання настільки добре, що погано працює на тестовому наборі даних. Це означає, що модель застосовна виключно для навчання і не адаптується до нових даних.
- Невідповідність відбувається, коли модель погано працює як на навчальних, так і на тестових даних.
Існує три основні підходи до визначення ідеального набору значень гіперпараметрів:
- Пошук по сітці - це процес пошуку системи значень для кожного гіперпараметра, виконання системи з кожною можливою сумішшю цих змінних і вибору системи значень, яка дає найкращі результати. Оскільки змінні, які потрібно спробувати, встановлюються індивідуально лікарем, пошук за сіткою передбачає вгадування.
- Для визначення ідеального набору значень, випадковий пошук включає вибір випадкових варіацій значень гіперпараметрів із наданих статистичних розподілів. Перевага цього пошуку порівняно з пошуком по сітці полягає в тому, що він дозволяє шукати в більшому діапазоні значень, не збільшуючи при цьому кількість тестів.
- Байєсівський пошук - це прогресивна стратегія, яка покращує наступний процес пошуку, використовуючи результати попередніх наборів гіперпараметрів. Байєсівський пошук скорочує час оптимізації, особливо для систем, навчених на великих обсягах даних.
Застосування HPO
Кожна система машинного навчання містить гіперпараметри, і найголовніша мета автоматизованого машинного навчання полягає в автоматичному налаштуванні цих гіперпараметрів для максимізації продуктивності. Сучасні глибокі нейронні мережі, зокрема, значною мірою покладаються на широкий спектр гіперпараметрів для побудови, регуляризації та оптимізації нейронної мережі. Існують різні ключові застосування для оптимізації гіперпараметрів у машинному навчанні.
- Зменшити кількість людської роботи, необхідної для використання машинного навчання. Це особливо актуально в контексті AutoML.
- Підвищити продуктивність алгоритмів машинного навчання; це призвело до нових найсучасніших результатів для важливих тестів машинного навчання.
- Підвищити повторюваність і справедливість наукових досліджень. Автоматизований HPO, безумовно, є більш відтворюваним, ніж ручний пошук. Це дозволяє проводити справедливі порівняння, оскільки різні процедури можуть бути оцінені належним чином, тільки якщо всі вони налаштовані на однаковий рівень для розглядуваної проблеми.
HPO має довгу історію, яка сягає 1990 року, і вже тоді було виявлено, що різні комбінації гіперпараметрів працюють краще для різних наборів даних. З іншого боку, HPO є відносно новим відкриттям, яке може бути використане для модифікації широких конвеєрів для конкретних областей застосування. Зараз загальновизнано, що налаштовані гіперпараметри перевершують налаштування за замовчуванням, пропоновані більшістю пакетів машинного навчання.
У зв'язку з розширенням використання ВК у бізнесі, HPO має важливе економічне значення і відіграє все більш важливу роль у ньому, чи то в корпоративних продуктах, чи то як компонент хмарних сервісів ВК, чи то як окрема послуга.
Виклики HPO
HPO стикається з різними перешкодами, які роблять його складною проблемою для вирішення на практиці:
- Для величезних моделей, складних конвеєрів ML або величезних наборів даних обчислення функцій може бути надто дорогим.
- Простір конфігурації часто є складним і багатовимірним. Крім того, не завжди очевидно, які алгоритми для оптимізації гіперпараметрів потрібно налаштовувати і в яких діапазонах.
- У більшості випадків ми не маємо доступу до функції втрат або градієнта, коли мова йде про гіперпараметри.