что такое регуляризация в машинном обучении
Концепция регуляризации
Дата публикации Jun 19, 2019
Давайте рассмотрим, что мы разрабатываем модель машинного обучения. Модель обычно обучается с использованием «набора данных поезда» и тестируется с «тестовым набором данных». Точность модели обычно снижается, если набор данных не был предварительно обработан. Фактически, большая часть времени уходит на предварительную обработку данных перед обучением модели.
Каковы могут быть возможные причины низкой точности модели?
Есть две основные возможности:
Underfitting
переобучения
Давайте рассмотрим тот же пример. В этом случае воспользуемся моделью полиномиальной регрессии. С помощью Polynomial Feature Transformer можно найти мощности каждого элемента в массиве до указанной мощности. Эти значения, которые хранятся в многомерном массиве, могут использоваться для подачи модели полиномиальной регрессии. По мере того как указанная мощность в преобразователе полиномиальных характеристик увеличивается, модель, по-видимому, изучает больше, чем требуется, и представляется выходом, который очень «специфичен» для обучающего набора данных.
Говорят, что модель переоснащения имеет высокую дисперсию
Явление переоснащения происходит, когда коэффициенты базисных функций велики и взаимно уничтожаются
Регуляризация предотвращает переоснащение!
Методы регуляризации используются для уменьшения погрешности путем соответствующей подгонки функции к данному тренировочному набору, чтобы избежать переобучения. Эти функции существенно уменьшают коэффициенты (β) каждого признака, тем самым уменьшая шансы на отмену значений. Пример уравнения регрессии выглядит следующим образом:
Типы регуляризации
L1 (Регуляризация Лассо):
Идея, лежащая в основе регуляризации L1, состоит в том, чтобы сводить набор данных только к наиболее важным функциям, которые будут влиять на «целевую переменную». Регуляризация L1 добавляет штраф, равный сумме абсолютных значений коэффициентов.
Добавив вышеупомянутый штраф,некоторые из коэффициентов особенностей становятся 0и остальные функции будут самыми полезными. Этот метод регуляризации можно рассматривать как метод выбора признаков.
L2 (Регуляризация хребта):
Регуляризация L2 добавляет штраф, равный сумме квадратов значений коэффициентов.
Λ в уравнении является гиперпараметром, который контролирует интенсивность штрафа.
Когда λ → 0, результаты аналогичны линейной регрессии
Когда λ → ∞, все особенности уменьшены до 0.
Поскольку применяется штраф, коэффициенты не претерпевают значительных изменений до 0, скорее, он медленно уменьшается до 0. Следовательно, L2 не может использоваться для выбора признаков в отличие от L1.
Чем больше штраф, тем меньше становятся коэффициенты.
Упруго-нетто:
Регуляризация эластичной сети является комбинацией регуляризации L1 и L2.
Наказание применяется (P) следующим образом:
В этом случае λ является общим параметром, который устанавливает соотношение между L1 и L2. Таким образом, результатом будет гибрид регуляризации L1 и L2. Геометрическое представление регуляризации показано ниже:
Реализация регуляризации
Импортируйте необходимые библиотеки:
Загрузите набор данных (для этого примераAmes Housing набор данныхбыл использован) :
Разделите данные на «данные поезда» и «данные испытаний»:
1. Чтобы выполнить линейную регрессию:
2. Для выполнения регрессии Лассо:
3. Чтобы выполнить регрессию хребта:
В каждом случаеmean_squared_errorнаходится между предсказанной «целевой переменной» и фактической «целевой переменной» из данных испытаний для проверки модели.
Спасибо за чтение этой статьи.
Не стесняйтесь связаться со мной черезLinkedInили вы можетепочтаменя на мой почтовый идентификатор в моем профиле LinkedIn.
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).
РЕГУЛЯРИЗАЦИЯ: важная концепция в машинном обучении
Дата публикации May 26, 2018
Этот пост будет посвящен глубокому пониманию методов регуляризации. Я старался изо всех сил, чтобы включить все почему и как.
Регуляризация является одной из основных и наиболее важных концепций в мире машинного обучения. Я охватил всю концепцию в двух частях.
Часть 1 посвящена теории о том, почему регуляризация вошла в картину и зачем она нам нужна?
Часть 2 объяснит часть того, что регуляризация и некоторые доказательства, связанные с этим.
ЧАСТЬ 1
1.1 Основы:
Размышляя о том, как я могу это описать, я наткнулся на эту книгу «Распознавание образов и машинное обучение Кристофера М. Бишопа». Приведенные в книге примеры и объяснения были очень точными и понятными. Итак, я использовал примеры этой книги здесь.
Теперь наша цель состоит в том, чтобы найти шаблоны в этом базовом наборе данных и обобщить его, чтобы предсказать соответствующее целевое значение для некоторых новых значений «x». Проблема здесь в том, что наш целевой набор данных подвергается некоторому случайному шуму. Таким образом, будет трудно найти внутреннюю функцию sin (2πx) в обучающих данных. Итак, как мы решаем это?
Давайте попробуем подогнать полином по заданным данным.
Следует отметить, что данная полиномиальная функция является нелинейной функцией от «х», но линейной функцией от «w». Мы обучаем наши данные этой функции, чтобы определить значения w, которые сделают функцию минимизирующей ошибку в прогнозировании целевых значений.
Функция ошибки, используемая в этом случае, является среднеквадратичной ошибкой.
Итак, теперь мы получим правильное значение w, но вопрос в том, какую степень полинома (приведенную в уравнении 1.1) выбрать? Любая степень полиномов может быть использована для подгонки к обучающим данным, но как выбрать лучший выбор с минимальной сложностью?
Кроме того, если мы увидим разложение в ряд Тейлора синусных рядов, то любой полином высокого порядка можно использовать для определения правильного значения функции.
Просто для справки: расширение греха Тейлора (х)
На рис. 1 показана подгонка полиномов различного порядка по точкам данных. Мы видим, что полином 9-й степени способен делать точные прогнозы для всех точек данных в обучающем наборе.
Но подождите, функция, полученная для полинома степени 9, не похожа на выбранную нами функцию sin (2πx). Так что здесь произошло?
Функция со степенью 3 может в значительной степени соответствовать нашим данным обучения. Кроме того, это подмножество многочленов высокого порядка. Таким образом, функция / полином порядка 9 также должна быть в состоянии соответствовать базовому шаблону (что явно не так). Это называется переоснащением.
В приведенном выше случае функция, полученная для полинома степени 9, будет выглядеть примерно так:
Выглядит очень сложно и опасно, не так ли?
Функция научилась получать правильные целевые значения для всех точек данных, вызванных шумом, и, таким образом, не смогла предсказать правильный шаблон. Эта функция может дать нулевую ошибку для обучающего набора, но даст огромные ошибки в прогнозировании правильных целевых значений для тестового набора данных.
Переоснащением можно также управлять, увеличивая размер набора обучающих данных.
РЕДАКТИРОВАТЬ: Здесь увеличение размера набора данных во избежание переоснащения относится к увеличению количества наблюдений (или строк), а не количества объектов (или столбцов). Добавление столбцов может привести к усложнению проблемы и, следовательно, к снижению производительности. Спасибо Шону МакКлюру за указание на это 🙂
1.2 Вероятностный взгляд:
Давайте сделаем небольшое предположение для этой цели. Предположим, что для данного значения ‘x’ соответствующее значение ‘t соответствует гауссовскому распределению со средним значением, равным y (x, w) (обратите внимание, что y (x, w) является нашим уравнением 1.1.)
Где распределение Гаусса определяется как,
Почему мы сделали это предположение? Не волнуйтесь, я упоминал об этом в следующем разделе.
Итак, возвращаясь к нашему уравнению вероятности, здесь параметры w и β неизвестны. Мы используем наши данные обучения, чтобы определить значение w и β. Все точки тренировочных данных не зависят друг от друга. Поэтому мы можем сказать, что
(Независимые вероятности могут быть умножены)
Теперь мы получим правильные значения w и β путем максимизации данного уравнения. Для удобства возьмем логарифм вышеприведенного уравнения, так как оно не влияет на значения.
Здесь при дифференциации w.r.t ‘w’, последние 2 термина могут быть проигнорированы, так как они не содержат терминов «w». Кроме того, β в префиксе первого слагаемого выполняет только задачу масштабирования слагаемого и, следовательно, не оказывает существенного влияния на конечный дифференциальный выход. Поэтому, если мы проигнорируем β, мы получим ту же формулу среднего квадрата ошибки, которая дает нам значение ‘w’, как в (уравнение 1.2). Разве это не волшебство?
Аналогично, мы также найдем значение β, дифференцируя его с помощью w.r.t β. Теперь, когда известны значения w и β, мы можем теперь использовать наше окончательное уравнение для прогнозирования значений тестовых данных.
1.3 Доказательство предположения:
Чтобы понять это, вы должны иметь немного знаний об ожидании функции.
Рассмотрим ситуацию, когда мы хотим классифицировать пациента как больного раком или не основываясь на какой-то наблюдаемой переменной. Если человек, у которого нет рака, относится к категории больных раком, то в нашей модели произойдет некоторая потеря, но, наоборот, если какой-либо пациент с раком будет предсказан как здоровый пациент, то понесенная потеря будет в несколько раз выше, чем в предыдущем случае.
Пусть Lij обозначает потерю, когда i ошибочно предсказывается как j. Средняя ожидаемая потеря будет выражаться как:
Мы хотим максимально сократить потери. Выбираем значение y (x), такое, что E (L) минимально. Таким образом, применяя правило произведения [p (x, t) = p (t | x) * p (x)] и дифференцируя его w.r.t y (x), мы получаем,
Вышеупомянутое уравнение выглядит знакомым? Да, это наше предположение сделано. Термин Et [t | x] является условным средним значением «t», обусловленным «x», то есть для данного «x», «t» следует гауссову со средним значением, равным «y». Это также известно как функция регрессии.
Приведенный выше рисунок помогает получить четкое представление об этом. Мы можем видеть, что следует гауссовскому распределению с минимальным значением функции потерь для функции регрессии y (x), полученной при значении «y», которое является средним значением
ЧАСТЬ 2
2.1 Давайте нормализуем:
Наконец-то мы здесь! В этом разделе я расскажу вам о типах регуляризации и о том, как они получены.
Давайте вернемся к тому, с чего начали. Нашим начальным условием для набора данных была целевая переменная t, состоящая из фактического значения с некоторым добавленным гауссовским шумом.
Согласно нашей вероятностной точке зрения, мы можем написать из уравнения 2.3
Не смущайтесь, увидев «wT * phi (xn)». Это не что иное, как наш у (х, ш) Это более обобщенная форма исходного уравнения (1.2). фи (xn) известны как базисные функции. Для уравнения (1.1) «phi (xn)» был равен «x ^ n».
Теперь мы уже видели ранее, что во многих случаях использование этой функции ошибок часто приводит к переоснащению. Таким образом, термин регуляризации был введен. После введения коэффициента регуляризации наша общая функция затрат становится
Где,λуправляет относительной важностью данных, зависящих от ошибки, с ошибкой регуляризации. Обобщенная форма условия регуляризации приведена ниже:
Где, если q = 1, то это называется регрессией Лассо или регуляризацией L1, а если q = 2, то это называется регрессией гребня или регуляризацией L2. Если оба термина L1 и регуляризация L2 вводятся одновременно в нашей функции стоимости, то это называется упругой чистой регуляризацией.
Обратите внимание, что термин регуляризации имеет ограничение, которое:
Для соответствующего значения постоянной η.
Теперь, как эти дополнительные условия регуляризации помогают нам контролировать сопутствующие условия. Давайте поймем это.
Рассмотрим случай лассо регуляризации. Предположим, у нас есть уравнение y = w1 + w2x. Мы рассмотрели уравнение только с двумя параметрами, потому что его будет легко визуализировать на контурных графиках. У меня болела голова, когда я пытался визуализировать многомерный график. Задача не из легких. Даже гугл здесь не помог: P
Заметка:Просто для быстрого обзора, контурные графики представляют собой двухмерное представление и данные трехмерных графиков. Для функции стоимости или функции ошибки 3D-график строится между значениями коэффициентов w1 и w2 и соответствующей функцией ошибки.
Когда контурная диаграмма построена для вышеприведенного уравнения, оси x и y представляют независимые переменные (в данном случае w1 и w2), а функция стоимости построена в 2D-виде.
Теперь вернемся к нашей регуляризации.
Функция стоимости для регрессии Лассо будет:
График для этого уравнения будет представлять собой ромбовидную фигуру, как показано ниже,
Здесь синие кружки представляют контуры для нерегуляризованной функции ошибки (ED), а контур формы ромба для регуляризации L1, т. Е. (Λ / 2 (| w1 | + | w2 |),. На графике видно, что Оптимальное значение получается в точке, где член w1 равен нулю, т. е. базисная функция, соответствующая члену w1, не влияет на результат. Здесь представлена w *, где оба члена функции стоимости будут принимать общее значение w, как требуется в уравнение.
Следовательно, можно сказать, что для правильного значения λ вектор решения будет разреженной матрицей (например, [0, w2]). Вот так можно уменьшить сложность уравнения (1.3). Матрица решениявесбудет иметь большинство его значений как ноль, а ненулевое значение будет содержать только релевантную и важную информацию, таким образом определяя общую тенденцию для данного набора данных.
Я надеюсь, что теперь вы сможете лучше понять регуляризацию. Вы можете использовать это, чтобы улучшить точность ваших моделей.
В моих будущих блогах эта концепция будет использоваться для объяснения других важных концепций машинного обучения. Если у вас есть какие-либо другие сомнения, связанные с темой, оставьте комментарий, я сделаю все возможное, чтобы прояснить его.
Кроме того, если вам понравилось мое объяснение, делайте хлопать за него.
Для любого другого запроса, связанного с моим блогом, напишите мне или напишите мне на connectedIn.