Создание эффективной модели машинного обучения - это поиск правильного баланса между смещением (недостаточной подгонкой) и дисперсией (переобучением), но что такое смещение и дисперсия? Что интуитивно означают смещение и отклонение? Давайте сделаем шаг назад и поймем термины смещения и отклонения на концептуальном уровне, а затем попробуем связать эти концепции с машинным обучением.
Что такое смещение и дисперсия?
Допустим, мы хотим спрогнозировать аренду двухкомнатной квартиры в районе залива в Калифорнии. Притворимся новичком и предположим, что мы понятия не имеем о том, насколько дорогие квартиры в районе залива. Как новичок, я делаю очень упрощенное предположение, что арендная плата в районе залива будет аналогична средней арендной плате по Калифорнии. Я беру арендную плату 100 квартир в Калифорнии и беру среднее значение, чтобы предсказать арендную плату за 2-комнатную квартиру в районе залива в Калифорнии. Проблема в том, что, поскольку я снял 100 квартир по всей Калифорнии, они могут включать квартиры в дорогих районах, таких как город Сан-Франциско, Южный залив, Лос-Анджелес, умеренно дорогие районы, такие как Ист-Бэй, и даже более дешевые места, такие как Бейкерсфилд. Поскольку я сделал очень упрощенное предположение, что арендная плата за 2-комнатную квартиру в районе залива будет аналогична средней арендной плате по Калифорнии, мой прогноз не будет точным. Это потому, что сделанное мной предположение дало мне более общие результаты. Это избыточное обобщение есть не что иное, как высокое смещение. Таким образом, когда мы делаем очень упрощенное предположение, мы вводим High Bias, что приводит к общим результатам. Это не что иное, как недостаточное оснащение.
И наоборот, если я попытаюсь быть очень конкретным и возьму среднее значение арендной платы из 100 квартир в очень конкретном месте, например, в Ист-Бэй, то я получу результаты, которые будут представлять арендную плату в Ист-Бэй, но результаты будут не представляет собой аренду в других местах области залива, таких как Саут-Бэй или город Сан-Франциско. Здесь, поскольку я очень конкретен, я ввожу в свою модель Высокая дисперсия. В связи с этим, если мне нужно спрогнозировать арендную плату любой квартиры в Ист-Бэй, я могу безопасно использовать рассчитанную мной среднюю арендную плату, но если кто-то попросит меня спрогнозировать арендную плату любой квартиры в Сан-Франциско, я просто не могу полагаться на свои модель (средняя аренда 100 квартир в Ист-Бэй), потому что в моих данных была арендная плата только в районе Ист-Бэй. Таким образом, моя модель не сработает, если я изменю точку данных запроса (тестовые данные) с Ист-Бэй на город Сан-Франциско. Это не что иное, как переоснащение.
Почему существует компромисс между смещением и дисперсией?
Из приведенных выше примеров ясно, что Bias означает быть более общим, а Variance - более конкретным. Обобщенность и конкретность - полная противоположность друг другу. Если я делаю очень упрощенное предположение и беру среднее значение арендной платы по Калифорнии, моя модель является слишком общей и не может точно предсказать арендную плату в очень дорогой или очень дешевой области. С другой стороны, если я возьму среднее значение арендной платы только в районе Ист-Бэй, моя модель будет слишком конкретной, и ее нельзя будет применить для прогнозирования арендной платы в других районах. Следовательно, идеальный способ - найти баланс и взять среднюю арендную плату за апартаменты с 2 спальнями в районе залива.
Как найти баланс между смещением и дисперсией?
Большинство из нас знает, что регуляризация - это способ контролировать смещение и дисперсию, но вместо того, чтобы сразу переходить к математике регуляризации, давайте сначала разберемся, что происходит, когда мы применяем регуляризацию. Регуляризация существенно снижает сложность модели, либо избавляясь от сложных функций, либо снижая их важность. Математически термин сложность относится к функциям, представленным полиномами более высокой степени в уравнении регрессии. Например, если цена дома основана на 4 характеристиках, а именно: Местоположение (X1), Количество спален (X2), Год постройки (X3), Рейтинг ближайшей школы (X4) и т. Д., То для прогнозирования цены дома мы можем в конечном итоге использовать некоторую функцию, подобную показанной ниже.
Когда применяется регуляризация, термин регуляризации снижает важность функций, особенно полиномиальных функций более высокой степени, таких как X3 и X4. Математически снижение важности многочленов более высокой степени есть не что иное, как уменьшение весов многочленов более высокой степени (1.4, 4.5 в функции выше). Снижение важности полиномов более высокой степени приводит к сглаживанию кривой взаимосвязи между признаком и прогнозируемой переменной, тем самым повышая обобщение. Это изображено на диаграмме ниже.
Как показано на приведенных выше графиках, без регуляризации модель попыталась учесть почти каждую точку данных в обучающих данных. Это означает, что модель слишком конкретна. Это также означает, что модель имеет очень низкую ошибку обучения, потому что почти все точки попадают на линию кривой. Однако, если эта модель тестируется на тестовых данных, есть вероятность, что многие точки не попадут на кривую, потому что модель недостаточно универсальна. Поэтому небольшое изменение входных данных (то есть разница между данными поезда и тестом) повлияет на производительность модели. Таким образом, модель имеет высокую дисперсию, и модель приведет к переобучению (низкая ошибка обучения и высокая ошибка теста).
При регуляризации модель пропускает 2–3 точки в обучающих данных, но она достаточно универсальна, чтобы учесть изменения в обучающих и тестовых данных. Поэтому, используя регуляризацию, мы сделали модель универсальной, что предотвращает переобучение.
Как регуляризация снижает веса?
Теперь, когда мы поняли, как регуляризация обобщает модель, давайте посмотрим математически, как регуляризация уменьшает веса признаков.
Чтобы понять, как работает регуляризация, давайте рассмотрим цель оптимизации линейной регрессии.
Давайте разберемся с этим уравнением подробнее
W * - это значение веса, которое мы хотим узнать в результате задачи оптимизации. Здесь задача Оптимизации состоит в том, чтобы найти минимальное значение W
n - общее количество точек данных
f (Xi) - прогнозируемое значение Yi
Yi - фактическое значение Yi
m - общее количество функций
Wj - веса признаков.
λ - гиперпараметр для управления компромиссом смещения и дисперсии
Из предыдущего обсуждения мы поняли, что для уменьшения дисперсии мы должны уменьшить веса. Теперь вопрос в том, как это уравнение и особенно член регуляризации
уменьшает вес функций? Как показано в уравнении оптимизации, уравнение представляет собой задачу оптимизации с целью уменьшения весов Wj. Теперь, если у нас очень высокое значение λ, алгоритм оптимизации (градиентный спуск) должен будет дополнительно уменьшить значения Wjs, чтобы уменьшить ценность продукта.
Таким образом, чем больше значение λ, тем меньше будут веса и меньше будет важность признака, ведущего к большей дисперсии. И наоборот, чем меньше значение λ, тем больше будет значение весов и больше важность признака, ведущего к большей дисперсии. Таким образом, λ действует как гиперпараметр для управления компромиссом отклонения и отклонения.
Обратите внимание, что приведенный выше пример взят для модели регрессии, но регуляризация также может применяться к моделям классификации.
Регуляризация L1 и L2
В приведенном выше уравнении мы использовали термин регуляризации -
Это регуляризация L2 или регуляризация хребта. Мы также можем использовать L1 Regularization или Lasso Regularization, которые добавляют абсолютное значение весов вместо квадрата весов. С регуляризацией L1 приведенное выше уравнение становится
Хотя основная логика уменьшения весов одинакова в методах регуляризации L1 и L2, существует много различий в регуляризации L1 и L2. Я не буду вдаваться в подробности различий в этом блоге, но одно важное отличие, о котором стоит упомянуть, заключается в том, что регуляризация L1 делает веса несущественных функций равными 0, тогда как регуляризация L2 делает их очень маленькими, но не обязательно равными 0.
Является ли регуляризация единственным способом контролировать компромисс между отклонением и отклонением?
Регуляризация, безусловно, является одним из наиболее важных рычагов управления компромиссом между отклонением и отклонением. Однако это не единственный способ. Вот еще несколько способов контролировать отклонение от смещения.
Возможности. Наличие слишком большого количества функций может привести к большим отклонениям и привести к переобучению. Хотя регуляризация помогает снизить важность функций, всегда полезно проверять важность функций с помощью исследовательского анализа данных (EDA) или знания предметной области. Если функция добавляет мало значения для прогнозирования зависимой переменной, имеет смысл не использовать эту функцию. С другой стороны, если модель не подходит, это означает, что модель недостаточно обучается, чтобы соответствовать достаточному количеству точек путем нахождения правильной гиперплоскости. В таком сценарии в модель следует добавить больше функций.
Рандомизация - введение рандомизации во входные данные, подаваемые в модель машинного обучения, - это еще один метод управления компромиссом смещения и дисперсии. Это в основном используется в глубоких нейронных сетях, контролируя значение Dropout rate. Нейронная сеть состоит из сети нейронов (единиц активации), и нейронные сети обучаются итеративно. Для рандомизации входных данных фиксированное количество нейронов случайным образом удаляется из сети на каждой итерации. Процент нейронов, которые будут отброшены на каждой итерации, называется коэффициентом отсева. Это отбрасывание нейронов приводит к рандомизации входных данных, проходящих через нейронную сеть.
Поскольку на каждой итерации любое значение входных данных может быть исключено, сеть не переходит под влияние какой-либо функции и равномерно распределяет матрицу весов по функциям. Более высокий процент отсева приводит к большей рандомизации, что приводит к меньшей дисперсии, тем самым уменьшая переобучение. Однако слишком большой процент отсева приводит к недостаточному обучению.
Помимо стратегии отсева в глубоких нейронных сетях, рандомизация также используется в других алгоритмах, таких как случайный лес. В случайном лесу набор данных выбирается из k различных наборов данных, и каждый набор данных передается k базовым учащимся (деревьям решений).
Количество тренировочных записей - увеличение количества тренировочных записей обычно помогает уменьшить дисперсию. Однако это также зависит от качества данных. Например, если в тестовых данных есть какой-то конкретный тип данных, который вообще не присутствует в обучающих данных, то неизбежно произойдет переобучение, потому что модель не изучила конкретный тип данных во время обучения. В таком случае, если мы просто добавим больше записей данных в обучающие данные, но не добавим тип данных, который фактически отсутствовал в обучающем наборе ранее, то это не поможет уменьшить дисперсию.
Если модель имеет высокую систематическую ошибку, добавление данных не поможет после определенного момента. Как показано на графике ниже, ошибка обучения остается почти постоянной после определенного момента, поскольку мы увеличиваем количество записей обучения.
Ранняя остановка - Ранняя остановка - еще один способ избежать переобучения. Ранняя остановка используется в алгоритмах на основе нейронных сетей и деревьев. Как показано на графике ниже, в нейронных сетях может случиться так, что разница между ошибкой обучения и ошибкой перекрестной проверки уменьшается по мере увеличения количества эпох. Он достигает минимального значения в определенную эпоху, а затем увеличивается в последующие эпохи. При ранней остановке мы останавливаем алгоритм на эпохе (или следующей эпохе), показывающей минимальную разницу между ошибкой поезда и перекрестной проверки.
В деревьях решений дисперсия увеличивается по мере увеличения глубины дерева. Чтобы не допустить переобучения, рост дерева решений останавливается на оптимальной глубине. Обычно это достигается двумя способами. Во-первых, останавливается рост дерева, если количество точек данных в узле (т. Е. Количество точек данных, удовлетворяющих условию на узле) меньше некоторого определенного порогового значения. В этом случае наличие слишком небольшого количества точек данных в образце указывает на то, что дерево может собирать некоторые зашумленные точки или выбросы. Второй способ - остановить рост дерева по длине, что дает минимальную ошибку перекрестной проверки.
Выбор алгоритма машинного обучения - Компромисс смещения и отклонения можно контролировать с помощью регуляризации и других средств во всех алгоритмах машинного обучения. Тем не менее, некоторые алгоритмы машинного обучения, такие как глубокие нейронные сети, имеют тенденцию переоснащаться. Это связано с тем, что глубокие нейронные сети обычно используются в приложениях, имеющих огромное количество функций (например, компьютерное зрение).
Bagging (случайный лес) и Boosting (деревья принятия решений с градиентным усилением) - это алгоритмы, которые по своей сути уменьшают дисперсию и смещение соответственно. В случайном лесу базовые учащиеся (деревья решений) имеют более высокую глубину, что делает базовых учащихся более склонными к переобучению (т. Е. Высокой дисперсии), но из-за рандомизации общая дисперсия на агрегированном уровне значительно снижается. С другой стороны, алгоритмы повышения, такие как деревья принятия решений с градиентным усилением (GBDT), используют неглубокие базовые обучающиеся, которые более склонны к недостаточной подгонке (т. меньшая сложность) базовые учащиеся.
Хорошо, я думаю, мы обсудили многие моменты, связанные с компромиссом смещения и отклонения. Прежде чем я закончу этот блог, вот краткое изложение компромисса отклонения смещения в некоторых важных алгоритмах машинного обучения.
Использованная литература -
Https://www.displayr.com/machine-learning-pruning-decision-trees/
Https://www.jeremyjordan.me/deep-neural-networks-preventing-overfitting/