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

Что такое регуляризация?

Модели линейной и логистической регрессии составляют основу нейронных сетей с глубоким обучением. Они понятны, быстры и просты в реализации. Однако при обучении регрессионных моделей модели, вероятно, преследуют выбросы данных обучения, что может привести к тому, что модели не будут хорошо обобщать новые данные. Этот аспект называется переоснащением. Переобучение — это процесс, в котором модель пытается охватить все точки данных, улавливая шумы в процессе. Чтобы создавать модели, которые лучше обобщают, необходимо упорядочить модели. Существует множество форм регуляризации, но в этой статье обсуждаются два самых популярных метода: Лассо (L1) и Ридж (L2).

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

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

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

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

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

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

Различные типы регуляризации

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

Обычно используются следующие методы регуляризации:

  1. Регуляризация L1
  2. Регуляризация L2
  3. Регуляризация отсева

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

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

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

В этой статье мы сосредоточимся на регуляризации L1 и L2.

Регуляризация L2

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

Где λ управляет силой регуляризации, а wj — веса модели (коэффициенты). При увеличении λ модель становится плоской и неподходящей. С другой стороны, при уменьшении λ модель становится более подогнанной, а при λ = 0 член регуляризации будет устранен.

Регуляризация L1

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

Где λ управляет силой регуляризации, а wj — веса модели (коэффициенты).

Эластичная сетка

Регуляризация эластичной сети представляет собой комбинацию реберной и лассо-регуляризации. Несмотря на то, что сочетание методов регрессии L1 и L2 работает лучше, очень сложно сбалансировать соотношение двух параметров и r в следующем уравнении.

Как реализовать регуляризацию в машинном обучении

Демонстрация на Python методов регуляризации L2 и L1 для набора данных Boston Housing и сравнение результатов обучающего набора и тестового набора до и после применения этих методов.

Здесь мы загружаем набор данных, чтобы разделить его на обучающий и тестовый наборы:

Теперь давайте обучим модель линейной регрессии и распечатаем оценку обучения и оценку теста:

Вывод выглядит следующим образом:

Модель страдает от переобучения при сравнении показателей производительности обучающего набора и тестового набора.

Чтобы противостоять этому переоснащению и снижению точности модели, давайте воспользуемся методом регрессии L2 (Ridge).

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

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

Теперь давайте применим регрессию лассо к этому набору данных:

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

Давайте уменьшим альфа-параметр до 0,01 и посмотрим, как это работает:

В первом методе регрессии лассо, где альфа-параметр равен 1,0 и 0,01 соответственно, количество признаков, используемых моделью, можно найти по этому коду:

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

Плюсы и минусы регуляризации

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

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

Заключение

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