Научный подход к улучшению производительности модели

Для целей настоящего документа:

Конечная цель разработки машинного обучения — максимизировать полезность развернутой модели.

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

В этом разделе сделаны следующие предположения:

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

Стратегия постепенной настройки

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

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

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

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

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

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

На высоком уровне наша стратегия постепенной настройки включает в себя повторение следующих четырех шагов:

  1. Выберите цель для следующего раунда экспериментов. Убедитесь, что цель имеет соответствующую область действия.
  2. Разработайте следующий раунд экспериментов. Разработайте и проведите серию экспериментов, ведущих к этой цели.
  3. Учитесь на результатах экспериментов. Оцените эксперимент по контрольному списку.
  4. Определите, следует ли принимать изменение кандидата.

Оставшаяся часть этого раздела подробно описывает эту стратегию.

Выберите цель для следующего раунда экспериментов.

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

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

Отдавайте приоритет долгосрочному прогрессу над краткосрочными улучшениями ошибок валидации.

Резюме: В большинстве случаев ваша основная цель — разобраться в проблеме настройки.

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

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

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

Разработайте следующий раунд экспериментов

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

Определить научные, неприятные и фиксированные гиперпараметры

Для данной цели все гиперпараметры попадают в одну из следующих категорий:

  • научные гиперпараметры — это те, влияние которых на производительность модели вы пытаетесь измерить.
  • Неудобные гиперпараметры — это те, которые необходимо оптимизировать, чтобы справедливо сравнивать различные значения научных гиперпараметров. Гиперпараметры помех аналогичны параметрам помех в статистике.
  • фиксированные гиперпараметры имеют постоянные значения в текущем раунде экспериментов. Значения фиксированных гиперпараметров не должны меняться при сравнении различных значений научных гиперпараметров. Фиксируя определенные гиперпараметры для набора экспериментов, вы должны признать, что выводы, полученные в результате экспериментов, могут быть недействительны для других настроек фиксированных гиперпараметров. Другими словами, фиксированные гиперпараметры создают оговорки для любых выводов, которые вы делаете из экспериментов.

Например, предположим, что ваша цель следующая:

Определите, имеет ли модель с большим количеством скрытых слоев меньшую ошибку проверки.

В этом случае:

  • Скорость обучения — это неприятный гиперпараметр, поскольку справедливо сравнивать модели с разным количеством скрытых слоев можно только в том случае, если скорость обучения настраивается отдельно для каждого количества скрытых слоев. (Оптимальная скорость обучения обычно зависит от архитектуры модели).
  • Функция активации может быть фиксированным гиперпараметром, если в предыдущих экспериментах вы определили, что лучшая функция активации не чувствительна к глубине модели. Или вы готовы ограничить свои выводы о количестве скрытых слоев для покрытия этой функции активации. Альтернативно, это может оказаться неприятным гиперпараметром, если вы готовы настраивать его отдельно для каждого количества скрытых слоев.

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

  • Научный гиперпараметр: ReLU или tanh лучше подходят для решения нашей проблемы?
  • Неприятный гиперпараметр: лучше ли лучшая пятислойная модель, чем лучшая шестислойная модель, если вы допускаете несколько различных возможных функций активации?
  • Фиксированный гиперпараметр: для сетей ReLU помогает ли добавление пакетной нормализации в определенной позиции?

При планировании нового раунда экспериментов:

  1. Определите научные гиперпараметры для экспериментальной цели. (На этом этапе вы можете считать все остальные гиперпараметры неприятными гиперпараметрами.)
  2. Преобразуйте некоторые неприятные гиперпараметры в фиксированные гиперпараметры.

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

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

Некоторые параметры оптимизатора

Как правило, некоторые гиперпараметры оптимизатора (например, скорость обучения, импульс, параметры графика скорости обучения, бета-версии Адама и т. д.) являются неприятными гиперпараметрами, поскольку они имеют тенденцию больше всего взаимодействовать с другими изменениями. Эти гиперпараметры оптимизатора редко являются научными гиперпараметрами, поскольку такая цель, как «какова наилучшая скорость обучения для текущего конвейера?» не дает большого понимания. В конце концов, лучшие настройки в любом случае могут измениться при следующем изменении конвейера.

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

Выбор оптимизатора

Выбор оптимизатора обычно бывает следующим:

  • научный гиперпараметр
  • фиксированный гиперпараметр

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

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

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

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

Гиперпараметры регуляризации

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

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

Архитектурные гиперпараметры

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

Зависимости от научных гиперпараметров

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

  • Научный гиперпараметр — оптимизатор, принимающий значения {"Nesterov_momentum", "Adam"}
  • optimizer="Nesterov_momentum" вводит гиперпараметры {learning_rate, momentum} , которые могут быть либо неудобными, либо фиксированными гиперпараметрами.
  • optimizer="Adam" вводит гиперпараметры {learning_rate, beta1, beta2, epsilon} , которые могут быть либо неудобными, либо фиксированными гиперпараметрами.

Гиперпараметры, которые присутствуют только для определенных значений научных гиперпараметров, называются условными гиперпараметрами . Не думайте, что два условных гиперпараметра одинаковы только потому, что у них одинаковое имя! В предыдущем примере условный гиперпараметр learning_rate является другим гиперпараметром optimizer="Nesterov_momentum" и optimizer="Adam" . Его роль в обоих алгоритмах одинакова (хотя и не идентична), но диапазон значений, которые хорошо работают в каждом из оптимизаторов, обычно различается на несколько порядков.

Создайте набор исследований

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

  • Гиперпараметры, которые различаются в разных испытаниях.
  • Значения, которые могут принимать эти гиперпараметры ( пространство поиска ).
  • Количество испытаний.
  • Алгоритм автоматического поиска для выборки такого количества испытаний из пространства поиска.

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

Целью исследований является одновременное:

  • Запустите конвейер с разными значениями научных гиперпараметров.
  • «Оптимизация» (или «оптимизация») нежелательных гиперпараметров, чтобы сравнение между различными значениями научных гиперпараметров было максимально справедливым.

В простейшем случае вы должны провести отдельное исследование для каждой конфигурации научных параметров, где каждое исследование учитывает неприятные гиперпараметры. Например, если ваша цель — выбрать лучшего оптимизатора из Импульса Нестерова и Адама, вы можете провести два исследования:

  • Одно исследование, в котором optimizer="Nesterov_momentum" и неприятные гиперпараметры равны {learning_rate, momentum}
  • Еще одно исследование, в котором optimizer="Adam" и неприятные гиперпараметры — это {learning_rate, beta1, beta2, epsilon} .

Вы сравните два оптимизатора, выбрав наиболее эффективное испытание из каждого исследования.

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

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

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

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

Найдите баланс между информативными и доступными экспериментами.

При планировании исследования или последовательности исследований выделите ограниченный бюджет для адекватного достижения следующих трех целей:

  • Сравнение достаточно разных значений научных гиперпараметров.
  • Настройка мешающих гиперпараметров в достаточно большом пространстве поиска.
  • Достаточно плотная выборка пространства поиска неприятных гиперпараметров.

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

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

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

К сожалению, улучшения в любом из этих трех измерений требуют одного из следующих действий:

  • Увеличение количества испытаний и, следовательно, увеличение стоимости ресурсов.
  • Найдите способ сэкономить ресурсы в одном из других измерений.

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

Учитесь на результатах экспериментов

Рекомендация: Помимо попыток достичь исходной научной цели каждой группы экспериментов, пройдите контрольный список дополнительных вопросов. Если вы обнаружите проблемы, пересмотрите и повторите эксперименты.

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

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

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

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

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

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

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

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

Целевое значение валидации для каждого испытания обычно должно быть лучшим значением, достигнутым в ходе обучения.

График частоты ошибок в наборе проверки (ось Y) в зависимости от пиковой скорости обучения (ось X), демонстрирующий плохие границы пространства поиска. На этом графике лучшие испытания (наименьшая частота ошибок) находятся вблизи края пространства поиска, где пиковая скорость обучения самая высокая.График частоты ошибок в наборе проверки (ось Y) в зависимости от пиковой скорости обучения (ось X), демонстрирующий хорошие границы пространства поиска. На этом графике лучшие испытания (наименьшая частота ошибок) находятся ближе к середине пространства поиска, где пиковая скорость обучения равна 0,001, а не тогда, когда пиковая скорость обучения равна 0,00001 или 0,1.

Рисунок 1: Примеры плохих границ пространства поиска и приемлемых границ пространства поиска.

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

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

Недостаточно выборки точек в пространстве поиска.

В общем, может быть очень сложно определить, достаточно ли плотно выбрано пространство поиска. 🤖 Проведение большего количества испытаний лучше, чем меньшее количество испытаний, но большее количество испытаний приводит к очевидным дополнительным затратам.

Поскольку очень сложно определить, достаточно ли вы отобрали проб, мы рекомендуем:

  • Выборка того, что вы можете себе позволить.
  • Калибровка вашей интуитивной уверенности путем многократного просмотра различных графиков осей гиперпараметров и попыток понять, сколько точек находится в «хорошей» области пространства поиска.

Изучите кривые обучения

Резюме: Изучение кривых потерь — это простой способ определить распространенные виды сбоев и помочь вам определить приоритетность возможных следующих действий.

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

При изучении кривых потерь сосредоточьтесь на следующих вопросах:

  • Были ли в каких-либо испытаниях выявлены проблемы переобучения? Проблема переобучения возникает, когда ошибка проверки начинает увеличиваться во время обучения. В экспериментальных условиях, когда вы оптимизируете нежелательные гиперпараметры, выбирая «лучшее» испытание для каждого набора научных гиперпараметров, проверьте наличие проблемного переобучения по крайней мере в каждом из лучших испытаний, соответствующих настройкам сравниваемых научных гиперпараметров. Если какое-либо из лучших испытаний демонстрирует проблемное переобучение, выполните одно или оба из следующих действий:

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

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

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

  • Существует ли высокая пошаговая дисперсия в обучении или ошибка проверки на поздних этапах обучения? Если это так, это может помешать обоим из следующих действий:

    • Ваша способность сравнивать различные значения научных гиперпараметров. Это потому, что каждое испытание случайным образом заканчивается на «удачном» или «неудачном» шаге.
    • Ваша способность воспроизвести результат лучшего испытания в производстве. Это потому, что производственная модель может не закончиться на том же «счастливом» этапе, как в исследовании.

    Наиболее вероятными причинами ступенчатых отклонений являются:

    • Отклонение партии из-за случайной выборки примеров из обучающего набора для каждой партии.
    • Небольшие наборы проверки
    • Использование слишком высокой скорости обучения на поздних этапах обучения.

    Возможные средства правовой защиты включают в себя:

    • Увеличение размера пакета.
    • Получение дополнительных данных проверки.
    • Использование снижения скорости обучения.
    • Использование усреднения Поляка.
  • Улучшаются ли результаты испытаний в конце тренировки? Если да, то вы находитесь в режиме «привязки к вычислениям» и можете получить выгоду от увеличения количества этапов обучения или изменения графика скорости обучения.

  • Насыщается ли производительность обучающего и проверочного наборов задолго до финального этапа обучения? Если это так, это означает, что вы находитесь в режиме «без привязки к вычислениям» и что вы можете уменьшить количество шагов обучения.

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

Определение полезности изменения с помощью графиков изоляции

Изолирующий график, на котором исследуется наилучшее значение снижения веса для ResNet-50, обученного на ImageNet. В этом случае наименьшая частота ошибок валидации — когда снижение веса составляет ~0,00005.

Рисунок 2: Изолирующий график, на котором исследуется наилучшее значение снижения веса для ResNet-50, обученного на ImageNet.

Часто целью серии экспериментов является сравнение различных значений научного гиперпараметра. Например, предположим, что вы хотите определить значение снижения веса, которое приводит к наилучшей ошибке проверки. График изоляции — это частный случай графика основной оси гиперпараметров. Каждая точка на графике изоляции соответствует результатам лучшего испытания по некоторым (или всем) неприятным гиперпараметрам. Другими словами, постройте график производительности модели после «оптимизации» неприятных гиперпараметров.

График изоляции упрощает выполнение сравнения яблок с яблоками между различными значениями научного гиперпараметра. Например, график изоляции на рисунке 2 показывает значение снижения веса, которое обеспечивает наилучшую производительность проверки для конкретной конфигурации ResNet-50, обученной на ImageNet.

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

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

Автоматизируйте общие полезные графики

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

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

Вы можете добавить много других полезных потенциальных графиков и визуализаций. Перефразируя Джеффри Хинтона :

Каждый раз, когда вы создаете что-то новое, вы узнаёте что-то новое.

Определите, следует ли принять изменение кандидата

Summary: When deciding whether to make a change to our model or training procedure or adopt a new hyperparameter configuration, note the different sources of variation in your results.

When trying to improve a model, a particular candidate change might initially achieve a better validation error compared to an incumbent configuration. However, repeating the experiment might demonstrate no consistent advantage. Informally, the most important sources of inconsistent results can be grouped into the following broad categories:

  • Training procedure variance, retrain variance, or trial variance : the variation between training runs that use the same hyperparameters but different random seeds. For example, different random initializations, training data shuffles, dropout masks, patterns of data augmentation operations, and orderings of parallel arithmetic operations are all potential sources of trial variance.
  • Hyperparameter search variance, or study variance : the variation in results caused by our procedure to select the hyperparameters. For example, you might run the same experiment with a particular search space but with two different seeds for quasi-random search and end up selecting different hyperparameter values.
  • Data collection and sampling variance : the variance from any sort of random split into training, validation, and test data or variance due to the training data generation process more generally.

True, you can compare validation error rates estimated on a finite validation set using fastidious statistical tests. However, often the trial variance alone can produce statistically significant differences between two different trained models that use the same hyperparameter settings.

We are most concerned about study variance when trying to make conclusions that go beyond the level of an individual point in hyperparameters space. The study variance depends on the number of trials and the search space. We have seen cases where the study variance is larger than the trial variance and cases where it is much smaller. Therefore, before adopting a candidate change, consider running the best trial N times to characterize the run-to-run trial variance. Usually, you can get away with only recharacterizing the trial variance after major changes to the pipeline, but you might need fresher estimates in some cases. In other applications, characterizing the trial variance is too costly to be worth it.

Although you only want to adopt changes (including new hyperparameter configurations) that produce real improvements, demanding complete certainty that a given change helps isn't the right answer either. Therefore, if a new hyperparameter point (or other change) gets a better result than the baseline (taking into account the retrain variance of both the new point and the baseline as best as you can), then you probably should adopt it as the new baseline for future comparisons. However, we recommend only adopting changes that produce improvements that outweigh any complexity they add.

After exploration concludes

Summary: Bayesian optimization tools are a compelling option once you're done searching for good search spaces and have decided what hyperparameters are worth tuning.

Eventually, your priorities will shift from learning more about the tuning problem to producing a single best configuration to launch or otherwise use. At that point, there should be a refined search space that comfortably contains the local region around the best observed trial and has been adequately sampled. Your exploration work should have revealed the most essential hyperparameters to tune and their sensible ranges that you can use to construct a search space for a final automated tuning study using as large a tuning budget as possible.

Since you no longer care about maximizing insight into the tuning problem, many of the advantages of quasi-random search no longer apply. Therefore, you should use Bayesian optimization tools to automatically find the best hyperparameter configuration. Open-Source Vizier implements a variety of sophisticated algorithms for tuning ML models, including Bayesian Optimization algorithms.

Suppose the search space contains a non-trivial volume of divergent points , meaning points that get NaN training loss or even training loss many standard deviations worse than the mean. In this case, we recommend using black-box optimization tools that properly handle trials that diverge. (See Bayesian Optimization with Unknown Constraints for an excellent way to deal with this issue.) Open-Source Vizier has supports for marking divergent points by marking trials as infeasible, although it may not use our preferred approach from Gelbart et al. , depending on how it is configured.

After exploration concludes, consider checking the performance on the test set. In principle, you could even fold the validation set into the training set and retrain the best configuration found with Bayesian optimization. However, this is only appropriate if there won't be future launches with this specific workload (for example, a one-time Kaggle competition).