функции стоимости в машинном обучении

Русские Блоги

Функция стоимости машинного обучения

1 Функция затрат

функции стоимости в машинном обучении

В линейной регрессии у нас есть обучающий набор, подобный этому, m представляет количество обучающих выборок, например m = 47. И наша функция гипотезы, которая используется для прогнозирования, имеет форму линейной функции: h θ ( x ) = θ 0 + θ 1 x hθ(x)=θ0+θ1x。

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

функции стоимости в машинном обучении

функции стоимости в машинном обучении

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

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

2 Интуитивное понимание функции стоимости I

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

функции стоимости в машинном обучении

Здесь обсуждается только θ В случае 1 в следующей функции стоимости 2 мы обсуждаем случай двух значений

функции стоимости в машинном обучении

3 Интуитивное понимание функции стоимости II

функции стоимости в машинном обучении

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

Конечно, что нам действительно нужно, так это эффективный алгоритм, который может автоматически найти эти параметры, которые минимизируют функцию стоимости J θ 0 θ0 и θ 1 θ1 приходит.

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

функции стоимости в машинном обучении

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

Конечно, что нам действительно нужно, так это эффективный алгоритм, который может автоматически найти эти параметры, которые минимизируют функцию стоимости J θ 0 θ0 и θ 1 θ1 приходит.

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

Источник

Функции стоимости: основы машинного обучения

Дата публикации Aug 15, 2019

функции стоимости в машинном обучении

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

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

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

Это цельфункция стоимости,

Что такое функция стоимости?

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

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

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

Во имяфункция стоимости«Функция» относится к тому факту, что это функция, вычисляющая значение, а «стоимость» относится к штрафу, который рассчитывается функцией.

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

Как используются функции стоимости?

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

Стоимость = Энергия_Потребление + 1 000 000 * Неудобно_Часы

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

Каковы некоторые примеры функций стоимости при подгонке модели?

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

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

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

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

Объединяя два в одинфункция стоимостизаставляет модель заботиться об обоих.

Как сбалансировать функцию затрат с несколькими терминами?

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

В примере моделирования энергии здания у нас был весовой коэффициент 1 для потребления энергии и весовой коэффициент 1 000 000 для неудобных часов. Это в основном вынуждает модель обеспечивать 0 часов дискомфорта.

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

Весовые коэффициенты сообщают функции стоимости, насколько вы заботитесь о каждом семестре.

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

Завершение

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

Это где рольфункция стоимости,Функции стоимостиформулы расчета «стоимости», связанной с ситуацией. В случае подгонки моделифункция стоимостиобычно вычисляет ошибку в модели.

Источник

Основы машинного обучения (I): функции стоимости и градиентный спуск

Дата публикации Nov 27, 2017

Когда я прохожу этот пост, я буду использоватьИкса такжеYссылаться на переменные. Если вы предпочитаете что-то более конкретное (как я часто это делаю), вы можете себе представить, чтоYэто продажи,Иксэто расходы на рекламу, и мы хотим оценить, как расходы на рекламу влияют на продажи. Визуально я покажу, как линейная регрессия учитывает лучшую линию для соответствия этим данным:

функции стоимости в машинном обучении

Что изучает машина?

Один вопрос, который часто возникает у людей при начале работы с ML:

«Что на самом деле изучает машина (то есть статистическая модель)?»

Это будет варьироваться от модели к модели, но в простых сроках модель изучает функциюетакой, чтое(Икс) карты дляY, Поставить разныеYмодель учится братьИкс(т.е. особенности или, более традиционно, независимая переменная (и)) для прогнозированияY(цель, ответ или более традиционно зависимая переменная).

В случае простой линейной регрессии (Y

b0 + b1 *ИксгдеИксодин столбец / переменная) модель «изучает» (читай: оценки) два параметра;

Параметры обучения: функции стоимости

Есть несколько способов узнать параметры модели LR, я остановлюсь на подходе, который лучше всего иллюстрирует статистическое обучение; сворачиваяфункция стоимости,

Следовательно, целью модели ML является поиск параметров, весов или структуры, котораясводит к минимумуфункция стоимости.

Минимизация функции стоимости: градиентный спуск

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

функции стоимости в машинном обучении

Наблюдение за обучением в модели линейной регрессии

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

функции стоимости в машинном обучении

MSEв данном случае это функция стоимости. Это простоозначатьквадратов разностей между прогнозируемым y и фактическим y (то есть остатками)

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

функции стоимости в машинном обучении

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

Теперь мы можем использовать изученные значения b0 и b1, хранящиеся в тэте, для прогнозирования значенийYдля новых значенийИкс,

Резюме

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

Источник

Базовые принципы машинного обучения на примере линейной регрессии

функции стоимости в машинном обученииЗдравствуйте, коллеги! Это блог открытой русскоговорящей дата саентологической ложи. Нас уже легион, точнее 2500+ человек в слаке. За полтора года мы нагенерили 800к+ сообщений (ради этого слак выделил нам корпоративный аккаунт). Наши люди есть везде и, может, даже в вашей организации. Если вы интересуетесь машинным обучением, но по каким-то причинам не знаете про Open Data Science, то возможно вы в курсе мероприятий, которые организовывает сообщество. Самым масштабным из них является DataFest, который проходил недавно в офисе Mail.Ru Group, за два дня его посетило 1700 человек. Мы растем, наши ложи открываются в городах России, а также в Нью-Йорке, Дубае и даже во Львове, да, мы не воюем, а иногда даже и употребляем горячительные напитки вместе. И да, мы некоммерческая организация, наша цель — просвещение. Мы делаем все ради искусства. (пс: на фотографии вы можете наблюдать заседание ложи в одном из тайных храмов в Москве).

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

Формализмы

функции стоимости в машинном обучении

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

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

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

У нас есть задача, данные и способ оценки программы/модели. Давайте определим, что такое модель, и что значит обучить модель. Предиктивная модель – это параметрическое семейство функций (семейство гипотез):

функции стоимости в машинном обучении

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

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

Линейная регрессия

функции стоимости в машинном обучении

Эмпирический риск (функция стоимости) принимает форму среднеквадратичной ошибки:

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

приравняем к нулю и найдем решение в явном виде:

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

А теперь реализуем алгоритм обучения, используя магию NumPy:

функции стоимости в машинном обучении

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

Полиномиальная регрессия

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

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

perror
10.26704
20.22495
30.08217
50.05862
70.05749
100.0532
135.76155

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

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

функции стоимости в машинном обучении

Все так, numpy вернул два комплекснозначных собственных значения, что идет вразрез с теорией. Для симметричных и положительно определенных матриц (каковой и является матрица функции стоимости в машинном обучении) все собственные значения должны быть действительные. Возможно, это произошло из-за того, что при работе с большими числами матрица стала слегка несимметричной, но это не точно ¯\_(ツ)_/¯. Если вы вдруг найдете причину такого поведения нумпая, пожалуйста, напишите в комменте.

UPDATE (один из членов ложи по имени Андрей Оськин, с ником в слаке skoffer, без аккаунта на хабре, подсказывает):

Есть только одно замечание — не надо пользоваться формулой `(X^T X^<-1>) X^T` для вычисления коэффициентов линейной регрессии. Проблема с расходящимися значениями хорошо известна и на практике используют `QR` или `SVD`.

Ну, то есть вот такой кусок кода даст вполне приличный результат:

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

функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении

функции стоимости в машинном обученииРегуляризация

функции стоимости в машинном обучении

функции стоимости в машинном обучении

Новая функция стоимости примет вид:

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

И найдем решение в явном виде:

функции стоимости в машинном обучении

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

perror
10.26748
20.22546
30.08803
100.05833
120.05585
130.05638

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

функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении

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

функции стоимости в машинном обучениирегуляризация

функции стоимости в машинном обучении

Тогда задача примет вид:

функции стоимости в машинном обучении

Посчитаем производную по параметрам модели (надеюсь уважаемые господа не будут пинать меня, за то, что я вжух и взял производную по модулю):

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

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

Получим такую вот эволюцию ошибки:

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

функции стоимости в машинном обучении

функции стоимости в машинном обучении

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

Все стало сильно лучше.
функции стоимости в машинном обучении

Нарисуем теперь все графики:

функции стоимости в машинном обучении

perror
10.27204
20.23794
30.24118
100.18083
120.16069
130.15425

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

функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении
функции стоимости в машинном обучении

Описанный способ построения регрессии называется LASSO регрессия. Очень хотелось бы думать, что дядька на коне бросает веревку и ворует коэффициенты, а на их месте остается нуль. Но нет, LASSO = least absolute shrinkage and selection operator.

Байесовская интерпретация линейной регрессии

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

функции стоимости в машинном обучении

функции стоимости в машинном обучении

В то время как в байесовом подходе интересуются апостериорным распределением:

функции стоимости в машинном обучении

Часто получается так, что интеграл, полученный в результате байесового вывода, крайне нетривиален (в случае линейной регрессии это, к счастью, не так), и тогда нужна точечная оценка. Тогда мы интересуемся максимумом апостериорного распределения (MAP = maximum a posteriori):

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

удобнее будет прологарифмировать это выражение:

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

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

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

функции стоимости в машинном обучении

функции стоимости в машинном обучении

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

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

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

функции стоимости в машинном обучении

функции стоимости в машинном обучении

Тогда апостериорное распределение примет вид:

функции стоимости в машинном обучении

функции стоимости в машинном обучении

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

И на самом деле два описанных регуляризатора — это частные случаи наложения обобщенного нормального распределения в качестве априорного распределения на параметры линейной регрессии:

функции стоимости в машинном обучении

функции стоимости в машинном обучении

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

функции стоимости в машинном обучении

функции стоимости в машинном обучении

Заключение

Здесь вы найдете jupyter notebook со всем вышеописанным и несколькими бонусами. Отдельное спасибо тем, кто осилил этот текст до конца.

Желающим копнуть эту тему глубже, рекомендую:

Источник

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

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