Какие методы используются в машинном обучении для предотвращения переобучения?

машинное обучение глубокое обучение Python Нейронные сети
Какие методы используются в машинном обучении для предотвращения переобучения?

Эта статья была впервые опубликована сколонна Джижи

Переобучение, пожалуй, самая неприятная проблема в машинном обучении. Давайте поговорим о том, что такое переоснащение? Как обнаружить переоснащение? И 6 способов предотвратить переоснащение.

Что такое переоснащение?

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

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

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

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

Как обнаружить переоснащение

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

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

На самом деле было бы лучше разделить на три части: набор данных для обучения 60%, набор данных для тестирования 20% и набор данных для проверки 20%.

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

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

Хотя переоснащение сложно, есть несколько способов его предотвратить.Вот 6 способов предотвратить переобучение с трех точек зрения.

Как предотвратить переоснащение (с точки зрения модели и данных)

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

1 Получить больше данных

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

2 Увеличение данных и данные о шуме

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

О методах увеличения данных см. Jizhi'sэтот ответ

Еще один хороший способ — добавить зашумленные данные:

  • Для ввода: та же цель, что и для увеличения данных, но также делает модель устойчивой к естественным возмущениям, с которыми она может столкнуться.
  • На выходе: то же сделает тренировки более разнообразными.

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

3 Упрощенная модель

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

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

Еще одним преимуществом упрощения модели является то, что она становится легче, быстрее обучается и быстрее работает.

(Модель слева слишком проста, а модель справа переоснащена)

Как предотвратить переобучение (с точки зрения тренировочного процесса)

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

Раннее прекращение

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

(Пора прекращать обучение, когда ошибка теста начинает увеличиваться)

Как предотвратить переоснащение (с точки зрения регуляризации)

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

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

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

  • Целью штрафного члена L1 является минимизация абсолютного значения весов.
  • Целью штрафного члена L2 является минимизация квадрата значения весов.

Для модели линейной регрессии модель, использующая регуляризацию L1, называется регрессией Лассо, а модель, использующая регуляризацию L2, называется регрессией гребня (гребенчатая регрессия). На следующем рисунке показана функция потерь регрессии Лассо в Python, Термин α||w||1 после знака плюс в уравнении является термином регуляризации L1.

На следующем рисунке показана функция потерь регрессии Риджа в Python, Член α||w||22 после знака плюс в уравнении является членом регуляризации L2.

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

Объединив уравнения, мы можем сделать следующее утверждение:

  • Регуляризация L1 относится к сумме абсолютных значений каждого элемента в весовом векторе w, обычно выражаемом как ||w||1. Регуляризация L1 может создать разреженную матрицу весов, то есть разреженную модель, которую можно использовать для выбора признаков.
  • Регуляризация L2 относится к сумме квадратов каждого элемента в весовом векторе w, а затем к квадратному корню (вы можете видеть, что член регуляризации L2 регрессии Риджа имеет квадратный символ), обычно выражаемый как ||w||2.

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

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

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

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

Как предотвратить переоснащение (модели глубокого обучения)

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

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

Эпилог

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

Использованная литература:кликните сюда


0806 «Искусственный интеллект — от нуля до мастера» со скидкой, ограниченной по времени!

Нажмите здесь, чтобы узнать подробности

Болтать и смеяться Онлайн-программирование Узнать об этом?

(Первые 25 студентов также могут получить купон на 200 иен)