Руководство по выбору гиперпараметров в Deep Learning


38

Я ищу статью, которая могла бы помочь дать руководство о том, как выбирать гиперпараметры глубокой архитектуры, такие как многоуровневые авто-кодеры или сети с глубоким доверием. Существует много гиперпараметров, и я очень запутался в том, как их выбирать. Также использование перекрестной проверки не вариант, так как обучение действительно занимает много времени!


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

Ответы:


24

Есть в основном четыре метода:

  1. Ручной поиск: Используя имеющиеся у вас знания о параметрах задачи, угадывайте и наблюдайте за результатом. На основании этого результата настройте параметры. Повторяйте этот процесс, пока не найдете параметры, которые работают хорошо, или у вас не хватит времени.
  2. Поиск по сетке: Используя имеющиеся у вас знания о проблеме, определите диапазоны для гиперпараметров. Затем выберите несколько точек из этих диапазонов, обычно равномерно распределенных. Обучите свою сеть, используя каждую комбинацию параметров, и выберите комбинацию, которая работает лучше всего. В качестве альтернативы вы можете повторить поиск в более узком домене, сосредоточенном вокруг параметров, которые работают лучше всего.
  3. Случайный поиск: Как и при поиске по сетке, вы используете знание проблемы для определения диапазонов гиперпараметров. Однако вместо того, чтобы методично выбирать значения из этих диапазонов, вы выбираете их случайным образом. Повторяйте этот процесс, пока не найдете подходящие параметры или не воспользуетесь тем, что узнали, чтобы сузить область поиска. В статье « Случайный поиск для гиперпараметрической оптимизации» д-р Бенжио предлагает использовать этот базовый метод, с которым следует сравнивать все другие методы, и показывает, что он работает лучше, чем другие методы.
  4. Байесовская оптимизация: более поздняя работа была сосредоточена на улучшении этих других подходов с использованием информации, полученной из любого данного эксперимента, чтобы решить, как отрегулировать гиперпараметры для следующего эксперимента. Примером этой работы может служить практическая байесовская оптимизация алгоритмов машинного обучения, разработанная Adams et al.

14

Существует множество методов. Они могут быть в значительной степени разделены на случайные / ненаправленные методы поиска (такие как поиск по сетке или случайный поиск) и прямые методы. Имейте в виду, однако, что все они требуют тестирования значительного количества настроек гиперпараметра, если вам не повезет (по крайней мере, сотни, зависит от количества параметров).

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

  • методы без производных, например Nelder-Mead simplex или DIRECT
  • эволюционные методы, такие как CMA-ES и рой частиц
  • модельно-ориентированные подходы, например, EGO и последовательный кригинг

Возможно, вы захотите взглянуть на Optunity , пакет Python, который предлагает множество решателей для настройки гиперпараметров (пока все, что я упомянул, кроме EGO и Kriging). Оптуниты будут доступны для MATLAB и R в ближайшее время. Отказ от ответственности: я являюсь основным разработчиком этого пакета.

Исходя из моего личного опыта, эволюционные методы очень эффективны для решения подобных проблем.


10

Смотрите не дальше! Йошуа Бенжио опубликовал одну из моих любимых прикладных работ, которую я рекомендую всем новым инженерам машинного обучения, когда они начинают обучать нейронные сети: практические рекомендации для градиентного обучения глубоких архитектур. Чтобы получить представление о повороте гиперпараметра: включая скорость обучения, график скорости обучения, раннюю остановку, размер мини-пакета, количество скрытых слоев и т. Д., См. Раздел 3.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.