Основные понятия, которые необходимо знать перед выполнением экспериментов по настройке гиперпараметров

Настройка гиперпараметров — это процесс, в ходе которого мы ищем наилучший набор гиперпараметров модели машинного обучения из всех наборов-кандидатов. Нас интересует процесс оптимизации технических показателей.

Цель настройки гиперпараметров состоит в том, чтобы просто получить максимальную оценку в наборе проверки, не вызывая проблемы переобучения.

Настройка гиперпараметров — это один из ориентированных на модель подходов к оптимизации производительности модели. На практике рекомендуется отдавать предпочтение подходам, ориентированным на данные, а не подходу, ориентированному на модель, когда речь идет об оптимизации производительности модели. Ориентация на данные означает, что мы фокусируемся на очистке,
выборке, дополнении или изменении данных, а ориентация на модель означает, что мы фокусируемся на модели. и его конфигурация.

В модельно-ориентированных подходах настройка гиперпараметров выполняется после того, как мы нашли наиболее подходящую структуру или архитектуру модели. Таким образом, можно сказать, что настройка гиперпараметров — это последний шаг в оптимизации производительности модели.

В этой статье представлен обзор концепций и теорий, которые необходимо знать перед выполнением экспериментов по настройке гиперпараметров. Эта статья основана на моей недавно опубликованной книге Настройка гиперпараметров с помощью Python, опубликованной Packt Publishing.



В этой статье мы обсудим краткое изложение первого раздела книги, состоящего из 6 глав:

  • Глава 1. Оценка моделей машинного обучения
  • Глава 2. Введение в настройку гиперпараметров
  • Глава 3. Исчерпывающий поиск
  • Глава 4. Изучение байесовской оптимизации
  • Глава 5. Изучение эвристического поиска
  • Глава 6. Изучение многоцелевой оптимизации

Не теряя больше времени, давайте сделаем глубокий вдох, устроимся поудобнее и будем готовы узнать, какие концепции и теории вам необходимо знать, прежде чем проводить эксперименты по настройке гиперпараметров!

Оценка моделей машинного обучения

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

В этой главе мы узнаем обо всех важных вещах, которые нам нужно знать, когда дело доходит до оценки моделей машинного обучения. Во-первых, нам нужно понять концепцию переобучения. Затем мы рассмотрим идею разделения данных на обучающие, проверочные и тестовые наборы. Кроме того, мы узнаем о разнице между случайным и стратифицированным разделением и о том, когда использовать каждое из них.
Мы обсудим концепцию перекрестной проверки и ее многочисленные варианты стратегии: k-кратное, повторное k-кратное. fold, Leave One Out (LOO), Leave P Out (LPO) и специальную стратегию при работе с данными временных рядов, называемую перекрестной проверкой временных рядов. Мы также узнаем, как реализовать каждую из стратегий оценки с помощью пакета Scikit-Learn.

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

Введение в настройку гиперпараметров

Каждый проект машинного обучения должен иметь четкую цель и показатели успеха. Метрики успеха могут быть в форме бизнес- и/или технических метрик. Оценка бизнес-показателей сложна, и часто их можно оценить только после того, как модель машинного обучения запущена в производство. С другой стороны, оценка технических показателей более проста и может быть выполнена на этапе разработки. Мы,
специалисты по данным, хотим достичь наилучших технических показателей, которые мы можем получить, поскольку это то, что мы можем оптимизировать.

В этой главе мы изучим один из нескольких способов оптимизации выбранных технических показателей, который называется настройкой гиперпараметров. Мы начнем эту главу с понимания того, что такое настройка гиперпараметров, а также ее цели. Затем мы обсудим разницу между гиперпараметром и параметром. Мы также изучим концепцию пространства гиперпараметров и возможные распределения значений гиперпараметров, которые вы можете встретить на практике.

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

Исчерпывающий поиск

Настройка гиперпараметров не всегда соответствует причудливым и сложным алгоритмам поиска. Фактически, простой цикл for или ручной поиск, основанный на чутье разработчика, также можно использовать для достижения цели настройки гиперпараметров, которая состоит в том, чтобы получить максимальную оценочную оценку по оценке проверки
, не вызывая проблемы переобучения.

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

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

Изучение байесовской оптимизации

Байесовская оптимизация (БО) — вторая из четырех групп методов настройки гиперпараметров. В отличие от поиска по сетке и случайного поиска, которые классифицируются как методы неинформированного поиска, все методы, принадлежащие к группе BO, классифицируются как методы информированного поиска, что означает, что они учатся на предыдущих итерациях, чтобы (надеюсь) обеспечить лучшее пространство поиска в будущее.

В этой главе мы обсудим несколько методов, принадлежащих к группе BO, включая гауссовский процесс (GP), последовательную конфигурацию алгоритма на основе модели (SMAC), древовидные оценки Парзена (TPE) и Metis. Как и в главе 3 «Изучение исчерпывающего поиска», мы обсудим определение каждого метода, различия между ними, принцип их работы, а также плюсы и минусы каждого метода.

К концу этой главы вы сможете добиться того же, что и в главе 3, но для байесовской оптимизации и ее разновидностей.

Изучение эвристического поиска

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

В этой главе мы обсудим несколько методов, принадлежащих к группе эвристического поиска, включая моделируемый отжиг (SA), генетические алгоритмы (GA), оптимизацию роя частиц (PSO) и обучение на основе популяции (PBT). Как и в главе 4, мы обсудим определение каждого метода, различия между ними, принцип их работы, а также плюсы и минусы каждого метода.

К концу этой главы вы сможете добиться того же, что и в главе 4, но для группы эвристического поиска методов настройки гиперпараметров.

Изучение многоцелевой оптимизации

Multi-Fidelity Optimization (MFO) — это четвертая из четырех групп методов настройки гиперпараметров. Основная характеристика этой группы заключается в том, что все методы, принадлежащие к этой группе, используют дешевую аппроксимацию всего конвейера настройки гиперпараметров, поэтому мы можем получить аналогичные результаты производительности
с гораздо меньшими вычислительными затратами и более быстрым временем эксперимента. Эта группа подходит, когда у вас очень большая модель или очень большое количество выборок, например, когда вы разрабатываете модель на основе нейронной сети.

В этой главе мы обсудим несколько методов группы MFO, включая поиск от грубого к точному, последовательное деление пополам, гиперполосу и байесовскую оптимизацию и гиперполосу (BOHB). Как и в главе 5 «Изучение эвристического поиска», мы обсудим определение каждого метода, различия между ними, принцип их работы, а также плюсы и минусы каждого из них.

К концу этой главы вы сможете добиться того же, что и в главе 5, но для группы методов настройки гиперпараметров Multi-Fidelity Optimization.

Чего ждать от книги



Книга состоит из 14 глав, разделенных на 3 раздела. Эта книга охватывает все важные вещи, которые вам нужно знать о настройке гиперпараметров, начиная с концепций и теорий, реализаций и того, как применять их на практике. Наряду с подробными объяснениями того, как работает каждый метод, вы будете использовать карту решений, которая поможет вам определить лучший метод настройки для ваших требований. Книга также сопровождается реализацией кода, к которому вы можете получить свободный доступ на GitHub!



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

об авторе

Луис Оуэн — специалист по данным/инженер искусственного интеллекта из Индонезии, который всегда жаждет новых знаний. На протяжении всей своей карьеры он работал в различных областях промышленности, включая НПО, электронную коммерцию, диалоговый ИИ, OTA, Smart City и FinTech. Помимо работы, он любит проводить свое время, помогая энтузиастам науки о данных стать учеными данных, либо с помощью своих статей, либо посредством менторских сессий. Он также любит проводить свободное время, занимаясь своими хобби: просмотром фильмов и ведением побочных проектов.

В настоящее время Луис является инженером-исследователем НЛП в Yellow.ai, ведущей в мире платформе автоматизации CX. Посетите веб-сайт Луи, чтобы узнать о нем больше! Наконец, если у вас есть какие-либо вопросы или темы для обсуждения, свяжитесь с Луи через LinkedIn.