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

Руководство хакера по нейронным сетям. Глава 2: Машинное обучение. Более традиционный подход: Функции потерь

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

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

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

Пример: 2-мерный метод опорных векторов

Давайте начнем с примера двухмерного SVM. Нам дан набор данных, состоящий из N примеров (xi0,xi1) и их соответствующие метки yi, которые могут иметь значения +1/−1 для положительных и отрицательных примеров соответственно. Важней всего то, что, как вы помните, у нас есть три параметра (w0,w1,w2). Функция потерь SVM в таком случае определяется следующим образом:

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

Обратите внимание, как работает это выражение: оно измеряет, насколько плох наш классификатор SVM. Давайте рассмотрим это более подробно:

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

Большинство функций затрат в Обучении машины состоят из двух частей:

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

Надеюсь, я убедил вас в том, что чтобы получить очень хороший SVM, нам, на самом деле, нужно сделать, чтобы затраты были как можно меньше. Звучит знакомо? Мы точно знаем, что делать: функция затрат, записанная выше – это наша схема. Мы будем проводить все примеры через схему, вычислять обратный проход и обновлять все параметры таким образом, чтобы схема выдала нам более низкое значение затрат в будущем. В частности, мы будем рассчитывать градиент, после чего обновлять параметры в обратном направлении от градиента (так как мы хотим сделать затраты низкими, а не высокими).

Источник

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

Обзор общих функций потерь для машинного обучения

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

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

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

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

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

Давайте сначала обсудим функцию потери регрессии.

Среднеквадратическая ошибка (потеря L2)

Ошибка среднего абсолютного значения (потеря L1)

Сравнение MSE (потеря L2) и MAE (потеря L1)

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

Ниже приведен код Python для этих двух функций потерь. Вы можете написать функции самостоятельно или использовать встроенные функции sklearn.

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

Что вы можете узнать по картинке? Как выбрать функцию потерь?

Следовательно, по сравнению с использованием MAE для расчета потерь, модель, использующая MSE, придаст больший вес выбросам. Во втором примере модель, использующая RMSE для расчета потерь, будет обновлена ​​в направлении уменьшения ошибки выброса за счет ошибок других выборок. Однако это снижает общую производительность модели.

Если данные обучения загрязнены выбросами, тогда потеря MAE более полезна (например, в данных обучения много неправильных счетчиков и положительных меток, но в тестовом наборе такой проблемы нет).

Интуитивно это можно понять следующим образом: если мы минимизируем MSE, чтобы дать только одно прогнозируемое значение для всех точек выборки, то это значение должно быть средним из всех целевых значений. Однако, если MAE минимизирован, то это значение будет медианой целевых значений всех точек выборки. Хорошо известно, что медиана более устойчива к выбросам, чем среднее, поэтому MAE также более устойчив к выбросам, чем MSE.

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

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

Выберите функцию потерь в зависимости от ситуации

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

Таким образом, функция потерь L1 более устойчива при работе с выбросами, но ее производные являются прерывистыми, поэтому эффективность решения ниже. Функция потерь L2 более чувствительна к выбросам, но, сделав ее производной 0, можно получить более устойчивое замкнутое решение.

Проблема обоих заключается в том, что в некоторых случаях две вышеуказанные функции потерь не могут удовлетворить спрос. Например, если 90% выборок в данных соответствуют целевому значению 150, оставшиеся 10% находятся в диапазоне от 0 до 30. Тогда модель, использующая MAE в качестве функции потерь, может игнорировать 10% выбросов, и прогнозируемое значение для всех выборок составляет 150.

Это потому, что модель предсказывает по медиане. Модель, использующая MSE, даст много прогнозов между 0 и 30, потому что модель сместится в сторону выброса. Оба эти результата нежелательны во многих бизнес-сценариях.

Потеря Губера, средняя сглаженная абсолютная ошибка

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

Зачем использовать Huber Loss?

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

Лог-Кош потеря

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

Функция потери Хубера и Лог-Коша Код Python:

Квантильная потеря

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

Функция потери квантиля полезна, когда мы фокусируемся больше на интервальных прогнозах, чем на точечных прогнозах. Интервальное прогнозирование с использованием регрессии наименьших квадратов, основанное на предположении, что остатки ( y − y ^ ) (y-\hat) ( y − y ^ ​ ) Являются независимыми переменными и дисперсия остается неизменной.

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

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

Квантильная регрессия и регрессия наименьших квадратов

что позволяет оценить функция потерь в машинном обучении
Слева: X1 и Y линейные. Имеют постоянную остаточную дисперсию. Справа: X2 и Y линейные, но дисперсия Y увеличивается с X2. (Гетероскедастическая)

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

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

Квантильная регрессия. Пунктирные линии показывают регрессию, основанную на функциях квантильных потерь 0,05 и 0,95

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

Понимание функции квантильных потерь

Как выбрать соответствующее значение квантиля, зависит от того, насколько мы оцениваем положительные и отрицательные ошибки. Функция потерь дает различные штрафы за переоценку и недооценку через квантильное значение (γ). Например, когда функция квантильных потерь γ = 0,25, штраф за переоценку выше, что делает прогнозируемое значение немного ниже медианы.
что позволяет оценить функция потерь в машинном обучении

Интервальное прогнозирование с использованием квантильных потерь (регрессия с повышением градиента)

Сравнительное исследование

Чтобы доказать характеристики всех вышеупомянутых функций потерь, давайте вместе рассмотрим сравнительное исследование. Сначала мы строим набор данных, выбранный из функции sinc (x), и вводим два искусственных шума: гауссову составляющую шума εN (0, σ2) и составляющую импульсного шума ξBern§.

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

Некоторые наблюдения за симуляцией сравнения:

Наконец, давайте поместим все функции потерь в один график, и у нас будет красивая картинка ниже! Разница ясна с первого взгляда?
что позволяет оценить функция потерь в машинном обучении

Источник

Функции потери в машинном обучении

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

Обзор функций потерь в машинном обучении

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

Как работают функции потери?

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

Вот пример, когда мы пытаемся предсказать цену продажи домов в городах метро.

Цена продажи (в лакхах)фактический

Цена продажи (в лакхах)Отклонение (Убыток)Бангалор: 450 (все прогнозы верны)Пуна: 35Ченнаи: 40Бангалор: 40Бангалор: 455 лакх за Бангалор, 2 лакх за ЧеннайПуна: 35Пуна: 35Ченнаи: 38Ченнаи: 40Бангалор: 432 лакха для Бангалора, 5 лакхов для Пуна2 лакха для Ченнаи,Пуна: 30Ченнаи: 45

Типы функций потерь в машинном обучении

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

1) Функции потери регрессии:

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

Y = X0 + X1 + X2 + X3 + X4…. + Xn

X = независимые переменные

Y = зависимая переменная

Рассмотрим линейное уравнение, y = mx + c, мы можем вывести MSE как:

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

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

MAE можно рассчитать как:

2) Функции потери двоичной классификации:

Эти функции потерь предназначены для измерения характеристик модели классификации. При этом точкам данных присваивается одна из меток, т. Е. Либо 0, либо 1. Далее их можно классифицировать как:

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

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

Расширение потери шарнира, которое просто вычисляет квадрат показателя потери шарнира. Это уменьшает функцию ошибок и упрощает работу с ней. Он находит границу классификации, которая определяет максимальный запас между точками данных различных классов. Квадратная потеря шарнира идеально подходит для ДА ИЛИ НЕТ решения проблем, где отклонение вероятности не является проблемой.

3) Функции потери мультиклассовой классификации:

В этом случае целевые значения находятся в диапазоне от 0 до n, т.е. (0, 1, 2, 3… n). Он рассчитывает оценку, которая принимает среднюю разницу между фактическими и прогнозируемыми значениями вероятности, и оценка минимизируется для достижения максимально возможной точности. Мультиклассовая кросс-энтропия является функцией потерь по умолчанию для задач классификации текста.

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

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

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

Рекомендуемые статьи

Источник

Понимание 3 наиболее распространенных функций потерь для регрессии машинного обучения

Дата публикации May 20, 2019

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

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

Высокое значение потери означает, что наша модель работает очень плохо. Низкое значение потерь означает, что наша модель работает очень хорошо.

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

(1) Средняя квадратическая ошибка (MSE)

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

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

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

гдеNколичество образцов, с которыми мы тестируем Код достаточно прост, мы можем написать его в виде простого кода и построить его с помощью matplotlib:

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

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

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

(2) Средняя абсолютная ошибка (MAE)

Средняя абсолютная ошибка (MAE) лишь немного отличается по определению от MSE, но, что интересно, обеспечивает почти совершенно противоположные свойства! Чтобы рассчитать MAE, вы берете разницу между предсказаниями вашей модели и основополагающей правдой, применяете абсолютное значение к этой разнице и затем усредняете его по всему набору данных.

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

Еще раз наш код очень прост в Python! Мы можем написать его в виде простого numpy и построить его с помощью matplotlib. На этот раз мы нарисуем его красным прямо над MSE, чтобы увидеть, как они сравниваются.

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

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

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

(3) Huber Loss

Функция Huber Loss,

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

По сути, это уравнение гласит: для значений потерь меньше дельты используйте MSE; для значений потерь больше, чем дельта, используйте MAE Это эффективно объединяет лучшее из обоих миров из двух функций потерь!

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

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

Проверьте код ниже для функции Huber Loss. Мы также строим график потери Хьюбера рядом с MSE и MAE, чтобы сравнить разницу.

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

Обратите внимание на то, как мы можем получить потери Хубера прямо между MSE и MAE.

Лучшее обоих миров!

Вы захотите использовать потерю Хубера в любое время, когда почувствуете, что вам необходим баланс между приданием выбросам некоторого веса, но не слишком большого. Для случаев, когда выбросы очень важны для вас, используйте MSE! В тех случаях, когда вы не заботитесь о выбросах, используйте MAE!

Нравится учиться?

Следуй за мной пощебетгде я публикую все о новейших и лучших ИИ, технологиях и науке! Связаться со мной наLinkedInслишком!

Рекомендуемое чтение

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

Источник

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

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