5 способов достичь правильного баланса смещения и дисперсии в модели машинного обучения

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

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

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

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

Что такое чрезмерная или недостаточная посадка?

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

Недостаточная подгонка возникает, когда модели не удается узнать основной шаблон на основе данных обучения. Эти модели обычно имеют высокую систематическую ошибку и низкую дисперсию. Некоторые из возможных причин - ограниченная доступность данных для построения точной модели или когда мы пытаемся построить линейную модель с нелинейными данными. Эта ситуация также возникает, когда модель низкой сложности подгоняется к набору нелинейных данных. например если необходимо использовать полиномиальное уравнение высокой степени, такое как W0 + W1X1 + W2X1² + W3X1³, и мы используем уравнение прямой линии (Y = W0 + W1X1) для моделирования этого.

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

На приведенных ниже примерах графиков показаны графики для меньшего набора данных с 1 входной функцией и целевой переменной (y).

Влияние на производительность модели из-за предвзятости и отклонения

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

  • Высокая систематическая погрешность (недостаточная подгонка) - ошибки обучения и проверки будут высокими.
  • Высокая дисперсия (чрезмерная подгонка): ошибка обучения будет низкой, а ошибка проверки будет высокой.

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

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

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

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

Что делать со смещением и дисперсией?

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

Методы достижения оптимального соотношения смещения и дисперсии

  • Разделите данные на 3 набора - Обучение, Проверка и Тест с типичной комбинацией 70%, 20% и 10% (это может быть [80%, 10%, 10%] или [60%, 20%, 20%] ). Хорошей практикой является случайное перемешивание данных перед выполнением разделения, чтобы модель не становилась предвзятой из-за какой-либо сортировки или исторической закономерности в данных.
  • Начните с простого алгоритма, не тратя слишком много времени на реализацию, и протестируйте его на ранних этапах проверки данных. Часто считается очень хорошей практикой начинать, не создавая очень сложную систему с множеством сложных функций, вместо этого начав с построения очень простого алгоритма.
  • Изучите коэффициенты из обучающего набора (70% данных) и сделайте прогноз на основе данных проверки. Постройте кривые обучения, чтобы выяснить, страдает ли модель большой систематической ошибкой или большой дисперсией. Это станет вашей отправной точкой для диагностики и использования метода проб и ошибок, выбрав один из следующих вариантов, чтобы исправить проблему или перейти к следующему решению. Важно отметить, что во всех приведенных ниже методах их необязательно выполнять в указанном порядке. Выбор одного или нескольких из этих методов зависит от ваших конкретных требований, чтобы получить правильный баланс смещения и дисперсии.
  1. Дополнительные обучающие примеры помогают исправить высокую дисперсию. Если возможно, попробуйте получить больше данных. В качестве альтернативы вам нужно будет использовать некоторые методы увеличения данных, чтобы изменить, модифицировать, обрезать существующие данные.
  2. Выбирайте меньшие наборы функций, которые устраняют большую дисперсию. Это сложная ситуация, когда вы можете подумать, что все функции важны, но это может быть не так. Вам нужно будет применить различные методы анализа данных, чтобы выяснить корреляцию, взаимосвязь между входными и целевыми переменными. Кроме того, если вы обнаружите, что входные функции имеют одинаковую важность, тогда лучше привлечь бизнес-группы или экспертов в предметной области, чтобы решить, какие функции более важны, чтобы сохранить или удалить.
  3. Добавление дополнительных функций может помочь исправить высокую систематическую ошибку. Разработка функций - это широкая категория, которая представляет собой итеративный подход к получению новых функций или изменению существующих в зависимости от требований. Например, если набор данных содержит вес и рост как функции, вы можете создать BMI как новую функцию. В другом случае задаются длина и ширина участка, и вы можете создать новый размер участка.
  4. Добавление полиномиальных функций позволяет соответствовать уравнениям более высокого порядка и устраняет сильное смещение. Полиномы более низкого порядка (низкая сложность модели) имеют высокое смещение и низкую дисперсию. В этом случае модель подходит плохо стабильно. В то время как полиномы более высокого порядка (высокая сложность модели) очень хорошо подходят для обучающих данных, а тестовые - крайне плохо. У них низкая погрешность в данных обучения, но очень высокая дисперсия.

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

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

5. Уменьшение λ: устраняет сильное смещение; Увеличение λ: исправляет высокую дисперсию.

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

  1. Создайте список лямбда-значений (т.е. λ ∈ {0,0.01,0.03,0.05,0.07,0.15,0.30}).
  2. Создайте набор моделей разной степени.
  3. Переберите лямбду (λ) и для каждой лямбды (λ) пройдитесь по всем моделям, чтобы узнать некоторый коэффициент.
  4. Вычислите ошибку проверки, используя изученные коэффициенты, вычисленные с λ) и без регуляризации или λ = 0. Выберите лучшую комбинацию, которая дает наименьшую ошибку в наборе проверки.

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

Резюме

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