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

Регуляризация: что это и почему важно

Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть картинку Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Картинка про Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмахПідписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

Автор: Богдан Цал-Цалко, data scientist в DataRobot, лектор онлайн-школы robot_dreams.

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

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

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

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

В каких случаях нужна регуляризация

Понять, как возникает переобучение, поможет пример.

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

а — возраст рыбы (наша единственная фича)

а0— константа для оценки веса рыбы при рождении (допустим, — 0,47)

k — коэффициент скорости роста (допустим, 0,52)

L— асимптотический вес (допустим, 2,75 кг)

Теперь смоделируем вес рыб в зависимости от возраста с помощью линейной регрессии:

Полученная RMSE (среднеквадратическая ошибка модели) на обучающих данных равна 0,30. Мы специально используем результаты на обучающей выборке, чтобы узнать, какова ее способность противостоять переобучению.

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

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

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

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

В чем суть регуляризации

Мы будем «наказывать» модель за избыточную сложность. Тут на помощь приходит регуляризация. Для линейной регрессии её идея проста и универсальна: добавить к оценке качества модели — функции потерь — сумму её собственных коэффициентов

Функция потерь обычной линейной регрессии:

Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть картинку Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Картинка про Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах

Лассо-регрессия (lasso regression) — линейная регрессия с линейной пенализацией коэффициентов:

Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть картинку Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Картинка про Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах

Ридж-регрессия (ridge regression) — регрессия с квадратичной пенализацией коэффициентов:

Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть картинку Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Картинка про Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах

Эластик-нет (elastic net) — комбинация ридж-регрессии и лассо-регрессии:

Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть картинку Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Картинка про Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах

α — это коэффициент который отвечает за влияние регуляризации.

l1 ratio — коэффициент пропорции двух пенализаций в elastic net

Чтоб понять, как подобрать, нужно учитывать, что при:

α→0 мы получаем обратную линейную регрессию

α→∞ мы получаем среднее вместо регрессии

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

Особенности работы с регуляризацией:

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

Посмотрим на примере рыбной фермы, как бы себя повела линейная регрессия с регуляризацией:

Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть картинку Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Картинка про Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах

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

Для ридж-регрессии получается более гладкая кривая, которая лучше описывает левый край:

Регуляризация для деревьев принятия решений

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

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

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

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

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

Почему регуляризованные модели работают лучше обычных

В моем опыте работы с платформой автоматического машинного обучения DataRobot ridge-регрессия и elastic net зарекомендовали себя гораздо лучше обычной регрессии.

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

Регуляризация — это защитный механизм алгоритмов обучения от избыточной сложности. Он помогает избежать переобучения. Это понятие объединяет множество инструментов и стратегий, и цель их всех — помочь автоматизировать войну data science против переобучения.

Источник

Регуляризация в Machine Learning

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

Как известно, и дисперсия, и предвзятость должны быть маленькими — это идеальный вариант. Тут и приходит на помощь регуляризация. Выделяют 2 основные техники: «Лассо» и Ridge.

Регуляризация по технике «Лассо» (L1)

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

Регуляризация по технике Ridge (L2)

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

Elastic-Net

Таким образом, техника Ridge оставляет все переменные, а техника «Лассо» более эффективно устанавливает их важность. На основании этого был создан специальный алгоритм, объединивший в себе преимущества обеих техник регуляризации. Этот алгоритм называют Elastic-Net. Реализовать его можно посредством перекрестной валидации sklearn:

Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть картинку Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Картинка про Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах

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

Источник

L1- и L2-регуляризация в машинном обучении

Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть картинку Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Картинка про Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмахL1- и L2-регуляризация — эта два тесно связанных метода, которые можно применять в алгоритмах машинного обучения (machine learning, ML) для уменьшения степени переобучения модели (model overfitting). Исключение переобучения приводит к генерации модели, которая обеспечивает более качественное прогнозирование. В этой статье я расскажу, что такое регуляризация с точки зрения разработчика ПО. Объяснить идеи, лежащие в основе регуляризации, весьма непросто — и не потому, что они трудны, а скорее потому, что существует несколько не связанных друг с другой идей.

Я проиллюстрирую регуляризацию с помощью классификации по логистической регрессии (logistic regression, LR), но регуляризацию можно использовать со многими типами машинного обучения, в частности для классификации нейронной сети. Цель LR-классификации — создать модель, предсказывающую значение переменной, которая принимает одно из двух возможных значений. Допустим, вам требуется спрогнозировать результат футбольной команды (проигрыш = 0, выигрыш = 1) в предстоящей игре, основываясь на текущей доле выигрышей команды (x1), расположении поля (x2) и количестве игроков, отсутствующих из-за травм (x3).

Если Y — прогнозируемое значение, то LR-модель для этой задачи принимает вид:

Здесь b0, b1, b2 и b3 — веса, которые являются просто числовыми значениями, которые нужно определить. Если на словах, то вы вычисляете значение z, которое представляет собой сумму входных значений, помноженных на b-веса, потом добавляете константу b0 и передаете значение z в уравнение, которое использует математическую константу e. Оказывается, что Y всегда будет находиться между 0 и 1. Если Y меньше 0.5, вы заключаете, что прогнозируемый вывод равен 0, а если Y больше 0.5 — что такой вывод равен 1. Заметьте, что для n функций (features) будет n+1 b-весов.

Например, доля выигрышей команды на данный момент составляет 0.75, она будет играть на поле противника (–1), а три игрока выбыли из-за травм. Теперь предположим, что b0 = 5.0, b1 = 8.0, b2 = 3.0, and b3 = –2.0. Тогда z = 5.0 + (8.0)(0.75) + (3.0)(–1) + (–2.0)(3) = 2.0, а значит Y = 1.0 / (1.0 + e^–2.0) = 0.88. Поскольку Y больше 0.5, вы прогнозируете, что команда победит в предстоящей игре.

Полагаю, что лучший способ объяснить регуляризацию — исследовать конкретный пример. Взгляните на экранный снимок демонстрационной программы (рис. 1). Вместо использования реальных данных демонстрационная программа начинает с генерации 1000 элементов синтетических данных. В каждом элементе имеется 12 переменных-предикторов (часто называемых функциями [features] в терминологии ML). Значение зависимой переменной находится в последнем столбце. После создания 1000 элементов данных этот набор случайным образом разбивается на обучающий набор с 800 элементами (для нахождения b-весов модели) и проверочный (тестовый) набор с 200 элементами (для оценки качества получаемой модели).

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

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

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

Сначала программа выполнила обучение с использованием L1-регуляризации, а затем повторила его с применением L2-регуляризации. В случае L1-регуляризации полученная LR-модель давала точность 95.00% на проверочных данных, а в случае L2-регуляризации LR-модель обеспечивала точность 94.50% на тех же данных. Оба вида регуляризации существенно улучшили точность прогнозирования.

Общая структура программы

Рис. 2. Общая структура программы

После загрузки кода шаблона в редактор Visual Studio я переименовал в окне Solution Explorer файл Program.cs в более описательный RegularizationProgram.cs, и Visual Studio автоматически переименовала класс Program за меня. В начале кода я удалил все выражения using, которые указывали на ненужные пространства имен, оставив только ссылку на пространство имен верхнего уровня System.

Вся логика логистической регрессии содержится в классе LogisticClassifier. В этот класс вложен вспомогательный класс Particle, инкапсулирующий оптимизацию роя частиц (particle swarm optimization, PSO) — алгоритм оптимизации, применяемый для обучения. Заметьте, что в классе LogisticClassifier есть метод Error, который принимает параметры с именами alpha1 и alpha2. Эти параметры являются весовыми значениями для L1- и L2-регуляризации соответственно.

В методе Main синтетические данные создаются следующими выражениями:

Значение seed, равное 42, использовалось только потому, что это значение давало репрезентативный демонстрационный вывод. Метод MakeAllData генерирует 13 случайных весовых значений между –10.0 и +10.0 (по одному весовому значению на каждую «функцию» плюс весовое значение b0). Затем метод осуществлял итерации 1000 раз. На каждой итерации генерировался случайный набор из 12 входных значений, после чего вычислялось промежуточное выходное значение логистической регрессии, используя случайные весовые значения. К выводу добавлялось дополнительное случайное значение, чтобы сделать данные менее очевидными и более подверженными переобучению.

Данные разбиваются на обучающий набор с 800 элементами и набор из 200 элементов для оценки модели с помощью этих выражений:

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

Переменная maxEpochs — это счетчик цикла, ограничивающий значение для алгоритма обучения PSO. Два аргумента 0.0, передаваемые методу Train, являются весовыми значениями для L1- и L2- регуляризации. При значениях 0.0 регуляризация не используется. Качество модели оценивается так:

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

Выражения для обучения LR-классификатора с применением L2-регуляризации точно такие же, как в случае L1-регуляризации:

В демонстрационной программе значения alpha1 и alpha2 были определены с помощью открытых методов FindGoodL1Weight и FindGoodL2Weight LR-объекта, а затем переданы методу Train. Альтернативный вариант — вызов этого кода:

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

Понимание регуляризации

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

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

Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Смотреть картинку Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Картинка про Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах. Фото Как работает регуляризация в решающих деревьях какие параметры мы штрафуем в данных алгоритмах
Рис. 3. Переобучение модели

Ground truth fit modelМодель, соответствующая контрольным данным
Overfitted modelПереобученная модель

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

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

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

А такой была бы среднеквадратичная ошибка:

В символическом выражении среднеквадратичную ошибку можно описать как:

где Sum представляет кумулятивную сумму по всем обучающим данным, o — вычисленный вывод, t — целевой вывод, а n — количество элементов в обучающих данных. Ошибка — это то, что минимизируется обучением с помощью одного из примерно десятка численных методов вроде градиентного спуска (gradient descent), итерационного алгоритма Ньютона-Рафсона (iterative Newton-Raphson), L-BFGS, обратного распространения ошибок (back-propagation) и оптимизации роя (swarm optimization).

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

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

Допустим в этом примере, что нам нужно определить четыре весовых значения и что их текущие значения (2.0, –3.0, 1.0, –4.0). Штраф в L1, добавленный к 0.097 (среднеквадратичной ошибке) был бы (2.0 + 3.0 + 1.0 + 4.0) = 10.0, а штраф в L2 составил бы 2.0^2 + –3.0^2 + 1.0^2 + –4.0^2 = 4.0 + 9.0 + 1.0 + 16.0 = 30.0.

Итак, большие весовые значения модели могут приводить к переобучению, что в свою очередь ведет к низкой точности прогнозирования. Регуляризация ограничивает величину весовых значений модели, добавляя штраф для весов к функции ошибки модели. В L1-регуляризации используется сумма абсолютных значений весовых значений, а в L2-регуляризации — сумма квадратов весовых значений.

Зачем нужны два вида регуляризации?

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

Как выяснилось, применение L1-регуляризации иногда может давать полезный побочный эффект, вызывающий стремление одного или более весовых значений к 0.0, а это означает, что соответствующая функция (feature) не требуется. Это одна из форм того, что называют селекцией функций (feature selection). Например, в демонстрационной программе на рис. 1 с L1-регуляризацией последнее весовое значение модели равно 0.0. То есть последнее значение предиктора не вносит вклад в LR-модель. L2-регуляризация ограничивает весовые значения модели, но обычно не приводит к полному обнулению этих значений.

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

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

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

Реализовать L1- и L2-регуляризацию сравнительно легко. В демонстрационной программе используется обучение по алгоритму PSO с явной функцией ошибки, нужно лишь добавить весовые штрафы L1 и L2. Определение метода Error начинается так:

Первый шаг — вычисление среднеквадратичной ошибки суммированием квадратов разности между вычисленными и целевыми выходными значениями. (Другая распространенная форма ошибки называется ошибкой перекрестной энтропии [cross-entropy error].) Затем вычисляется штраф по L1:

Метод Error возвращает MSE плюс штрафы:

Демонстрационная программа использует явную функцию ошибки. В некоторых алгоритмах обучения, таких как градиентный спуск и обратное распространение ошибок, функция ошибки применяется неявно за счет исчисления частного производного (calculus partial derivative) (называемого градиентом) функции ошибки. Для таких алгоритмов обучения использование L2-регуляризации (поскольку производное w^2 равно 2w) требует от вас лишь добавить член 2w к градиенту (хотя детали могут быть весьма хитроумными).

Нахождение хороших весовых значений регуляризации

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

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

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

Заключение

Регуляризацию можно применять с любым методом ML-классификации, который основан на математическом уравнении. Примеры включают логистическую регрессию, пробит-классификацию (probit classification) и нейронные сети. Поскольку это уменьшает величину весовых значений в модели, регуляризацию иногда называют сокращением весов (weight decay). Основное преимущество применения регуляризации в том, что оно часто приводит к созданию более точной модели. Главный недостаток заключается во введении дополнительного параметра, значение которого нужно определить, — весового значения регуляризации. В случае логистической регрессии это не слишком серьезно, так как в этом алгоритм обычно используется лишь параметр скорости обучения, но при использовании более сложного метода классификации, в частности нейронных сетей, добавление еще одного так называемого гиперпараметра (hyperparameter) может потребовать массы дополнительной работы для подбора комбинации значений двух параметров.

Джеймс Маккафри (Dr. James McCaffrey) работает на Microsoft Research в Редмонде (штат Вашингтон). Принимал участие в создании нескольких продуктов Microsoft, в том числе Internet Explorer и Bing. С ним можно связаться по адресу jammc@microsoft.com.

Выражаю благодарность за рецензирование статьи эксперту Microsoft Ричарду Хьюзу (Richard Hughes).

Источник

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

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