Настанова щодо вибору гіперпараметрів у програмі глибокого навчання


38

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


Рекомендую книгу поглибленого навчання Яну Гудфеллоу: deeplearningbook.org
Вадим Смоляков

Відповіді:


24

В основному є чотири методи:

  1. Ручний пошук: Використовуючи знання, які ви маєте про параметри відгадки проблеми, і спостерігайте за результатом. На основі цього результату налаштовуйте параметри. Повторюйте цей процес, поки не знайдете параметри, які працюють добре, або не вистачає часу.
  2. Пошук сітки: Використовуючи ваші знання про проблему, визначте діапазони для гіперпараметрів. Потім виберіть з цих діапазонів кілька точок, як правило, рівномірно розподілених. Навчіть свою мережу, використовуючи кожну комбінацію параметрів і виберіть комбінацію, яка найкраще працює. Крім того, ви можете повторити пошук на більш вузькому домені, орієнтованому на параметри, які є найкращими.
  3. Випадковий пошук: Подібно пошуку в сітці, ви використовуєте знання проблеми для визначення діапазонів для гіперпараметрів. Однак замість того, щоб вибирати значення з цих діапазонів методичним способом, ви вибираєте їх навмання. Повторіть цей процес, поки не знайдете параметри, які працюють добре, або використовуйте те, що ви навчитеся, щоб звузити пошук. У статті Довільний пошук оптимізації гіперпараметрів доктор Бенджіо пропонує це базовий метод, з яким слід порівнювати всі інші методи, і показує, що він, як правило, працює краще, ніж інші методи.
  4. Байєсова оптимізація: Більш недавня робота була зосереджена на вдосконаленні цих інших підходів, використовуючи інформацію, отриману від будь-якого експерименту, щоб вирішити, як відкоригувати гіпер параметри для наступного експерименту. Прикладом цієї роботи може бути практична байесова оптимізація алгоритмів машинного навчання Адама та ін.

14

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

У класі прямих методів можна виділити кілька різних підходів:

  • похідні вільні методи, наприклад симплекс Nelder-Mead або DIRECT
  • еволюційні методи, такі як CMA-ES та рої частинок
  • підходи, засновані на моделі, наприклад, EGO та послідовний Kriging

Ви можете заглянути в Optunity - пакет Python, який пропонує різноманітні рішення для налаштування гіперпараметрів (усе, про що я вже згадував, крім EGO та Kriging). Незабаром MATLAB та R з'явиться оптостійкість. Відмова: Я є головним розробником цього пакету.

На основі мого особистого досвіду еволюційні методи дуже потужні для таких типів проблем.


10

Не дивіться далі! Йошуа Бенджо опублікував одну з моїх улюблених прикладних робіт, яку я рекомендую всім інженерам машинного навчання, коли вони починають навчати нейронні сітки: Практичні рекомендації щодо градієнтної підготовки глибоких архітектур. Щоб дізнатися про поворот гіперпараметра: включаючи швидкість навчання, графік навчання, раннє зупинення, розмір міні-партії, кількість прихованих шарів тощо, див. Розділ 3.

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