Удобное обучение высококачественным моделям с помощью автоматической настройки гиперпараметров

Введение

При обучении сложных моделей глубокого обучения существует обширный список гиперпараметров, которые необходимо установить и настроить для достижения оптимальной производительности. Эти гиперпараметры включают скорость обучения, размер изображения, размер пакета, количество эпох и т. д. Большое количество гиперпараметров затрудняет пользователям выбор, на каких из них сосредоточиться. Кроме того, некоторые из этих параметров зависят от модели и не в равной степени влияют на производительность модели, что усложняет задачу для пользователя. Следовательно, требуется много времени, усилий и ресурсов для настройки этих гиперпараметров для получения оптимальной модели.

В этом сообщении блога мы расскажем, как AutoML для изображений может автоматически настраивать и получать оптимальную модель с учетом бюджета, указанного через максимальное количество испытаний. Для получения дополнительной информации об AutoML для изображений вы можете ознакомиться с Объявлением об общедоступности, официальной документацией и блокнотами github.

Настройка гиперпараметров с помощью AutoML для изображений

Настройка гиперпараметров состоит в нахождении набора оптимальных значений гиперпараметров из пространства возможных гиперпараметров. Настройка гиперпараметров в AzureML выполняется путем запуска нескольких испытаний в рамках задания обучения для каждой конфигурации гиперпараметров. Вот пример того, как вручную перебрать некоторые гиперпараметры с помощью AutoML для изображений для двух разных моделей.

image_object_detection_job = automl.image_object_detection(
    compute="gpu-cluster",
    experiment_name="image-object-detection-sweep",
    training_data=training_data,
    validation_data=validation_data,
)

# Configure search space for hyperparameter tuning
image_object_detection_job.extend_search_space(
    [
        SearchSpace(
            model_name=Choice(["yolov5"]),
            learning_rate=Uniform(0.0001, 0.01),
            model_size=Choice(["small", "medium"]), # model-specific
        ),
        SearchSpace(
            model_name=Choice(["fasterrcnn_resnet50_fpn"]),
            learning_rate=Uniform(0.0001, 0.001),
            optimizer=Choice(["sgd", "adam", "adamw"]),
            min_size=Choice([600, 800]),  # model-specific
        ),
    ]
)

# Configure number of trials
image_object_detection_job.set_limits(
    max_trials=10, 
    max_concurrent_trials=5
)

# Submit job to AzureML Workspace
client.jobs.create_or_update(image_object_detection_job)

Пользователям необходимо предоставить пространство поиска, алгоритм выборки и ограничения задания: сколько испытаний (выборочных конфигураций) будет опробовано.

При таком подходе у пользователя больше контроля и гибкости, но он также несет ответственность за определение и выбор гиперпараметров для настройки. Это требует глубокого понимания гиперпараметров, опыта в этой области и понимания того, какие параметры имеют наибольшее значение. Часто нет надежной базы для сравнения, и поиск оптимального набора гиперпараметров оказывается самой трудоемкой и дорогостоящей частью обучения оптимальной модели.

Представляем автоматический режим

Автоматический режим автоматически выбирает гиперпараметры модели (размер пакета, скорость обучения, количество эпох и т. д.) с учетом бюджета в виде максимального количества испытаний. Эта функция позволяет менее опытным пользователям создавать модели хорошего качества без ручной настройки гиперпараметров, а более опытным специалистам по данным экономить время и усилия при создании надежной основы для экспериментов.

Вот пример запуска Automode с помощью AutoML для изображений:

image_object_detection_job = automl.image_object_detection(
    compute="gpu-cluster",
    experiment_name="image-object-detection-automode",
    training_data=training_data,
    validation_data=validation_data,
)

# Configure number of trials
image_object_detection_job.set_limits(
    max_trials=10,
    max_concurrent_trials=5
)

# Submit job to AzureML workspace
client.jobs.create_or_update(image_object_detection_job)

Преимущества автоматического режима

  1. Пользователи могут придумать надежные базовые показатели практически без усилий.
  2. Пользователям не нужно предоставлять какие-либо сведения о пространстве для поиска. Лежащий в основе алгоритм автоматически определяет область пространства гиперпараметров, которую необходимо переместить.
  3. Автоматический режим адаптируется к оборудованию (вычислительный экземпляр AzureML или кластер), выбранному пользователем. Он будет определять размер пакета, разрешение и т. д. на основе памяти, доступной на вычислении, чтобы задание обучения не приводило к нехватке памяти.

Эксперименты

Мы провели обширные эксперименты, но для краткости решили представить только приведенные ниже наборы данных для классификации и обнаружения объектов. Automode также сравнивали с двумя конкурирующими платформами. Мы выбрали наборы данных, которые имеют различные характеристики с точки зрения количества классов, размера объекта, разрешения изображения и т. д. Все представленные результаты относятся к тестовому набору данных.

Обнаружение объектов
Для этой задачи мы выбрали следующие наборы данных:

  1. VisDrone 2019: набор данных, содержащий изображения/видео с дронов.
  2. KITTI: набор данных изображений просмотра улиц, используемых в автономном вождении.
  3. VOC 2012: набор данных, содержащий объекты из реалистичных сценариев из различных типов объектов.
  4. Защитный шлем: Состоит из изображений средств индивидуальной защиты.

Из рисунков 1–4 выше мы можем сделать вывод, что по мере увеличения бюджета Automode улучшает mAP модели, но позже стабилизируется. При увеличении бюджета с 7 долларов до 141 доллара mAP увеличился на 13 % для VisDrone 2019, а при увеличении бюджета с 5 долларов до 52 долларов для набора данных VOC наблюдалось увеличение на 4 %. Это может быть достигнуто без каких-либо затрат времени или усилий со стороны специалистов по данным или инженеров.

Для сравнения с конкурентами был установлен бюджет для достижения наилучшего показателя для конкурента.

Automode значительно превосходит конкурента 1 при том же бюджете, в то время как для конкурента 2 Automode отстает примерно на 1% для защитного шлема и на 0,1% для набора данных VOC при том же бюджете, но превосходит наборы данных VisDrone и Kitti.

Классификация изображений
Для этой задачи мы выбрали следующие наборы данных:

  1. MIT Indoors: набор данных для распознавания сцен внутри помещений.
  2. Deep Fashion: крупномасштабный набор данных об одежде для электронной коммерции.
  3. Deep Weeds: набор данных, содержащий изображения видов сорняков.

Как и при обнаружении объектов, мы видим, что точность моделей увеличилась примерно на 2% за счет увеличения бюджета с 3 до 62 долларов для Deep Fashion и с 1 до 36 долларов для MIT Indoors для задачи классификации изображений.

По сравнению с конкурентами Automode значительно превосходит конкурента 1 при том же бюджете, тогда как для конкурента 2 Automode отстает на 0,2% для Deep Weeds, но превосходит наборы данных MIT Indoors и Deep Fashion.

Заключение

Мы обнаружили, что Automode в AutoML для изображений — это функция, которая значительно упрощает жизнь специалистам по данным и инженерам по машинному обучению, предлагая высококачественные модели и устраняя необходимость ручной настройки гиперпараметров. Пожалуйста, попробуйте и дайте нам знать, что вы думаете!

Образцы ноутбуков

Обнаружение объекта изображения
Многоклассовая классификация изображения
Многоклассовая классификация изображения
Сегментация экземпляра изображения

Примеры интерфейса командной строки

Обнаружение объекта изображения
Многоклассовая классификация изображения
Многоклассовая классификация изображения
Сегментация экземпляра изображения

Ресурсы

Особая благодарность Мерси Ранджит, Рупалу Джейну, ЙиЮ Лин!