Оптимизация гиперпараметров
При обучении модели нужно заранее настроить множество вещей: скорость обучения, оптимизатор, функцию ошибки, количество слоёв и многое другое. Какие значения этих гиперпараметров дадут наилучший результат — неизвестно, приходится действовать наугад. Затем даже вручную подбирать параметры. Эту проблему давно решили с помощью оптимизации гиперпараметров (Hyperparameter Optimization — HPO).
HPO — это процесс автоматического поиска оптимальных значений. Нужно указать, какие значения варьировать, их диапазон, после чего запустить обучение и измерить качество. Процесс повторяется многократно, чтобы достичь лучшего результата. Это делается либо путём полного перебора, либо случайного выбора значений, либо с использованием статистических или эволюционных подходов. Статистические (байесовские) алгоритмы позволяют значительно сократить время по сравнению с полным перебором.
Кроме алгоритмов выбора гиперпараметров существуют ещё техники ранней остановки обучения (pruner). Если очередной эксперимент идёт плохо и не даёт нужного качества по сравнению с остальными, его автоматически прекращают раньше. Это тоже помогает экономить время.
Инструменты HPO:
Платформа ClearML и библиотека Optuna содержат реализации перечисленных алгоритмов и удобные визуализации (как на картинке). Можно выбрать варьируемые гиперпараметры для своего скрипта обучения, задать целевую метрику оптимизации (например, точность или значение ошибки). Программа сама проведёт эксперименты по обучению и сохранит результаты в виде таблиц и графиков. Запустив HPO на выходных, и вам останется только оценить готовые результаты.
Подробнее (1), (2)
Post #45
73