переобучение модели в машинном обучении это

Переобучение

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

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

Содержание

Примеры [ править ]

На примере линейной регрессии [ править ]

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

переобучение модели в машинном обучении это

переобучение модели в машинном обучении это

переобучение модели в машинном обучении это

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

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

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

На примере логистической регрессии [ править ]

Представьте задачу классификации размеченных точек. Красные точки представляют данные класса 1. Голубые круглые точки — класса 2. Синие линии являются представлением различных моделей, которыми производится классификация данных.

переобучение модели в машинном обучении это

переобучение модели в машинном обучении это

переобучение модели в машинном обучении это

Рис. 4 показывает результат использования слишком простой модели для представленного датасета

Кривые обучения [ править ]

Кривые обучения при переобучении [ править ]

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

переобучение модели в машинном обучении это

Рис. 7 демонстрирует зависимость средней ошибки для обучающей и тестовой выборок от объема датасета при переобучении.

Кривые обучения при недообучении [ править ]

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

переобучение модели в машинном обучении это

Рис. 8 демонстрирует зависимость средней ошибки для обучающей и тестовой выборок от объема датасета при недообучении.

High variance и high bias [ править ]

Bias — ошибка неверных предположений в алгоритме обучения. Высокий bias может привести к недообучению.

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

переобучение модели в машинном обучении это

При использовании нейронных сетей variance увеличивается, а bias уменьшается с увеличением количества скрытых слоев.

Для устранения high variance и high bias можно использовать смеси и ансамбли. Например, можно составить ансамбль (boosting) из нескольких моделей с высоким bias и получить модель с небольшим bias. В другом случае при bagging соединяются несколько моделей с низким bias, а результирующая модель позволяет уменьшить variance.

Дилемма bias–variance [ править ]

Дилемма bias–variance — конфликт в попытке одновременно минимизировать bias и variance, тогда как уменьшение одного из негативных эффектов, приводит к увеличению другого. Данная дилемма проиллюстрирована на Рис 10.

переобучение модели в машинном обучении это

При небольшой сложности модели мы наблюдаем high bias. При усложнении модели bias уменьшается, но variance увеличится, что приводит к проблеме high variance.

Источник

Переобучение (Overfitting)

Переобучение – это случай, когда значение Функции потери (Loss Function) действительно малó, но Модель (Model) Машинного обучения (ML) ненадежна. Это связано с тем, что модель «слишком много учится» на обучающем наборе данных.

Когда мы входим в сферу ML, появляются двусмысленные термины: Переобучение, Недообучение (Underfitting) и Дилемма смещения-дисперсии (Bias-Variance Trade-off). Эти концепции лежат в основе Машинного обучения в целом. Почему нам вообще должно быть до этого дело?

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

Обобщение (генерализация) – это способность модели давать разумные предсказания на основе входных данных, которых она никогда раньше не видела.

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

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

Модель, которая хорошо обобщает, не является ни переобученной, ни недообученной.

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

Пример

Допустим, мы пытаемся построить модель машинного обучения для следующего набора данных:

переобучение модели в машинном обучении это

Ось X – это Предикторы (Predictor Variable) – например, площадь дома, а ось Y – Целевая переменная (Target Variable) – стоимость дома. Если у Вас есть опыт обучения модели, Вы, вероятно, знаете, что есть несколько Алгоритмов (Algorithm), однако для простоты в нашем примере выберем одномерную Линейную регрессию (Linear Regression).

Этап обучения

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

переобучение модели в машинном обучении это

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

Переобучение

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

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

переобучение модели в машинном обучении это

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

Переобучение – это случай, когда общие потери-затраты действительно невелики, но обобщение модели ненадежно. Это связано с тем, что модель «слишком много учится» на обучающем наборе. Это может показаться абсурдным, но переобучение, или высокая Дисперсия (Variance), приводит к бóльшему количеству плохих, чем хороших результатов. Какая польза от модели, которая очень хорошо усвоила данные обучения, но все еще не может делать надежные прогнозы для новых входных данных?

Недообучение

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

переобучение модели в машинном обучении это

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

Дилемма смещения-дисперсии

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

Переобучение графически

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

Сгенерируем датасет – набор точек, «укладывающихся» в параболу:

Добавим Выбросы (Outlier), чтобы сделать данные шумнее и реалистичнее, а демонстрацию концепции нагляднее:

Усложним алгоритму задачу еще и сгруппируем записи в две группы:

Теперь разница между сценариями наглядна:

переобучение модели в машинном обучении это

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

Источник

Переобучение

Материал из MachineLearning.

Содержание

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

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

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

Пример. На рисунке справа показан эффект переобучения в одной задаче медицинского прогнозирования. Точки на графике соотвествуют различным методам обучения. Каждая точка получена путём усреднения по большому числу разбиений исходной выборки из 72 прецедентов на обучающую подвыборку и контрольную. Горизонтальная ось — частота ошибок на обучении; вертикальная — на контроле. Хорошо видно, что точки имеют систематическое смещение вверх относительно диагонали графика.

О природе переобучения

переобучение модели в машинном обучении это

переобучение модели в машинном обучении это

Эмпирическим риском называется средняя ошибка алгоритма на обучающей выборке. Метод минимизации эмпирического риска (empirical risk minimization, ERM) наиболее часто применяется для построения алгоритмов обучения. Он состоит в том, чтобы в рамках заданной модели выбрать алгоритм, имеющий минимальное значение средней ошибки на заданной обучающей выборке.

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

Утверждение 1. Минимизация эмпирического риска не гарантирует, что вероятность ошибки на тестовых данных будет мала. Легко строится контрпример — абсурдный алгоритм обучения, который минимизирует эмпирический риск до нуля, но при этом абсолютно не способен обучаться. Алгоритм состоит в следующем. Получив обучающую выборку, он запоминает её и строит функцию, которая сравнивает предъявляемый объект с запомненными обучающими объектами. Если предъявляемый объект в точности совпадает с одним из обучающих, то эта функция выдаёт для него запомненный правильный ответ. Иначе выдаётся произвольный ответ (например, случайный или всегда один и тот же). Эмпирический риск алгоритма равен нулю, однако он не восстанавливает зависимость и не обладает никакой способностью к обобщению.

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

Утверждение 2. Переобучение появляется именно вследствие минимизации эмпирического риска. Пусть задано конечное множество из D алгоритмов, которые допускают ошибки независимо и с одинаковой вероятностью. Число ошибок любого из этих алгоритмов на заданной обучающей выборке подчиняется одному и тому же биномиальному распределению. Минимум эмпирического риска — это случайная величина, равная минимуму из D независимых одинаково распределённых биномиальных случайных величин. Её ожидаемое значение уменьшается с ростом D. Соотвественно, с ростом D увеличивается переобученность — разность вероятности ошибки и частоты ошибок на обучении.

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

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

переобучение модели в машинном обучении это

переобучение модели в машинном обучении это

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

В качестве метода обучения возьмём метод наименьших квадратов:

Ниже показаны графики самой выборки и аппроксимирующей функции:

переобучение модели в машинном обучении это переобучение модели в машинном обучении это переобучение модели в машинном обучении это

Определения

Средней потерей алгоритма на выборке называется величина

Пусть — вероятностное пространство. Ожидаемой потерей алгоритма называется величина

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

Вероятность переобучения (частотное определение)

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

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

переобучение модели в машинном обучении это

Вероятность переобучения может быть измерена эмпирически методом Монте-Карло, см. также скользящий контроль:

Вероятность переобучения (вероятностное определение)

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

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

переобучение модели в машинном обучении это

Недостатки вероятностного определения:

Теоретические верхние оценки переобученности

Сложность

Оценки, основанные на самоограничении (self-bounding)

Оценки, основанные на последовательности выборов (microchoice bounds)

Оценки, основанные на расслоении семейства алгоритмов (shell bounds)

Разделимость

Оценки, основанные на отступах (margin-based bounds)

Устойчивость

Устойчивость алгоритма обучения (algorithmic stability)

Эмпирическое измерение переобучения

См. также

Ссылки

Overfitting — статья о переобучении в англоязычной Википедии.

Источник

Простыми словами о методах решения проблем с переобучением

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

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

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

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

Математика, как и любая наука, это один из способов формального описания окружающего нас мира, а конкретные ее понятия – это удобные «инструменты» для этого описания.

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

Что такое переобучение?

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

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

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

переобучение модели в машинном обучении это

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

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

Ровно с такими проблемами сталкиваются модели машинного обучения.

Теперь рассмотрим другой пример, допустим у нас есть данные по некоторым объектам (в нашем случае – опять по животным), под данными я имею ввиду различные признаки, например, вес, окрас, где обитает, что умеет, чем питается каждое животное и так далее.

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

переобучение модели в машинном обучении это

Выше изображены и размечены наши объекты, красным – рыбы, зеленым – птицы.

Так как по условию мы изначально ничего не знаем про рыб и птиц, а учимся с нуля, вполне вероятно, что мы выведем правило вроде «кто умеет плавать – тот рыба». И будем в каком-то смысле правы, потому что по такому правилу на этих данных мы не ошибемся ни разу.

Однако, что же произойдет, когда мы встретимся с новым животным и как мы его классифицируем?

переобучение модели в машинном обучении это

Как видим, мы ошибочно определили всех новых животных, но в чем же природа такой ошибки?

В данном случае очевидно, что мы вывели такое правило, которое имеет место только на обучающей выборке. Такая ситуация и называется проблемой переобучения (overfitting).

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

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

Подробнее про переобучение и как с ним бороться

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

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

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

В общем, данных должно быть много, и они должны быть разнообразными.

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

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

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

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

Это может выглядеть так:

переобучение модели в машинном обучении это

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

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

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

переобучение модели в машинном обучении это

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

Чтобы лучше понять, что это значит, уточним, на что ориентируется модель, когда обучается.

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

Чем больше ошибок – тем больше значение функции потерь.

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

Формально, без регуляризации имеем следующую функцию потерь:

переобучение модели в машинном обучении это

Где L– функция потерь, которая зависит от весов ;

f– просто некоторая функция, которая дает количественное выражение совершенных ошибок;

Y – целевая переменная, в данном примере – «виновен» или «невиновен»;

С регуляризацией — такую:

переобучение модели в машинном обучении это

То есть, теперь мы учитываем сумму всех весов.

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

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

Модельf (Y, h (x))переобучение модели в машинном обучении этопереобучение модели в машинном обучении это
С большими весами010001000
С небольшими весами100100200

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

Соответственно, веса примут примерно такие значения, и мы вынесем следующий приговор:

переобучение модели в машинном обучении это

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

Пример

Теперь попробуем показать более конкретный случай. Задача сделана по мотивам одного из уроков курса mlcourse.ai Юрия Кашницкого, который в свою очередь ссылается на Стэнфордский курс по машинному обучения от Andrew Ng.

В этой задаче у нас есть массив данных для 118 микрочипов, два признака – тест 1 и тест 2. По результатам этих двух тестов принимается решение браковать или выпускать очередной микрочип – это и есть наша целевая переменная, то есть мы решаем задачу бинарной классификации.

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

переобучение модели в машинном обучении это

Важное примечание, тут признаки уже центрированы (т.е. из них вычли среднее значение соответствующего признака по всем объектам).

Что же от нас требуется? Нам надо каким-то образом, основываясь на данных двух признаках научится отличать «красные» точки от «синих». Результатом этого будет какое-то правило «разделяющее» точки между собой. Это правило так и называется – «разделяющая гиперплоскость» и выглядит примерно так:

переобучение модели в машинном обучении это

То есть для двумерного признакового пространства – это просто прямая.

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

переобучение модели в машинном обучении это

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

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

переобучение модели в машинном обучении это

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

Теперь то, о чем мы говорили до этого чисто теоретически рассмотрим на этом примере.

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

переобучение модели в машинном обучении это

Примечание: может возникнуть вопрос – откуда столько признаков? Как мы упомянули ранее, мы использовали полиномиальные признаки (7-й степени), что дает нам суммарно 36 признаков.

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

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

Модельf (Y, h (X)переобучение модели в машинном обучении этопереобучение модели в машинном обучении это
Без регуляризации32,30141,49173,78
С регуляризацией65,562,7568,31

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

Заключение

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *