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

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

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

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

Согласно ускоренному курсу машинного обучения Google:

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

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

Идеальная модель стремится хорошо обобщать как обучение, так и тест, то есть невидимые данные.

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

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

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

Но как мы узнаем, когда остановить этот процесс? Что произойдет, если мы остановим его слишком рано?

Недооснащение

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

Недообученная модель не может моделировать ни обучающие данные, ни тестовые данные.

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

Дайте мне это по-человечески?

Хорошим примером для понимания этой концепции может быть математическая задача.

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

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

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

Смещение/дисперсия

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

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

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

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

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

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

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

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

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

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

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